Подключил библиотеку, температура и влажность стабильно выводятся через последовательный порт на компьютер, но нужно записать температуру в переменную, чтобы включать светодиоды, если температура выше 22 градусов. Часа два пытаюсь это сделать, помогите, пожалуйста.
Код (Text): #include <dht.h> #define LED_PIN13 13 #define LED_PIN12 12 #define LED_PIN11 11 #define LED_PIN10 10 #define LED_PIN9 9 #define LED_PIN8 8 DHT sensor = DHT(); void setup() { int temprtr; pinMode (LED_PIN13, OUTPUT); pinMode (LED_PIN12, OUTPUT); pinMode (LED_PIN11, OUTPUT); pinMode (LED_PIN10, OUTPUT); pinMode (LED_PIN9, OUTPUT); pinMode (LED_PIN8, OUTPUT); Serial.begin(9600); // объявляем к какому контакту подключен сенсор sensor.attach(A0); // после подачи питания ждём секунду до готовности сенсора к работе delay(1000); } void loop() { // метод update заставляет сенсор выдать текущие измерения sensor.update(); switch (sensor.getLastError()) { case DHT_ERROR_OK: char msg[128]; // данные последнего измерения можно считать соответствующими // методами sprintf(msg, "Temperature = %dC, Humidity = %d%%", sensor.getTemperatureInt(), sensor.getHumidityInt()); Serial.println(msg); break; case DHT_ERROR_START_FAILED_1: Serial.println("Error: start failed (stage 1)"); break; case DHT_ERROR_START_FAILED_2: Serial.println("Error: start failed (stage 2)"); break; case DHT_ERROR_READ_TIMEOUT: //Serial.println("Error: read timeout"); break; case DHT_ERROR_CHECKSUM_FAILURE: Serial.println("Error: checksum error"); break; } /*if (tеmprtr > 22) { //включаем освещение digitalWrite(LED_PIN8, HIGH); } else { //выключаем освещение digitalWrite(LED_PIN8, LOW); }*/ delay(5000); }
Код (Text): int tmprtr = sensor.getTemperatureInt(); ... if(tmprtr > 22) { ... } Вы об этом? Только переменную tmprtr нужно объявить внутри функции loop, иначе она будет не видна. Почитайте про область видимости переменных.