Este proyecto fue tomado directamente del libro "30 proyectos de Arduino para el mal genio" por Simon Monk. Se describe en detalle en la página 159.
Básicamente los pasos que hice son:
1. después de decidir el tamaño de 12 por 15 pulgadas, construí una caja de madera y luego lo había teñido un color oscuro.
2. luego compró una pieza de plástico y cortar a un tamaño que apenas caben en la ranura que encamina hacia fuera desde la parte superior de la caja.
3. luego hice un círculo básicamente centrada alrededor de la mitad de la caja pero ligeramente sesgado a la parte superior de la caja. Haría una caja cuadrada la próxima vez que las mediciones sería más fáciles.
4. luego cuidadosamente los orificios perforados para los 16 LEDS que se utilizará para mostrar la hora.
5. cada uno de los lados positivos de los LEDs debe ser unido a las patillas de Lilypad. He usado pernos de 1 - 4 horas, 5-10 minutos y 11-13 plus A0-A3 para los segundos. Los lados negativos se unen a una tierra común. Desvió del libro a la manera de Cómo llegué a un terreno común. Cada LED tiene una resistencia de 100 ohmios conectada a él.
Tengo una moto vieja que estoy determinado a reutilizar de tantas maneras como sea posible. Así que tomó uno de los engranajes delanteros y había unido al plástico y corrió un alambre de cobre alrededor de la parte posterior del engranaje. Esto permitió un cable de tierra común y hecho para un look un poco más limpio (menos cables para ver).
6. luego copia el siguiente código en el artículo y cargado para el Lilypad. Hice un par de cambios a la original por lo que el código realmente está por debajo de:
#include < Time.h >
int hourLEDs [] = {1, 2,3,4}; menos pedacito significativo primero
int minuteLEDs [] = {10,9,8,7,6,5};
int secondLEDs [] = {16,15,14,13,12,11};
int loopLEDs [] = {16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1};
int switchPin = 17;
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))
{
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(value, i));
}
}
void girar (int conteo)
{
para (int i = 0; i < cuenta; i ++)
{
para (int j = 0; j < 16; j ++)
{
digitalWrite (loopLEDs [j], HIGH);
Delay(50);
digitalWrite(loopLEDs[j],LOW);
}
}
}
7. era necesario para mí conseguir la biblioteca de tiempo e instalarlo. El proceso se describe en el artículo.
8. una vez instalado y conectado el reloj funciona de esta manera.
-Para ajustar el tiempo de que colocar un imán cerca de la caña switch y acelerará a través del tiempo hasta llegar a la hora correcta...
-Como pasa el tiempo, el cambio de LEDs de segundos y por supuesto los minutos y horas.
-Para leer la hora, hay que añadir los LEDs que se encuentran en por ejemplo si horas LED 8 y 2 son lite, 32 minutos y 8 están en, y segundos 16 y 1 están en esto sería 10 (8 + 2), 40 (32 + 8), 17(16+1) o 10:40:17.
-También en el cambio de la hora los LEDs perseguirá en un círculo completo varias veces. Si es 4:00 t, se persiguen 4 veces, de 11:00 continuación se persiguen 11 veces.
Aquí hay un video de ella trabajando: