de:project_arduino:blink_with_millis

FIXME Diese Seite wurde noch nicht vollständig übersetzt. Bitte helfen Sie bei der Übersetzung.
(diesen Absatz entfernen, wenn die Übersetzung abgeschlossen wurde)

Blinkende LED mit der Funktion "millis ()"

Im klassischen blink Programm blinken die LEDs von Pin 13. Das Beispielprogramm Blinken erledigt dies mit der Funktion delay, die keine elegante Lösung ist, da sie den Rest des Programms zum Warten zwingt. Mit der Funktion millis () kann die seit dem Start von Arduino verstrichene Zeit in Millisekunden abgefragt werden. Gelegentlich ist der float, in dem dies gespeichert ist, voll. In diesem Fall wird die Zählung neu gestartet (Überlauf).

  • pause_time = 100; : Wartezeit zwischen den Triggern, hier spez. 0,1 sek
  • // switch : Geben Sie hier Ereignisse ein, die mit dem Auslöser (Timeout) verbunden sind
// source: ob121.com - Vamos Sandor 2018
 
float current_time, old_time, pause_time; // variables for "Time"
bool blink_on;  // state of blink
 
void setup() {
  pinMode(13, OUTPUT);      // blink LED def.
  current_time = millis();  // read time
  old_time = current_time;  // default: start from 0.
  pause_time = 100;         // pause (waiting) time, in here 0,1 sec
}
 
// the loop function runs over and over again forever
void loop() {
 
// ----------------------- timer
 
  current_time = millis();        // read time
 
  if (current_time < old_time) {  // after overflow
    old_time = current_time;      // new start
  }
  if ((current_time - old_time) > pause_time) {    // time is gone
    old_time = current_time;      // new start
 
    // switch 
    blink_on = !blink_on;         // trigger event(s)
  }
 
// ------------------------ blink 
  if (blink_on) {
    digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  } else {
    digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  }
 
}

>> Zurück zur Liste der Arduino-Projekte

  • de/project_arduino/blink_with_millis.txt
  • 2022/04/21 15:01
  • ()