Paso 5: Sketch de Arduino
/*
Un reloj binario de código abierto para Arduino.
Basado en el código de por Rob Faludi (http://www.faludi.com)
Código bajo (cc) por Daniel Spillere Andrade, www.danielandrade.net
http://creativecommons.org/license/CC-GPL
*/
int = segundo 0 minutos = 0, hora = 0; la hora de inicio 00:00:00
int munit, hunit, Chi = 0, valh = 0, ledstats, i;
void setup() {//set entradas y salidas
pinMode (1, salida) pinMode (2, salida) pinMode (3, salida); pinMode (4, salida); pinMode (5, salida);
pinMode (salida 6) pinMode (salida 7) pinMode (8, salida); pinMode (9, salida); pinMode (10, salida);
pinMode (11, salida); pinMode (salida 12,) pinMode (13, salida);
pinMode (0, entrada);
}
void loop() {}
lastTick largo sin signo estático = 0; configurar una variable local para celebrar la última vez que nos mudamos a un segundo delantero
(variables estáticas se inicializan una vez y mantienen sus valores entre llamadas a funciones)
movimiento hacia adelante de un segundo cada 1000 milisegundos
Si (millis() - lastTick > = 1000) {}
lastTick = millis();
segundo ++;
}
avanzar un minuto cada 60 segundos
Si (segundo > = 60) {}
minuto ++;
segundo = 0; poner los segundos a cero
}
avanzar una hora cada 60 minutos
Si (minuto > = 60) {}
hora ++;
minuto = 0; poner minutos a cero
}
Si (hora > = 24) {}
hora = 0;
minuto = 0; poner minutos a cero
}
munit = minuto % 10; establece la variable munit y hunit para los dígitos de la unidad
hunit = hora % 10;
ledstats = digitalRead(0); leer valor de la entrada, para fijar el LED apagado, pero manteniendo la cuenta
Si (ledstats == LOW) {}
para (i = 1; i < = 13; i ++) {}
digitalWrite (i, LOW);}
} else {}
unidades de minutos
Si (munit == 1 || munit == 3 || munit == 5 || munit == 7 || munit == 9) {digitalWrite (1, alto);} else {digitalWrite(1,LOW);}
Si (munit == 2 || munit == 3 || munit == 6 || munit == 7) {digitalWrite (2, alto);} else {digitalWrite(2,LOW);}
Si (munit == 4 || munit == 5 || munit == 6 || munit == 7) {digitalWrite (3, alto);} else {digitalWrite(3,LOW);}
Si (munit == 8 || munit == 9) {digitalWrite (4, HIGH);} else {digitalWrite(4,LOW);}
minutos
Si ((minuto > = 10 & & minuto < 20) || (minuto > = 30 & & minuto < 40) || (minuto > = 50 & & minuto < 60)) {digitalWrite (5, alto);} Else {digitalWrite(5,LOW);}
Si (minutos > = 20 & & minuto < 40) {digitalWrite (6, alto);} else {digitalWrite(6,LOW);}
Si (minutos > = 40 & & minuto < 60) {digitalWrite (7, alto);} else {digitalWrite(7,LOW);}
unidades de hora
Si (hunit == 1 || hunit == 3 || hunit == 5 || hunit == 7 || hunit == 9) {digitalWrite (8, HIGH);} else {digitalWrite(8,LOW);}
Si (hunit == 2 || hunit == 3 || hunit == 6 || hunit == 7) {digitalWrite (9, alto);} else {digitalWrite(9,LOW);}
Si (hunit == 4 || hunit == 5 || hunit == 6 || hunit == 7) {digitalWrite (10, HIGH);} else {digitalWrite(10,LOW);}
Si (hunit == 8 || hunit == 9) {digitalWrite (11, alto);} else {digitalWrite(11,LOW);}
hora
Si (hora > = 10 & & hora < 20) {digitalWrite (12, HIGH);} else {digitalWrite(12,LOW);}
Si (hora > = 20 & & hora < 24) {digitalWrite (13, HIGH);} else {digitalWrite(13,LOW);}
}
Chi = analogRead(0); Añadir un minuto cuando presiona
if(Valm<800) {}
minuto ++;
segundo = 0;
Delay(250);
}
valh = analogRead(5); Añadir una hora al pulsar
if(valh<800) {}
hora ++;
segundo = 0;
Delay(250);
}
}