Zeitmessung mittels des LCD-Keypad Shields
Das Shield kann zur Zeitanzeige und zur Bedienung verschiedener Zeitmesseinrichtungen genutzt werden.
Als Grundlage für die Zeitmessung können die Funktionen millis() und micros() genutzt werden.
Beide Funktionen liefern Ergebnisse vom Typ unsigned long, also ganze Zahlen im Bereich von 0 bis 4.294.967.295 (2^32 - 1).
Für millis() ergibt sich so eine Zeitbereich von rund 429.4967 Sekunden, bzw. 71.582 Minuten, bzw. 1.193 Stunden oder 49 Tag.
Für micros() ist der Zeitbereich rund 4.294 Sekunden bzw. 71 MInuten oder 1 Stunde und 71 Minuten.
- Lerne Ganzzahldivision und Modulo-Rechnen als mathematische Grundlagen für die folgenden Programme kennen.
- Vervollständige die Zeitanzeige einer Uhr.
- .
Ganzzahldivision und Modulo-Rechnen
Die mathematischen Grundlagen liegen im Verständnis und der Anwendung der Ganzzahldivision und der Modulo-Operation.
Das ist eigentlich Grundschulwissen, in Verbindung mit der Division wird das Rechnen mit Rest gelehrt.
... 11 : 4 = 2 Rest 3 , denn 2*4 + 3 = 11 12 : 4 = 3 Rest 0 , denn 3*4 + 0 = 12 13 : 4 = 3 Rest 1 , denn 3*4 + 1 = 13 14 : 4 = 3 Rest 2 , denn 3*4 + 2 = 14 15 : 4 = 3 Rest 3 , denn 3*4 + 3 = 15 16 : 4 = 4 Rest 0 , denn 4*4 + 0 = 16 usw.
Nun zur Anwendung:
Liefert millis() beispielsweise den Wert 123456789, dann berechnen die Operatoren / und % in Verbindung mit ganzen Zahlen folgende Ergebnisse:1234567890 / 1000 = 1234567 und 1234567890 % 1000 = 890 1.234.567.890 Millisekunden sind 1.234.567 Sekunden und 890 Millisekunden. 1234567 / 60 = 20576 und 1234567 % 60 = 7 1.234.567 Sekunden sind 20.576 Minuten und 7 Sekunden. 20576 / 60 = 342 und 20576 % 60 = 56 20.576 Minuten sind 342 Stunden und 56 Minuten. 342 / 24 = 14 und 342 % 24 = 6 342 Stunden sind 14 Tage und 6 Stunden.1.234.567.890 Millisekunden entsprechen somit 14 Tage, 6 Stunden, 56 Minuten, 7 Sekunden und 890 Millisekunden.
Grundlagen der Zeitanzeige
Mit diesem Programm wird im LCD-Display die Zeit in Minuten und Stunden seit Programmstart angezeigt.
Erweitere das Programm, so dass auch die Stunden angezeigt werden.
Um nicht lange auf eine bestimmet Uhrzeit warten zu müssen, manipuliere die Zeit mit
zeit = (( (60 * 13 ) + 38) * 60 + 51) + millis()/1000
auf die Uhrzeit auf 13:38:51.
