Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Отчет_УП_2

.docx
Скачиваний:
0
Добавлен:
27.06.2025
Размер:
298.42 Кб
Скачать

Инженерная школа информационных технологий и робототехники

15.03.04 Автоматизация технологических процессов и производств

Отделение автоматизации и робототехники

Отчёт по лабораторной работе №2

По дисциплине: Учебный проект

Вариант №3

Выполнил: студент гр. 8Т41 _______ ______ Кирильцева К. М.

Подпись Дата Фамилия И.О.

Проверил: ассистент ОАР _______ ______ Кучман А. В.

Подпись Дата Фамилия И.О.

Томск 2025

Цель работы: изучить принципы работы интерфейса I2C, разработать схему и алгоритм для работы с использованием LCD-дисплея, датчика температуры и влажности.

Задание на лабораторную работу: собрать схему с использованием LCD-дисплея, датчика температуры и влажности DHT11 и одной кнопки. При первом нажатии на кнопку на дисплей должно выводиться значение температуры в формате Temperature: XX°C. При повторном нажатии — значение влажности в формате Humidity: YY%. Нажатия чередуются: температура → влажность → температура и т.д.

Используемое оборудование:

  • Плата Arduino Uno

  • Дисплей LCD1602 с I2C модулем

  • Датчик температуры и влажности DHT11

  • Кнопка

  • Резистор 4.7 кОм

  • Макетная плата

  • Соединительные провода

Собранная схема представлена на рисунке 1, блок схема программы, для выполнения задания на рисунке 2, код программы представлен на листинге 1.

Рисунок 1 – Схема проектно-аппаратной части, собранная в ходе выполнения индивидуального задания по варианту

Рисунок 2 – Блок схема программы для выполнения задания.

Листинг 1 – Код для управления мотором-редуктором.

  1. #include <DHT.h>

  2. #include <Wire.h>

  3. #include <LiquidCrystal_I2C.h>

  4. #define DHTPIN 2 // Пин подключения датчика

  5. #define DHTTYPE DHT11 // Тип датчика

  6. #define BUTTON_PIN 3 // Пин подключения кнопки

  7. DHT dht(DHTPIN, DHTTYPE);

  8. LiquidCrystal_I2C lcd(0x27, 16, 2); // Адрес I2C (может быть 0x27 или 0x3F)

  9. bool showTemperature = true;

  10. bool lastButtonState = HIGH;

  11. void setup() {

  12. pinMode(BUTTON_PIN, INPUT_PULLUP);

  13. lcd.begin();

  14. lcd.backlight();

  15. dht.begin();

  16. lcd.setCursor(0, 0);

  17. lcd.print("Press button...");

  18. }

  19. void loop() {

  20. bool buttonState = digitalRead(BUTTON_PIN);

  21. if (buttonState == LOW && lastButtonState == HIGH) {

  22. showTemperature = !showTemperature;

  23. lcd.clear();

  24. if (showTemperature) {

  25. float temp = dht.readTemperature();

  26. lcd.setCursor(0, 0);

  27. lcd.print("Temperature:");

  28. lcd.setCursor(0, 1);

  29. lcd.print(temp);

  30. lcd.print((char)223); // Символ градуса

  31. lcd.print("C");

  32. } else {

  33. float hum = dht.readHumidity();

  34. lcd.setCursor(0, 0);

  35. lcd.print("Humidity:");

  36. lcd.setCursor(0, 1);

  37. lcd.print(hum);

  38. lcd.print("%");

  39. }

  40. delay(500); // Антидребезг

  41. }

  42. lastButtonState = buttonState;

  43. }


Вывод: в ходе выполнения данной лабораторной работы были изучены принципы работы интерфейса I2C, была разработана схема и алгоритм для выполнения задания, выведены значения температуры и влажности на LCD дисплей.

Соседние файлы в предмете Учебная практика