Arduino klocka projekt för Ahmed (1 / 8 steg)
Steg 1: En Arduino gör en dålig klocka - simulera en klocka i programvara
När jag ta itu med ett komplext projekt, gillar jag att bryta i diskreta steg baserat på funktionalitet och ledningar. Sedan, när något går fel, jag kan alltid falla tillbaka till den tidigare "kända bra" läge för att räkna ut vad som gick fel.
Vi börjar genom att bara skriva några enkla kod för att hantera sekunder, minuter och timmar med Arduinos interna räknaren som spårar tiden, i millisekunder, sedan styrelsen var påslagen eller återställa.
Här är våra första skiss, utan bibliotek eller ledningar. Tiden bara visas seriekonsoll:
tid variabler < br > lång lastMillis;
int timmar = 0;
int minuter = 0;
int sekunder = 0;
void setup() {
Serial.BEGIN(9600); Öppen kanal till seriekonsoll
Serial.println ("Arduino klocka steg 1");
}
void loop() {
lång curMillis = millis(); få aktuella räknare i millisekunder
om (curMillis > (lastMillis + 1000)) {/ / om en sekund har passerat:
lastMillis = lastMillis + 1000;
sekunder = sekunder + 1. Increment sekunder
om (sekunder > 59) {
sekunder = 0;
minuter = minuter + 1. Increment minuter
om (minuter > 59) {
minuter = 0;
timmar = timmar + 1. Increment timmar
om (timmar > 23) {
timmar = 0;
}
}
}
Visa tid på seriekonsoll
Serial.Print(hours);
Serial.Print(":");
Serial.Print(Minutes);
Serial.Print(":");
Serial.println(seconds);
}
}
Du kan ange tid variabler innan du laddar upp skissen, och Arduino kommer hålla skälig tid (inom en minut per dag) tills en återställning eller makt cykel inträffar.
Tid att utforska:
- Kan du fixa utdata så om timmar eller minuter är mindre än 10, en ledande "0" visas?
- Hur exakt är din Arduino? Kan du kalibrera den att köra mer exakt?
- Kan du använda digitala Pin 13 LED för att ange bortgången av sekunder?