Долго мучился... пытался... но нет, мне не поддалось.
И вот обращаюсь к ВАМ. Написал скетч по управлению рэле по сравнению двух датчиков влажности. Но есть необходимость прикрутить кнопку вкл/выкл... Вот вопрос: Как прописать кнопку включения данного в скетче сравнения показаний датчиков на 5 дней (но без delay), с возможностью отключения этого кнопкой... пытался поместить в case'ы, возникла проблема с delay в чтении датчиков...
- Код: Выделить всё
#include "stDHT.h"
DHT sens(DHT22);
const int relPin1 = 3; //реле 1
const int relPin2 = 5; //реле 2
void setup()
{
Serial.begin(57600);
pinMode(2, INPUT);
digitalWrite(2, HIGH);
pinMode(4, INPUT);
digitalWrite(4, HIGH);
pinMode(relPin1, OUTPUT);
pinMode(relPin2, OUTPUT);
pinMode(11, INPUT);
}
void loop()
{
int t = sens.readTemperature(2); // чтение датчика на пине 2
int h = sens.readHumidity(2); // чтение датчика на пине 2
delay(2000);
int t2 = sens.readTemperature(4); // чтение датчика на пине 4
int h2 = sens.readHumidity(4); // чтение датчика на пине 4
delay(2000);
if( t >= (t2+5)){
digitalWrite(relPin1, LOW); // при достижении температуры датчика 1 более 5 градусов включаем реле 2, отключаем реле 1
digitalWrite(relPin2, HIGH); //
}
else if( h >= (h2+5)){
digitalWrite(relPin1, LOW); //при влажности датчика 1 более 5 градусов включаем реле 2, реле 1 выключен
digitalWrite(relPin2, HIGH); //
}
else {
digitalWrite(relPin1, HIGH); // в других случаях реле 1 включено, реле 2 выключено
digitalWrite(relPin2, LOW);
}
Serial.print("Влага датчика №1: ");
Serial.print(h);
Serial.print(" %");
Serial.print("Темпер датчика №1: ");
Serial.print(t);
Serial.println(" C ");
Serial.print("Влага датчика №2: ");
Serial.print(h2);
Serial.print(" %");
Serial.print("Темпер датчика №2: ");
Serial.print(t2);
Serial.println(" C ");
}