/* В эмуляторе Wokwi соберите схему для платы Arduino Uno:
Соберите световую колонну (tower light) из трёх светодиодов (LED),
подключите их к контроллеру — зелёный на пин 2, жёлтый на пин 3
и красный на пин 4. Изменить цвета можно в diagram.json.
Подключите к контроллеру на пин A1 датчик температуры — Analog Temperature Sensor, NTC.
Напишите программу, при выполнении которой в терминал будет выводиться значение температуры.
Световая колонна должна работать по принципу норма — предупреждение — тревога.
Необходимо задать уставки (Setpoint, SP) — три диапазона по температуре хладагента:
от 10 до 15 градусов — норма;
> 15 градусов — предупреждение;
> 20 градусов — тревога.
Программа должна иметь комментарии. */
/*Директива, дающая команду препроцессору заменить
указанное название на указанное значение*/
#define ledRed 4
#define ledYellow 3
#define ledGreen 2
#define NTCOut A1
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
void setup() {
// устанавливаем режим работы пинов
pinMode(ledRed, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledGreen, OUTPUT);
Serial.begin(9600); // запускаем связь по Serial на скорости 9600
}
void loop() {
int analogValue = analogRead(NTCOut); // считываем значение с аналогового входа
int temperature = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15; // переводим значение в градусы Цельсия
Serial.println("Temperature: " + String(temperature) + " ℃"); // вывод в терминал
delay(1000);
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow, LOW);
digitalWrite(ledGreen, LOW);
if (temperature > 20) { // если Т > 20, то
digitalWrite(ledRed, HIGH); // установить pin ledRed в HIGH
}
else if (temperature > 15) { // если Т > 15 и Т < = 20, то
digitalWrite(ledYellow, HIGH); // установить pin ledYellow в HIGH
}
else if (temperature >= 10 && temperature <= 15) { // если Т >= 10 и Т < = 15, то
digitalWrite(ledGreen, HIGH); // установить pin ledGreen в HIGH
}
else { // если Т < 10
digitalWrite(ledRed, HIGH); // установить pin ledRed в HIGH
}
}