/*
В эмуляторе Wokwi, используя микроконтроллер платы Arduino Uno:
Произведите подключение двух дисплеев LCD 16x2 (I2C) по интерфейсу I2C.
Настройте уникальные адреса I2C для дисплеев вида (0xXX) в diagram.json, атрибут ("i2c-address": "0xXX") (по умолчанию адрес 0x27).
Подключите аналоговый датчик температуры NTC.
Напишите код программы, используя wiki-страницу дисплея или пример ниже.
На первом дисплее нужно отобразить любой текст на ваш выбор — можно написать «HELLO WORLD».
На второй дисплей выведите показания датчика температуры.
*/
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd1(0x3F, 16, 2); // Первый дисплей 0x3F
LiquidCrystal_I2C lcd2(0x3E, 16, 2); // Второй дисплей 0x3E
const int tempPin = A0; // Пин для температурного датчика
const float BETA = 3950; // should match the Beta Coefficient of the thermistor https://docs.wokwi.com/parts/wokwi-ntc-temperature-sensor
void setup() {
//HELLO WORLD можно вывести в дисплей без повторения кода loop()
lcd1.init(); // Инициализация первого дисплея
lcd1.backlight();
lcd1.setCursor(0, 0); //начинаем писать с 0,0
lcd1.print("HELLO WORLD");
// Инициализация второго дисплея
lcd2.init();
lcd2.backlight();
}
int analogValue = analogRead(A0); //Инициализация сырых данных аналогового входа
void loop() {
int tempValue = analogRead(tempPin); // Считываем значение с датчика температуры каждую секунду
float voltage = tempValue * 5.0 / 1023.0; // Преобразуем значение в напряжение
float resistance = (5.0 - voltage) * 10000 / voltage; // Рассчитываем сопротивление
//Расчитываем температуру по Целсию
float temperature = 1 / (log(1 / (1023. / tempValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
//Выводим значения температуры на второй дисплей
lcd2.setCursor(0, 0); //устанавливаем курсор на нулевую позицию сверху слева
lcd2.print("Temp: ");
lcd2.print(temperature);
lcd2.print(" C");
delay(1000); // Задержка для обновления показаний
}