#define I2C_ADDR1 0x27
#define I2C_ADDR2 0x23
#define LCD_COLUMNS 16
#define LCD_LINES 2
#include <LiquidCrystal_I2C.h> // подключение библиотеки для работы с дисплеями
// объявить имя дисплея, установить адрес ведомого дисплея, указать размеры индикации (столбцы и строки)
LiquidCrystal_I2C lcd1(I2C_ADDR1, LCD_COLUMNS, LCD_LINES);
LiquidCrystal_I2C lcd2(I2C_ADDR2, LCD_COLUMNS, LCD_LINES);
const float BETA = 3950; // Коэффициент термистора
const float Tmin = 10.0; // Минимальная комфортная температура
const float Tmax = 35.0; // Максимальная комфортная температура
void setup() {
lcd1.init(); // инициализация первого дисплея
lcd2.init(); // инициализация второго дисплея
}
void loop() {
int analogValue = analogRead(A1); // Получение "сырых" данных от термистора
// Пересчёт данных термистора в градусы Цельсия (https://docs.wokwi.com/parts/wokwi-ntc-temperature-sensor):
float T = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
int Tint = round(T);
lcd1.setCursor(0,0); // установка курсора на определённую позицию первого дисплея
lcd2.setCursor(0,0); // установка курсора на определённую позицию второго дисплея
lcd1.print(T); // передача данных на дисплей
if(T>=Tmax){
lcd2.print("HOT "); // передача данных на дисплей
}
if(T<=Tmin){
lcd2.print("COLD "); // передача данных на дисплей
}
if((T>Tmin) && (T<Tmax)){
lcd2.print("COMFORTABLE"); // передача данных на дисплей
}
}