Stap 2: programmeren
De code die ik gebruikte was uit het boek, "30 Arduino projecten voor het kwade genie" door Simon Monk. Maar ik getweaked het een beetje te passen mijn specifieke ontwerp. Het eerste ding dat u moet doen is download het dossier "Tijd" van de arduino library.
http://www.pjrc.com/teensy/td_libs_Time.html
Zorg ervoor dat "time.h" in uw omslag van de bibliotheken in het programma van de Arduino.
De schakeloptie-pin is zodat u de tijd kunt instellen. Wanneer uitgeschakeld, wordt de klok sneller verplaatst zodat kunt u het door de cyclus totdat zij tot de tijd die u wilt instellen op. Wanneer u de schakeloptie opnieuw spiegelen, het vertraagt naar normaal en houdt van tijd vanaf daar.
Hier is de code die ik gebruikt:
#include < Time.h >
int hourLEDs [] = {4, 3, 2, 1}; eerste lijst in volgorde van met 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
{
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)) //when switch geactiveerd, tijd snelheden is omhoog zodat u tijd kunt instellen
{
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 (waarde, ik));
}
}
VOID spin (int count) //spins van de lichten voor elk uur
{
for (int i = 0; ik < telling; i ++)
{
for (int j = 0; j < 16; j ++)
{
digitalWrite (loopLEDs [j], hoge);
delay(50);
digitalWrite (loopLEDs [j], laag);
}
}
}