Estoy aprendiendo a programar un arduino MEGA, el caso es que quiero que, a una hora determinada un pin este HIGH durante un tiempo y luego vuelva a LOW.
El condicional que uso es, que si es la misma hora y minuto, este HIGH, pero claro, cuendo continua el bucle y vuelve a esa linea, la hora y minuto sigue coincidiendo y vuelve a hacer lo mismo. Cuando lo que quiero es que ya no lo haga hasta el dia siguiente.
Como lo hago?
Lo que quieres es que se produzca una acción (pin a HIGH, tiempo predeterminado, pin a LOW) cuando se produce un evento (la hora prefijada). Pero no quieres que se produzca mientras se cumple la condición si no sólo en el instante en el que se cumple. Pues esto es lo que se denomina ejecutar una acción en un flanco ascendente. Para ello crea una variable que en este caso valdrá 0 ó 1. También se puede establecer tipo boolean con true o false, es lo mismo. Esta variable suele llamarse una bandera.
Partimos de que la bandera está a cero.
Si se produce tu evento (coincidencia de la hora) y la bandera es cero entonces ejecutas la acción (activar el PIN el tiempo que quieras) y pones la bandera a 1.
Si la bandera está a 1 y termina tu evento (no coincide la hora) entonces pones la bandera a 0.
La explicación es casi el código que tienes que hacer narrado. A ver si te sale, si no pones lo que avances y te lo depuro.