Mudança de planos.
Quero usar o botão para ligar o timer, quando passar o tempo de 5 horas ele ira desligar o led, e só após pressionar o botão novamente ira acender e se caso eu precisar apagar o led pressionar o botão , e assim, sucessivamente, no código abaixo o led está piscando.
E também adicionei um código de um sensor de temperatura para acionar um cooler para resfriar o a agua do aquário, este está funcionando corretamente.
Só preciso de ajuda no caso do timer...
Se puderem ajudar, ficarei grato!
#include <Thermistor.h> //INCLUSÃO DA BIBLIOTECA
#define pinBotao 2
#define pinLED 4
#define cooler 6
boolean estadoBotao = true;
boolean estAntBotao = true;
boolean estadoPisca = false;
Thermistor temp(2); //VARIÁVEL DO TIPO THERMISTOR, INDICANDO O PINO ANALÓGICO (A2) EM QUE O TERMISTOR ESTÁ CONECTADO
unsigned long delay1 = 0;
void setup() {
pinMode(pinBotao, INPUT_PULLUP);
pinMode(pinLED, OUTPUT);
Serial.begin(9600);
}
void loop() {
estadoBotao = digitalRead(pinBotao);
if (!estadoBotao && estAntBotao) {
estadoPisca = !estadoPisca;
}
estAntBotao = estadoBotao;
if (estadoPisca) {
if ((millis() - delay1) >= 5000) {
digitalWrite( pinLED, LOW);
}
if ((millis() - delay1) < 10000) {
digitalWrite( pinLED, HIGH);
}
if ((millis() - delay1) >= 15000) {
delay1 = millis();
}
} else {
digitalWrite( pinLED, LOW);
}
int temperature = temp.getTemp(); //VARIÁVEL DO TIPO INTEIRO QUE RECEBE O VALOR DE TEMPERATURA CALCULADO PELA BIBLIOTECA
/*Serial.print("Temperatura: "); //IMPRIME O TEXTO NO MONITOR SERIAL
Serial.print(temperature); //IMPRIME NO MONITOR SERIAL A TEMPERATURA MEDIDA
Serial.println("*C"); //IMPRIME O TEXTO NO MONITOR SERIAL
*/
if (temperature >= 28) {
digitalWrite(cooler, HIGH);
} else {
digitalWrite(cooler, LOW);
}
}