HackerBoxes 0008: Clockwork (8 / 20 steg)
Steg 8: Att hålla tid med programvara
Så vi har sett den delay() funktionen, men hur Pro Mini vet vad en millisekund är när vi säger det att fördröja ett givet antal millisekunder. Tja... Den har en kristalloscillator naturligtvis. Den lilla, utanpåliggande montering, 16MHz kristall oscillatorn är ansluten mellan PB6/XTAL1 stiftet och PB7/XTAL2 PIN-koden av ATmega328 chip som framhållits här. Observera att "xtal" är ett vanligt förkortning av ordet kristallen.
Arduino tid bibliotek kan använda intern klockning (från kristalloscillator) för att ge tidtagning funktionalitet. Biblioteket gör en skiss att få tid och datum som: sekund, minut, timme, dag, månad och år.
Starta by nedladda och installera själva tid biblioteket. Här är en välskött version till hugg från github. Du kanske vill läsa denna guide att installera bibliotek.
Tid biblioteket innehåller ett exempel skiss kallas TimeSerial. Öppna denna kod. Även öppna seriell bildskärmen och ange dess överföringshastighet till 9600. Slutligen, programmera TimeSerial till Pro Mini och låt det rip. Du kan ange tiden i följetong monitor genom att skriva bokstaven T följt av tio siffror. Dessa siffror är antalet sekunder sedan 1 januari 1970. Du kan till exempel ange tiden till klockan tolv på 1 januari 2013 genom att ange "T1357041600"
Antal sekunder sedan 1 januari 1970 kallas Unix Time eller epok tid. Här är en webbplats för att konvertera mänskligt läsbara datum/tid till epoken tid. Du kan använda detta med seriell monitor "T"-kommandot om du vill ställa in tiden till den faktiska tiden.
Detta tillvägagångssätt verkar fungera bra, men det finns en stor brist att hålla tid med programvara. Tidtagningen stannar när programvaran slutar. Till exempel när vi slå av strömmen. När vi driva tillbaka upp, måste vi ställa in tiden igen. I praktiken är detta inte mycket användbar.