#include <LiquidCrystal.h>
#include "sensors_handle.h"
// Инициализируем объект-экран, передаём использованные
// для подключения контакты на Arduino в порядке:
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
SensorNTC sensor_t1(A0, DEFAULT);
SensorNTC sensor_t2(A1, DEFAULT);
SensorNTC sensor_t3(A2, DEFAULT);
const int sensors_count = 3;
SensorNTC sensors[sensors_count] = {sensor_t1, sensor_t2, sensor_t3};
void setup() {
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0,0);
sensor_t1.add_moving_average(10);
sensor_t2.add_moving_average(10);
sensor_t3.add_moving_average(10);
}
// data
float t_avg = 0;
float t_min = 0;
float t_max = 0;
void UpdateTemperature() {
t_avg = 0;
t_min = 0;
t_max = 0;
for (int i = 0 ; i < sensors_count; ++i) {
float value = sensors[i].get_celcius();
t_avg += value;
if (i == 0) {
t_min = value;
t_max = value;
} else if (value < t_min) {
t_min = value;
} else if (t_max < value) {
t_max = value;
}
}
t_avg /= sensors_count;
}
void PrintTemperature() {
lcd.setCursor(0,0);
lcd.print("AVG MIN MAX");
lcd.setCursor(0,1);
lcd.print(t_avg, 1);
lcd.print(" ");
lcd.print(t_min, 1);
lcd.print(" ");
lcd.print(t_max, 1);
}
void loop() {
UpdateTemperature();
PrintTemperature(); // вывод температуры на экран
delay(100);
}