Dit project werd genomen direct uit het boek "30 Arduino projecten voor het kwade genie" door Simon Monk. Het is beschreven in detail dat begint op pagina 159.
In principe is de stappen die ik heb zijn:
1. na de beslissing van de grootte van de 12 door 15 inch, ik bouwde een doos van schroot hout en vervolgens gekleurd het een donkere kleur.
2. ik vervolgens kocht een stuk plastic en snijd het naar een grootte die gewoon in de groef die ik gerouteerd past uit vanaf de bovenkant van het vak.
3. dan maakte ik een cirkel in principe gecentreerd rond het midden van het vak maar iets scheef naar de top van het vak. Een vierkante doos volgende keer wil ik de metingen zou gemakkelijker.
4. dan doorboringen ik zorgvuldig door voor de 16 LEDS die worden gebruikt voor het weergeven van de tijd.
5. elk van de positieve kanten van de LEDs heeft te worden samengevoegd met de Lilypad pinnen. Ik gebruikte pinnen 1 - 4 voor de uren, 5-10 voor de notulen en 11-13 plus A0-A3 voor de seconden. De negatieve kanten zijn allemaal gekoppeld aan een gemeenschappelijke grond. Ik afgeweken van het boek in de manier van hoe ik een gemeenschappelijke grond. Elke LED heeft een 100 ohm weerstand die eraan verbonden zijn.
Ik heb een oude fiets die ik ben vastbesloten om te hergebruiken in zo vele manieren mogelijk. Dus ik nam een van de voorste tandwielen en deze vervolgens gekoppeld aan het plastic en vervolgens ran een koperdraad rond de achterkant van de versnelling. Dit toegestaan voor een gemeenschappelijke grond draad en gemaakt voor een enigszins schoner look (minder draden te zien).
6. Ik heb vervolgens gekopieerd de volgende code als in het artikel en geladen naar de Lilypad. Ik maakte een paar veranderingen aan het origineel zodat de code die ik daadwerkelijk gebruikt hieronder is:
#include < Time.h >
int hourLEDs [] = {1, 2,3,4}; minste significante beetje eerst
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
{
for (int i = 0; ik < 4; i ++)
{
pinMode (hourLEDs [i], OUTPUT);
}
for (int i = 0; ik < 6; i ++)
{
pinMode (minuteLEDs [i], OUTPUT);
}
for (int i = 0; ik < 6; i ++)
{
pinMode (secondLEDs [i], OUTPUT);
}
setTime(0);
}
void loop
{
Als (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, 6, minute(t));
setOutput (secondLEDs, 6, second(t));
}
VOID setOutput (int * ledArray, int numLEDs, int waarde)
{
for (int i = 0; ik < numLEDs; i ++)
{
digitalWrite (ledArray [i],
bitRead(value, i));
}
}
VOID spin (int count)
{
for (int i = 0; ik < telling; i ++)
{
for (int j = 0; j < 16; j ++)
{
digitalWrite (loopLEDs [j], hoge);
delay(50);
digitalWrite(loopLEDs[j],LOW);
}
}
}
7. was het noodzakelijk voor mij om te krijgen de tijd bibliotheek en installeer het. Het proces is beschreven in het artikel.
8. Zodra geïnstalleerd en aangesloten werkt de klok op deze manier.
-Om aan te passen de keer dat je een magneet in de buurt van het riet versnellen switch en het via de tijd totdat u de juiste tijd krijgen...
-Als de tijd verstrijkt, de seconden LEDs verandering en natuurlijk de minuten en uren.
-Om te lezen van de tijd, moet men toevoegen de LEDs die op BV bent uur LEDs 8 en 2 lite, 32 minuten en 8 zijn op, en seconden 16 en 1 zijn hierover zou 10 (8 + 2), 40 (32 + 8), 17(16+1) of 10:40:17.
-Ook bij de wijziging van het uur zullen de LEDs jagen in een volledige cirkel een aantal keren. Als het is 4:00 t, dan ze jagen 4 keer, 11:00 dan ze jagen 11 keer.
Hier is een video van het werkt: