/*
Задание 1
В эмуляторе 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(0x27,16,2); // объявить имя дисплея (lcd1) установить адрес ведомого дисплея(0x27) , настройки размеров индикации (столбцы и строки)
LiquidCrystal_I2C lcd2(0x26,16,2); // объявить имя дисплея (lcd2) установить адрес ведомого дисплея(0x26) , настройки размеров индикации (столбцы и строки)
void setup()
{
// put your setup code here, to run once:
lcd1.init(); // инициализация дисплея
lcd1.backlight();
lcd2.init(); // инициализация дисплея
lcd2.backlight();
// Print something
lcd1.setCursor(2, 0);
lcd1.print("HELLO");
lcd1.setCursor(2, 1);
lcd1.print("WORLD");
}
void loop()
{
// put your main code here, to run repeatedly:
lcd2.setCursor(2, 0);
lcd2.print("Temperature");
lcd2.setCursor(0, 1);
lcd2.print("t=");
lcd2.setCursor(3, 1);
lcd2.print(andata());
lcd2.setCursor(8, 1);
lcd2.print("oC");
}
// функции
float andata()//Чтение АЦП и преобразование кода в градусы
{
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
int analogValue = analogRead(A0);//читаем вход
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
delay(100);
return celsius;
}