proyecto indoor

hola a todos, hace un tiempo que estoy trabajando en un proyecto para un indoor, e avanzado bastante con muchas pruebas y errores pero e logrado que funcione :slight_smile:

sin mas vueltas, tengo un problema con parte del temporizador de la luz, el problema es que no se como hacer para que sepa si se encuentra en la franja horaria de encendido o apagado (no se si entienden lo que quiero hacer ):o

en otras palabras quiero que se pregunte si es hora de prender o apagar y que se pregunte si esta en la franja horaria de prender o apagar

espero que entiendan mi planteo dejo el c贸digo para que lo vean y si quieren aportar mejoras ser谩n bienvenidas y probadas.

//------------- Temporizador Luz relay3 -----------------------------
聽  if(now.hour() == on_H && now.minute() == on_M){
聽 聽 digitalWrite(relay3,HIGH); //enciende luz
聽  }
聽 聽 
聽 聽 
聽  if(now.hour() == off_H && now.minute() == off_M){
聽 聽 digitalWrite(relay3,LOW); //apaga luz
聽  }

Ese c贸digo funcionar谩 solo cuando pases por la hora y minutos indicados pero basta con que la luz este cortada y tu sistema arranque 1 minuto despu茅s y no har谩 los cambios.
De modo que contempla esa situaci贸n con esto

convierte hora y minuto a minutos

Luego asigna la variable correspondiente pero seran enteros

int minOn, minOff, minActual,


// donde corresponda sigue esto

minOn = on_H*60+on_M;聽 // esto calcula en minutos tu hora ON
minOff = off_H*60+off_M;聽 // esto calcula en minutos tu hora O

minActual = now.hour()*60 + now.minute();

//------------- Temporizador Luz relay3 -----------------------------
聽  if((minActual >= minOn && minActual <= minOff){
聽 聽 聽  digitalWrite(relay3,HIGH); //enciende luz
聽  }
聽  else {
聽 聽 digitalWrite(relay3,LOW); //apaga luz
聽  }

el 煤nico detalle que esto lo har谩 cada vz que pase por estas opciones de modo que ser铆a bueno que de algun modo se haga solo una vez en cada caso.

gracias by surbyte voy a probar los cambios que mencionas y te cuento como quedo.

dejo el c贸digo entero por si quieren chusmear :stuck_out_tongue:

indoor_final.ino (21.2 KB)

surbyte funciona a la refeccionar lo que me recomendaste.

en que me pude afectar que lo haga ca vez que pase por esa opci贸n?

se me ocurre poner un flag para que lo haga solo una vez en cada caso, que opinan de eso es posible.

En lo personal no me gustan que las cosas se hagan repetidamente. De todos modos si un pin esta en HIGH y lo vuelves a poner en HIGH que ocurre... nada. Idem con LOW.
Comparto lo del flag.