Это старая версия документа!
Теперь, наконец добавим вывод результатов изменения температуры на дисплей.
Рисунок 1. Электрическая принципиальная схема эксперимента
Добавляем подключения дисплея
#include <LCDI2C_Multilingual.h> #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() { R2 = (-R1 * value) / (value - 1023); temp = 1 / (log(R2 / Rtnom) / Bcoef + 1/(25 + T0)) - T0; lcd.clear(); lcd.print("T="); lcd.print(temp, 4); }
К предыдущей программе добавили то, что требуется для работы с дисплеем. Подключение библиотеки дисплея, настройка дисплея и шины I2C, включение подсветки дисплея.
Температуру перед выводом на экран округляем до десятых (один знак после точки):
round_temp = round(temp, 1)
Перед выводом информации очищем дисплей от старых данных. При этом курсор дисплея устанавливается в левый верхний угол.
lcd.clear()
Формируем строку для вывода на дисплей. Она состоит из подстроки «T=»
и подстроки с температурой. Оператор str()
преобразует число в строку. А оператор +
здесь работает не совсем так, как мы привыкли. Дело в том, что поведение этого оператора зависит от контекста. Когда он оказывается среди чисел, то это операция математического сложения. Но в данном случае оператор +
оказался среди строк. В таком контексте этот оператор выполняет операцию конкатенации — склейки строк. Вот он и склеивает одну строку из двух половинок. Полученная таким образом строка передается для вывода на дисплей.
lcd.putstr("T=" + str(round_temp))
1. Измени программу, чтобы она выводила температуру с точностью до сотых.
2. Добавь символ градуса после показаний температуры. Символ градуса создай самостоятельно.