millis() startet den Zeitnehmer, die Zeit wird in Millisekunden gemessen.
Allerdings kann millis() nicht die aktuelle Zeit bestimmen.

Beispiel:
Zeit seit dem Start des Programms messen:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | float StartZeit; float VerstricheneZeit; float Sekunden; void setup() { Serial.begin(9600); // auf serielle Verbindung warten while (!Serial); delay(500); Serial.println(“Verstrichene Zeit seit dem Start des Programms:”); Serial.println(“Start mit return-Taste …”); Serial.println(“———————————————–”); // Startzeit des Programms StartZeit = millis(); } void loop() { // auf serielle Eingabe warten while (Serial.available() > 0) { // Eingabe im Seriellen Monitor lesen char Zeichen = Serial.read(); // Enter/Senden gedrückt if (Zeichen == ‘\n’) // Zeit berechnen float Sekunden; VerstricheneZeit = millis() - StartZeit; // 1000 ms = 1 s Sekunden = VerstricheneZeit / 1000; // Sekunden in String umwandeln String AnzahlSekunden = String(Sekunden); // . durch , ersetzen AnzahlSekunden.replace(“.”, “,”); // Ausgabe im Seriellen Monitor Serial.println(AnzahlSekunden + ” Sekunden”); } } |

Beispiel
Zeit der Leuchtdauer einer LED (zwischen der Betätigung eines Tasters) messen:
Bibliothek installieren


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | // Bibliothek Bounce2 einbinden #include “Bounce2.h” // Bounce starten // Namen des Objekts Bounce (TasterGedrueckt) festlegen Bounce TasterGedrueckt = Bounce(); // Pins LED und Taster int LED = 7; int TASTER = 6; /* setzt den Status Status true -> LED an Status false -> LED aus beim Start soll die LED ausgeschaltet sein */ bool Status = false; // Startzeit wird mit millis() ermittelt unsigned long Startzeit; // verstrichene Zeit in Millisekunden unsigned long VerstricheneZeit; float Sekunden; int Minute; void setup() { pinMode(LED, OUTPUT); /* Namen des Objekts Bounce (TasterGedrueckt) dem Taster zuordnen (attach) Zeitintervall einstellen INPUT_PULLUP -> Eingangspegel auf HIGH setzen */ TasterGedrueckt.attach(TASTER, INPUT_PULLUP); TasterGedrueckt.interval(20); Serial.begin(9600); } void loop() { // Tasterstatus abfragen if (TasterGedrueckt.update()) { // Taster wurde gedrückt, das Signal ist gefallen if (TasterGedrueckt.fell()) { // LED ist aus ⇒ Status == false if (Status == false) { digitalWrite(LED, HIGH); // Status auf true (an) setzen Status = true; // wenn Status == true -> Timer starten if (Status) Startzeit = millis(); } // LED ist an ⇒ Status == true else if (Status == true) { digitalWrite(LED, LOW); // Dauer des Einschaltend der LED berechnen VerstricheneZeit = millis() - Startzeit; Sekunden = VerstricheneZeit / 1000.0; String AnzeigeSekunden = String(Sekunden); AnzeigeSekunden.replace(“.”, “,”); // Sekunden anzeigen Serial.print(“Leuchtdauer: ” + AnzeigeSekunden + ” Sekunde(n)”); // Minuten berechnen und anzeigen Minute = Sekunden / 60; if (Minute > 0) { Serial.print(“ = ” + String(Minute) + ” Minute(n): ”); Sekunden = Sekunden - Minute * 60; Serial.println(String(Sekunden) + ” Sekunde(n)”); } // Status auf false (aus) setzen Status = false; } } } } |
Letzte Aktualisierung: