/** * Dieser Sketch "Blink" laesst die SMD-LED auf dem Arduino Board blinken. * Dabei wird auf die delay() Funktion verzichtet. * */ int led = 13; int state = LOW; // Variable um den aktuellen Status der LED zu zwischen zu speichern unsigned long timestamp; // Variable um den aktuellen Timestamp zu speichern unsigned long lastupdate = 0; // Variable um den Timestamp des letzten Update zu speichern void setup () { Serial.begin (9600); pinMode (led, OUTPUT); } void loop () { timestamp = millis (); /* Die Funktion millis() gibt den Anzahl der vergangenen Millisekunden seit dem Start des Arduino zurück. Fängt nach ca. 50 Tagen wieder bei 0 an zu zählen. */ if (timestamp - lastupdate > 1000) { // sind schon 1000 Millisekunden vergangen? state = digitalRead (led); // digitalRead() gibt den aktuellen Status des IO-Port zurück (High/Low) lastupdate = timestamp; // speichert den Timestamp des letzten Statuswechsel (LED an/aus) digitalWrite (led, !state); // setzt den IO-Port 13 auf den gegenteiligen Status. /* Das Ausrufezeichen vor der Variable state bewirkt eine logische Negation. Aus HIGH wir LOW und aus LOW wird HIGH */ Serial.println("LED umgeschaltet"); } /* An dieser Stelle könnte weiterer Code folgen der trotz blinken weiter ausgeführt wird! */ }