|
Zeitanzeige
Ziel
Wir programmieren eine einfache Zeitanzeige, die Stunde, Minute
und Sekunde anzeigt.
Sie startet bei 00:00:00 und zeigt somit die Zeit an, die seit
dem letzten Reset oder dem letzten Einschalten von Arduino
vergangen ist.
Wie genau ist diese Zeitanzeige?
Arduino enthält einen Quartz.
Der ist zwar kein Uhrenquartz aber immer noch genau genug, um
fast die Genauigkeit einer Quartzuhr zu erreichen.
Zu bewältigende Probleme
- So eine digitale Uhrzeitanzeige hat das Problem, dass die
Sekunden und die Minuten bis 59 hochzählen und die Stunden
bis 23.
Dieses Problem lösen wir mit dem Modulo-Operator.
- Hinzu kommt, dass wir gerne führende Nullen sehen wollen:
wenn es 10:04:55 Uhr ist, soll da nicht stehen: 10:4:55 Uhr.
Hier das Programm:
/*
Stoppuhr für
SainSmart LCD Keypad Shield V1.0
www.arduinospielwiese.de
*/
#include
<LiquidCrystal.h>
LiquidCrystal lcd(8, 13,
9, 4, 5, 6, 7);
int stunde, minute,
sekunde;
void setup() {
lcd.begin(16,
2);
lcd.clear();
}
void loop(){
sekunde =
(millis()/1000) % 60; // Das Zeichen: "%" ist der
Modulo-Operator
minute =
(millis()/60000) % 60;
stunde =
(millis()/3600000) % 24;
lcd.setCursor(4,0);
if (stunde<10)
lcd.print("0"); // fuehrende Null
lcd.print(stunde);
lcd.print(":");
if (minute<10)
lcd.print("0");
lcd.print(minute);
lcd.print(":");
if
(sekunde<10) lcd.print("0");
lcd.print(sekunde);
}
Mögliche Erweiterungen
Statt die Startzeit bei 00:00:00 beginnen zu lassen, könnte man
die aktuelle Uhrzeit in das Programm einbringen (siehe auch
nächstes Projekt: "Digitaluhr").
|