Preciso trocar esse Delay de 6 horas por um MILLIS de 6 horas, para que se caso eu precise de apagar o modulo antes das 6h, o arduino responda

/*Código desenvolvido para controlar a iluminação de uma tampa de aquario

  • Botão "ON/OFF" do controle liga a modulo de led
  • Botão "DISPLAY" do controle desliga a modulo de led
  • Botão "TIMER" do controle liga o temporizador de 6 horas
  • Escrito em: 19/05/2021
    */
    #include <IRremote.h> //inclusão biblioteca InfraVermelho

#define RECV_PIN 2 //Define o pino utilizado pelo sensor IR
#define pinModuloLED 5 //Define o pino utilizado pelo modulo led

IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
Serial.begin(9600); // Monitor velocidade 9600 bps
irrecv.enableIRIn();
pinMode(pinModuloLED, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);

if (results.value == 0X4EA240AE) {  //Botão on/off do controle liga o modulo de led  
  digitalWrite(pinModuloLED, HIGH);
}
if (results.value == 0XA32AB931) {  //Botão "DISPLAY" do controle desliga o modulo de led
  digitalWrite(pinModuloLED, LOW);
}
if (results.value == 0XE0984BB6) {    //Botão timer do controle liga o temporizador de 6 horas
  digitalWrite( pinModuloLED, HIGH); //Liga o modulo de led
  delay(21600000);                    //O modulo de led permanece ligado por 6 horas
  digitalWrite( pinModuloLED, LOW);  //Apaga o modulo led
}
irrecv.resume(); // Receive the next value

}
}

Boa noite @brenobozolla

testa este sketch e depois conta o resultado pra gente.

Obs: Sempre post o sketch entre flags </>.

RV mineirin

#include <IRremote.h> //inclusão biblioteca InfraVermelho
#define RECV_PIN 2 //Define o pino utilizado pelo sensor IR
#define pinModuloLED 5 //Define o pino utilizado pelo modulo led
bool flag = false;
unsigned tempo = 0;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600); // Monitor velocidade 9600 bps
  irrecv.enableIRIn();
  pinMode(pinModuloLED, OUTPUT);
}
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);

    if (results.value == 0X4EA240AE) {  //Botão on/off do controle liga o modulo de led
      digitalWrite(pinModuloLED, HIGH);
      flag = false;
    }
    if (results.value == 0XA32AB931) {  //Botão "DISPLAY" do controle desliga o modulo de led
      digitalWrite(pinModuloLED, LOW);
      flag = false;
    }
    if (results.value == 0XE0984BB6) {    //Botão timer do controle liga o temporizador de 6 horas
      flag = true;
      digitalWrite( pinModuloLED, HIGH); //Liga o modulo de led
      tempo = millis();
      //delay(21600000);                    //O modulo de led permanece ligado por 6 horas
      //digitalWrite( pinModuloLED, LOW);  //Apaga o modulo led
    }
    irrecv.resume(); // Receive the next value
  }
  if (flag == true)
  {
    if (millis() - tempo >=  21600000)
    {
      flag = false;
      digitalWrite( pinModuloLED, LOW);  //Apaga o modulo led
    }
  }
}



1 Like

Funcionou!!!!!!!!
Agora vou estudar pra acender e apagar com o mesmo botão.

MUITO OBRIGADO!!! :kissing_smiling_eyes: :kissing_smiling_eyes: