Paso 2: programación
El código que usé era del libro "30 Arduino proyectos de mal genio" por Simon Monk. Pero retocaron un poco para encajar mi diseño específico. Lo primero que tienes que hacer es descargar el archivo de "Tiempo" de la biblioteca arduino.
http://www.pjrc.com/Teensy/td_libs_Time.html
Asegúrese de que "time.h" está en la carpeta de bibliotecas en el programa de Arduino.
El pasador del interruptor es por lo que se puede establecer el tiempo. Al apagar, el reloj se mueve más rápido para que pueda ejecutar a través del ciclo hasta que llegue el momento que desea establecer en. Cuando le da la vuelta el interruptor otra vez, frena a la normalidad y guarda tiempo desde allí.
Aquí está el código que usé:
#include < Time.h >
int hourLEDs [] = {4, 3, 2, 1}; primero de la lista en orden de 1
int minuteLEDs [] = {A4, A3, A2, A1, A0, 13};
int secondLEDs [] = {11, 10, 9, 8, 7, 6};
int loopLEDs [] = {A4, A3, A2, A1, A0, 13, 11, 10, 9, 8, 7, 6, 4, 3, 2, 1};
int switchPin = 0;
void setup()
{
para (int i = 0; i < 4; i ++)
{
pinMode (hourLEDs [i], salida);
}
para (int i = 0; i < 6; i ++)
{
pinMode (minuteLEDs [i], salida);
}
para (int i = 0; i < 6; i ++)
{
pinMode (secondLEDs [i], salida);
}
setTime(0);
}
void loop()
{
Si (digitalRead(switchPin)) //when interruptor depende de velocidad activado, el tiempo por lo que se puede establecer el tiempo
{
adjustTime(1);
}
else if (minute() == 0 & & second() == 0)
{
Spin(hour());
}
updateDisplay();
Delay(1);
}
void updateDisplay()
{
time_t t = now();
setOutput (hourLEDs, 4, hourFormat12 (t));
setOutput (minuteLEDs, minute(t)) 6,
setOutput (secondLEDs, second(t)) 6,
}
void setOutput (int * ledArray, int numLEDs, int valor)
{
para (int i = 0; i < numLEDs; i ++)
{
digitalWrite (ledArray [i], bitRead (valor, i));
}
}
void girar (int conteo) //spins las luces por cada hora
{
para (int i = 0; i < cuenta; i ++)
{
para (int j = 0; j < 16; j ++)
{
digitalWrite (loopLEDs [j], HIGH);
Delay(50);
digitalWrite (loopLEDs [j], LOW);
}
}
}