Arduino para 4º de ESO
Construye un reloj digital
#include <Time.h> //Incluimos una librería para controlar el tiempo
#define LATCH_PIN 7 //Pines donde conectaremos los cables
#define CLOCK_PIN 8
#define DATA_PIN 2
byte num[] = {3, 159, 37, 13, 153, 73, 65, 31, 1, 25}; //Códigos para los números
byte dir[] = {64, 32, 16, 8, 4, 2}; //Códigos para las direcciones
byte hora[6]; //Variable donde guardaremos
void setup() { //los 6 dígitos de la hora para
pinMode(LATCH_PIN, OUTPUT); //poder mandarlos por separado
pinMode(CLOCK_PIN, OUTPUT); //Configuramos los pines de salida
pinMode(DATA_PIN, OUTPUT); //Ponemos el reloj a cero
setTime(0, 0, 0, 20, 04, 2015);
}
void loop() {
time_t t = now(); //Guardamos el tiempo actual en la variable t
//Calculamos cada uno de los dígitos de la hora:
hora[0] = int(hour(t) / 10); //Decenas de la hora
hora[1] = hour(t) - hora[0] * 10; //Unidades de la hora
hora[2] = int(minute(t) / 10); //Decenas de los minutos
hora[3] = minute(t) - hora[2] * 10; //Unidades de los minutos
hora[4] = int(second(t) / 10); //Decenas de los segundos
hora[5] = second(t) - hora[4] * 10; //Unidades de los segundos
for (byte i = 0; i < 6; i++) { //Mostramos cada uno de los 6 dígitos
byte n = hora[i]; //Número que vamos a mostrar
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, dir[i]); //Dirección
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, num[n]); //Número
digitalWrite(LATCH_PIN, HIGH);
}
}
Obra publicada con Licencia Creative Commons Reconocimiento No comercial Compartir igual 4.0