===== Эксперимент 33. Термометр ===== Теперь, наконец добавим вывод результатов изменения температуры на дисплей. ==== Схема эксперимента ==== {{ :products:esp-iot:exp13.1_sch.png?nolink |}} //Рисунок 1. Электрическая принципиальная схема эксперимента// Добавляем подключения дисплея {{ :products:esp-iot:13.3_mon.png?direct&600 |}} //Рисунок 2. Монтажная схема эксперимента// ==== Программный код эксперимента ==== #include #define ACD_PIN A0 #define DEFAULT_I2C_ADDR 0x3F // Или 0x27 в зависимости от твоей платы IoT const int Bcoef = 3950; const int R1 = 10000; const int Rtnom = 10000; const float T0 = 273.15; int value = 0; float R2 = 0.0; float temp = 0.0; LCDI2C_Generic lcd(DEFAULT_I2C_ADDR, 16, 2); void setup() { lcd.init(); lcd.setBacklight(0); } void loop() { value = analogRead(ACD_PIN); R2 = (-R1 * value) / (value - 1023); temp = 1 / (log(R2 / Rtnom) / Bcoef + 1/(25 + T0)) - T0; lcd.clear(); lcd.print("T="); lcd.print(temp, 1); delay(1000); } К предыдущей программе добавили то, что требуется для работы с дисплеем. Подключение библиотеки дисплея, настройка дисплея и включение подсветки. Перед выводом информации очищаем дисплей от старых данных. При этом курсор дисплея устанавливается в левый верхний угол. lcd.clear() Печатаем на дисплей "T=": lcd.print("T="); Далее выводим на дисплей температуру округляя ее до десятых (один знак после точки). За количество цифр после запятой отвечает второй аргумент функции ''lcd.print()''. lcd.print(temp, 1); Устанавливаем частоту обновления температуры на дисплее с помощью задержки — раз в полсекунды. delay(500); ==== Дополнительное задание ==== 1. Измени программу, чтобы она выводила температуру с точностью до сотых. 2. Добавь символ градуса после показаний температуры. Символ градуса [[products:laboratory_iot_c:exp30|создай самостоятельно]].