Historien klockan: Arduino LCD w / cap sensorer (7 / 11 steg)
Steg 7: Programmering klockan för nybörjare: ställa in tiden
Jag erkänna att det tog mig ett bra tag att lista ut. Det verkar enkelt nu... Här är en av subrutiner jag använder:
subrutin för inställningen dagen
int plusday() {
RTC.setDay (datum + 1);
RTC.setClock();
Delay(500);
}
Det fungerar så här: Ange numret 'datum' framåt genom 1, sedan ställa in klockan och sedan fördröja för 1/2 en sekund innan du gör det igen. Två saker att notera: du måste ställa in det som du anger och sedan ställa in klockan (t.ex. har två uttalanden i det tillsammans och i rätt ordning). Om du har dem i fel ordning eller om du utelämnar setClock(); uttalande, det brukar fungera. Andra, 1/2 andra dröjsmål finns där att hålla klockan från att lägga massor av tid från en kort touch av trådarna.
Här är de samtal du kan använda om du använder RealTimeClockDS1307.h biblioteket:
getHours getMinutes getSeconds getYear getMonth getDate getDay GetDayOfWekk (ganska självförklarande)
setClock (måste använda efter varje av följande saker, men inte för samtal som ovan)
setSeconds setMinutes setHours
setAM setPM set24h switchTo24h switchTo12h
setDayOfWeek setDate setDay setMonth setYear
stopp start (att starta och stoppa klockan, om du vill göra det)
sqwEnable sqwDisable writeData readData (square wave-utgång saker jag inte använder)
is12hour isPM isStopped getFormatted getFormatted2k (användbart för att prata med klockan via serieporten)
Det finns två sätt att initialt få klockan går.
- Använda ett separat program för att starta klockan. Det är vad jag gjorde - nedan är en länk för dig att ladda ner programmet jag använde. Du ställa in tiden i programmet och köra det en gång.
- Eller du kan helt enkelt tillfälligt lägga till en rad kod till huvudprogrammet i början av void slingan. Lägg till detta: starta clock(); kör sedan programmet en gång och det ska stå att det är 00:00:00 den Jan 1 2000. Sedan kommentera ut raden, kör programmet igen och Använd knapparna på baksidan av klockan för att ställa tiden. Detta kommer att vara långsam.