#define g_led 2 // задаем пин для зеленого светодиода
#define y_led 3 // задаем пин для желтого светодиода
#define r_led 4 // задаем пин для красного светодиода
const float BETA = 3950; //задаем постоянную, необходимую для пересчета значений температурного датчика
void setup() {
pinMode(g_led, OUTPUT); //определяем пины, к которым подключены светодиоды, как "Выход"
pinMode(y_led, OUTPUT);
pinMode(r_led, OUTPUT);
Serial.begin(9600); //устанавливаем скорость порта 9600 бод
}
void loop() {
int analogValue = analogRead(A1); // присваиваем переменной значение от датчика температуры
float t = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15; // преобразуем аналоговое значение от датчика температуры
if (t > 20) { //если значение температуры больше 20
digitalWrite(r_led, HIGH); //включаем красный светодиод
digitalWrite(g_led, LOW); // отключаем зеленый и желтый светодиоды
digitalWrite(y_led, LOW);
Serial.println(String(t) + " высокая температура"); // выводим значение температуры и сообщение " высокая температура" в терминал
delay(1500); //устанавливаем задержку в 1,5 сек
}
else if (t > 15) { //если значение температуры больше 15
digitalWrite(y_led, HIGH); //включаем желтый светодиод
digitalWrite(r_led, LOW); // и отключаем зеленый и красный светодиоды
digitalWrite(g_led, LOW);
Serial.println(String(t) + " повышенная температура"); // выводим значение температуры и сообщение "повышенная температура" в терминал
delay(1500); //устанавливаем задержку в 1,5 сек
}
else if (t >10 && t < 15) { //если значение температуры больше 10 и меньше 15
digitalWrite(g_led, HIGH); //включаем зеленый светодиод
digitalWrite(r_led, LOW); // и отключаем желтый и красный светодиоды
digitalWrite(y_led, LOW);
Serial.println(String(t) + " нормальная температура"); // выводим значение температуры и сообщение "нормальная температура" в терминал
delay(1500); //устанавливаем задержку в 1,5 сек
}
}