#include <LiquidCrystal.h>
/* Display */
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int temp1;
int temp2;
int tempApp;
uint32_t sec;
int hour, minute, second;
unsigned long timer;
void setup() {
lcd.begin( 16 , 2 );
timer = millis();
}
void timClock() //функция вывода времени с момента включения
{
sec = millis() / 1000ul;
hour = sec / 3600ul;
minute = (sec % 3600ul) / 60ul;
second = (sec % 3600ul) % 60ul;
String s;
if (hour < 10) s += "0";
s += String(hour); // часы
s += ":";
if (minute < 10) s += "0";
s += String(minute); // минуты
s += ":";
if (second < 10) s += "0";
s += String(second); // секунды
lcd.setCursor(0, 0);
lcd.print(s);
}
void loop() {
if (millis()-timer >=1000)
{
timer = millis();
timClock();
}
temp1 = map(analogRead(A0), 0, 1023, -10, 40); //температура слева
temp2 = map(analogRead(A1), 0, 1023, -10, 40); //температура справа
tempApp = map(analogRead(A2), 0, 1023, -10, 40); //температура датчика в приборе
lcd.setCursor(8, 0);
if (tempApp - (temp1+temp2)/2 >=8) //если разница температуры на выходе скв больше 8 градусов начать измерения
{
if (temp2-temp1>=0)
{
lcd.print(" ");
lcd.print(temp2-temp1);
lcd.print(" - Good "); //если левая часть не теплее правой, то хорошо
}
else
{
lcd.print(temp2-temp1);
lcd.print(" - WRN "); //то, предупреждение
}
}
else
{
lcd.print("Waiting ");
}
lcd.setCursor(0, 1);
if (temp1>=0)
{
lcd.print(" ");
lcd.print(temp1);
lcd.print(" ");
}
else
{
lcd.print(temp1);
lcd.print(" ");
}
lcd.setCursor(5, 1);
if (tempApp>=0)
{
lcd.print(" ");
lcd.print(tempApp);
lcd.print(" ");
}
else
{
lcd.print(tempApp);
lcd.print(" ");
}
lcd.setCursor(10, 1);
if (temp2>=0)
{
lcd.print(" ");
lcd.print(temp2);
lcd.print(" ");
}
else
{
lcd.print(temp2);
lcd.print(" ");
}
}