Bis zu 10 LEDs, in Reihe geschaltet und so programmiert, dass das Licht von einer zur nächsten springt: Ein perfektes Projekt für Einsteiger! Schaue dir auch die Videos in der Lektion „Blaulicht“ an, hier findest du einen Tipp zum Aufbau.
Überlege dir genau, welche LEDs du wann an- und wann ausschalten musst: Beim Start sind alle LEDs (automatisch) aus. Du musst also nicht alle LEDs für jeden Schritt ansteuern!
Also NICHT so:
#Geschwindigkeit
Wie schnell das Licht wechselt, kannst du flexibel mit dem delay/warten festlegen. Im Video sind es 500ms.
#Anzahl
Wir haben 7 LEDs verwendet, du kannst natürlich selbst entscheiden, wie viele LEDs und welche Farben du verbaust.
#Rücksprung
Ob du das Licht von der letzten LED wieder zurücklaufen lässt (grün -> gelb) oder ob es zurück zum Anfang springt (grün -> blau, wie im Video) kannst du frei entscheiden.
Die Frage lässt sich schnell beantworten: Es geht um die maximale Ausgangsleistung der I/O-Pins (= 200mA).
I/O-Pins sind alle digitalen Pins (13. 12, 11, …) und alle analogen Pins (A0, A1, A2, …). Schließt du eine LED an einen Pin an, benötigt sie ca. 20mA.
200mA / 20mA = 10 LEDs
void setup() {
pinMode(7, OUTPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
}
void loop() {
digitalWrite(7, LOW);
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
delay(500);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
delay(500);
digitalWrite(10, LOW);
digitalWrite(9, HIGH);
delay(500);
digitalWrite(9, LOW);
digitalWrite(8, HIGH);
delay(500);
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
delay(500);
// optional mit Rücklauf, hier ohne
}
Die imperative Programmierung ist ein Programmierparadigma: Jeder Befehl wird nacheinander, Schritt für Schritt ausgeführt, unser Code läuft also von oben nach unten. Später können wir den Code mit Funktionen strukturieren oder einzelne Codezeilen mit Verzweigungen/Schleifen gezielt ausführen/überspringen.
Kannst du das Lauflicht mit 3-5 Codezeilen programmieren? Wir haben Variablen und while-Schleifen verwendet und es mit je 4 Codezeilen für Hin- und Rücklauf programmiert.
Hinweis: Das ist eine Zusatz-Challenge für Fortgeschrittene und wird nicht weiter vertieft.