Mikrocontrolling Kurswelt

Der Einstieg ins Mikrocontrolling

Hardware-Projekt: Lauflicht

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
}

				
			
Wissenswert: Die imperative Programmierung

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.

Praxis-Tipp: Programmieren für Fortgeschrittene

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.