LilyPad Arduino binär klocka (2 / 3 steg)
Steg 2: programmering
Koden jag använde var från boken, "30 Arduino projekt för Evil Genius" av Simon Monk. Men jag fixade det lite för att passa min specifika design. Det första du behöver göra är att ladda ner filen "Time" från arduino biblioteket.
http://www.pjrc.com/teensy/td_libs_Time.html
Kontrollera "time.h" är i mappen Bibliotek i programmet Arduino.
Switch PIN-koden är så du kan ställa in tiden. När avstängd, flyttas klockan snabbare så du kan köra det genom cykeln tills den når när du vill ställa in den på. När du vänder växeln igen, det saktar ner till det normala och håller tid därifrån.
Här är koden jag använde:
#include < Time.h >
int hourLEDs [] = {4, 3, 2, 1}; lista i den ordning med 1 först
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()
{
för (int jag = 0; jag < 4; i ++)
{
pinMode (hourLEDs [i], produktionen);
}
för (int jag = 0; jag < 6; i ++)
{
pinMode (minuteLEDs [i], produktionen);
}
för (int jag = 0; jag < 6; i ++)
{
pinMode (secondLEDs [i], produktionen);
}
setTime(0);
}
void loop()
{
om (digitalRead(switchPin)) //when switch är aktiverat, tiden rusar upp så du kan ställa in tiden
{
adjustTime(1);
}
annat if (minute() == 0 & & second() == 0)
{
Spin(Hour());
}
updateDisplay();
Delay(1);
}
void updateDisplay()
{
tid t = now();
setOutput (hourLEDs, 4, hourFormat12 (t));
setOutput (minuteLEDs, 6, minute(t));
setOutput (secondLEDs, 6, second(t));
}
void setOutput (int * ledArray, int numLEDs, int värde)
{
för (int jag = 0; jag < numLEDs; i ++)
{
digitalWrite (ledArray [i], bitRead (värde, jag));
}
}
Annullera spin (int antal) //spins lampor i varje timme
{
för (int jag = 0; jag < greve; i ++)
{
för (int j = 0; j < 16; j ++)
{
digitalWrite (loopLEDs [j], hög);
Delay(50);
digitalWrite (loopLEDs [j], låg);
}
}
}