Paso 1: programa
Aquí está el bosquejo Adruino el circuito. La salida es en el pin 7 y un botón de reset manual está conectado al pin 5. Se realiza la sincronización usando el millis() comando para que funcionalidad adicional puede añadirse en el lazo (como el manual de la exploración botón reset) sin afectar el resto de los tiempos. Otro momento puedo mirar tal vez agregar en un par de displays 7-seg para mostrar el tiempo restante.Los tiempos de encendido y reset pueden cambiarse en las líneas correspondientes. El tiempo en (rstdly) se establece en minutos donde el retardo de reinicio (rstoff) se encuentra en segundos.
Ver los comentarios para más descripciones del programa.
#define Relais 7 / / Pin para mezclador de salida
#define rstsw 5 / / Pin de reset manual
Establecer siguiente para cambiar el tiempo en minutos para reposición de retardo
#define rstdly 15
Establecer siguiente para cambiar el tiempo en seg.
#define rstoff 5
old_time largo sin firmar;
cpr_time largo sin firmar;
dly_time largo sin firmar;
off_time largo sin firmar;
byte rstswitch = 0;
void setup()
{
pinMode (salida de relé,); fijar el relé de salida
pinMode (rstsw, entrada); restablecer el conmutador de entrada
off_time = rstoff * 1000; calcular mS retardo de tiempo
dly_time = (rstdly * 60000)-off_time; calcular mS retardo de tiempo de espera, menos tiempo para mantener la sincronización
}
void loop()
{
digitalWrite (relé, HIGH); salida de interruptor
old_time = millis(); obtener hora actual
cpr_time = millis() - old_time; Calc cómo demora funcionando
mientras que (cpr_time < dly_time) / / espere tiempo de retardo
{
cpr_time = millis() - old_time;
rstswitch = digitalRead(rstsw); obtener el estado del interruptor
Si (rstswitch == 1) {break;} / / si pulsa el interruptor loop break
}
digitalWrite (relé, LOW); desactivar salida
old_time = millis();
cpr_time = millis() - old_time;
mientras que (cpr_time < off_time) / / espera hasta que el tiempo ha pasado
{
cpr_time = millis() - old_time;
}
}