Hola:
Estoy intentando y llevo tiempo en buscar ejemplos de un temporizador de ARduino con LCD 16x2. Lo que hace es controlar un relé para cambiar el giro de un motor de 220 VAC - 50 Hz.
Lo que tiene que hacer es que cada 2 horas se cambie el estado del relé. Cuando pulse un botón de encendido se active dicho temporizador, el tiempo no cambia, solo dos horas cambia el estado. Con otro botón puedo resetear el tiempo a dos horas otra vez, por ejemplo, si le quedan 50 minutos, pulso dicho botón y vuelve a contar dos horas. Quiero evitar usar retardos, que sino el pobre microcontrolador se queda en esclavo.
Un temporizador normal es este.
Hay que añadir que dura 21 días y se detiene el reloj, al final avisa en el LCD con el mensaje FINALIZADO.
En el LDC muestra estos datos.
Temporizador: ON
HH:MM:SS xx Días
Ejemplo:
Temporizador: ON
01:41:59 07 Días
Hasta los días cuenta atrás, hasta 00 días.
Si hay algo similar, quiero la información necesari aunque esté la web en ruso, mira que llevo tiempo y los temporizadores que he hecho son copias que hay por internet pero no como este, el que pido es específico y vaya tela.
¿Alguna sugerencia?
Un cordial saludos.
Sé cómo, pero aclárame lo siguiente: inicia la cuenta que dura 21 días, y el otro botón... ¿adelanta o atrasa el temporizador hasta "alinearse" en el intervalo de dos horas?
Por cierto, hice una librería que facilita la creación de cuentas regresivas; por si te interesa...
Hola:
El temporizador es cuenta atrás, incluidos días.
Saludos.
Entiendo que es: presiono un botón e inicia la cuenta regresiva (días, horas, minutos y segundos). Pero esto...
Metaconta:
Con otro botón puedo resetear el tiempo a dos horas otra vez, por ejemplo, si le quedan 50 minutos, pulso dicho botón y vuelve a contar dos horas.
Entonces... ¿son dos temporizadores o solo uno?. Está el de los 21 días, de acuerdo; ¿pero cómo se relaciona con el que cambia de estado cada dos horas? ¿Son uno mismo o dos que corren "en paralelo"?
Buenas:
Es el mismo temporizador, lo que un botón pone todo a 0, es decir, cuentra atrás desde el principio, incluido días.
El otro botón es para ponerle día y tiempo si ahce falta para variar algo.
Saludos.
Si usaras la librería que voy a adjuntar, podríamos partir desde aquí:
#include <Countdown.h>
#define DIAS 21 * 24 * 3600 * 1000 // Basicamente equivale a 21 días en milisegundos
CountdownTimer temporizador(DIAS);
void setup() {
Serial.begin(9600);
temporizador.start();
}
void loop() {
if (temporizador.finished()) Serial.println(F("FINALIZADO"));
}
Por ahora no está ni lejos del objetivo, pero a medida que nos vayamos entendiendo, se logrará.
En la carpeta de la librería hay un archivo llamado "Leéme.txt", en él encontrarás la lista de funciones que posee y para qué sirve cada una. Una vez comprendido todo eso, podrás "armar el rompecabezas" según tus necesidades.
Y repito una vez más: no seas tímido. Si hay algo de la librería que no entiendes para con tu propósito, PREGUNTA POR AQUÍ.
Countdown.zip (5.22 KB)
Buenas:
Estoy mirando la librería, eres muy bueno haciendo estas cosas, no lo sabía.
Una parte que no entiendo mucho cuando pusiste esto.
DIAS 21 * 24 * 3600 * 1000
El 21 me imagino que es el día 21, el 24, las 24 horas, el 3600 y el 1000 no se que significan.
Voy a investigar y te comento.
Muchas gracias.
PD: Te recuerdo que no he abandonado este tema, ya te avisaré cuando consiga todo que funcione en C# y continuamos. 
Metaconta:
El 21 me imagino que es el día 21, el 24, las 24 horas, el 3600 y el 1000 no se que significan.
- 21 días
- 24 horas por día.
- 3600 segundos por hora.
- 1000 milisegundos por segundo.
Metaconta:
PD: Te recuerdo que no he abandonado este tema, ya te avisaré cuando consiga todo que funcione en C# y continuamos. 
Amén, porque con un mes de inactividad ya se empieza a especular :o