LED blinken lassen – Visuelle Signale programmieren

LEDs (Light Emitting Diodes) sind nicht nur schön anzusehen, sondern auch äußerst praktisch für die Programmierung. Sie ermöglichen visuelle Rückmeldungen, Statusanzeigen und können zur Fehlersuche eingesetzt werden. Der Arduino Alvik verfügt über mehrere LEDs, die du individuell ansteuern kannst.

Die LEDs auf dem Alvik

Der Alvik hat verschiedene LEDs, die du programmieren kannst:

💡 RGB-LEDs:
RGB steht für Rot, Grün, Blau. Durch Mischung dieser drei Grundfarben können nahezu alle Farben erzeugt werden!

Beispiel 1: ESP32 Onboard-LED blinken lassen

Die einfachste LED auf dem Alvik ist die kleine blaue LED auf dem ESP32-Chip. Sie ist ideal für erste Experimente und zum Debuggen.

Code-Beispiel

from machine import Pin
from time import sleep

# LED auf Pin 45 initialisieren
led = Pin(45, Pin.OUT)

while True:
    led.value(1)  # LED einschalten
    sleep(1)      # 1 Sekunde warten
    led.value(0)  # LED ausschalten
    sleep(1)      # 1 Sekunde warten

Wie funktioniert der Code?

  1. Import: machine.Pin für Hardware-Steuerung, time.sleep für Pausen
  2. Pin-Konfiguration: Pin(45, Pin.OUT) setzt Pin 45 als Ausgang
  3. LED an: led.value(1) schaltet die LED ein (HIGH)
  4. LED aus: led.value(0) schaltet die LED aus (LOW)
  5. Endlosschleife: while True lässt die LED kontinuierlich blinken

Beispiel 2: RGB-LEDs mit Farben

Die RGB-LEDs auf dem Alvik können in verschiedenen Farben leuchten. Du steuerst sie über die Alvik-API mit der Methode set_color().

RGB-Farbsystem verstehen

Jede Farbe wird durch drei Werte definiert:

Wichtige Farben

Farbe RGB-Werte Code
Rot (1, 0, 0) set_color(1, 0, 0)
Grün (0, 1, 0) set_color(0, 1, 0)
Blau (0, 0, 1) set_color(0, 0, 1)
Gelb (1, 1, 0) set_color(1, 1, 0)
Cyan (0, 1, 1) set_color(0, 1, 1)
Magenta (1, 0, 1) set_color(1, 0, 1)
Weiß (1, 1, 1) set_color(1, 1, 1)
Aus (0, 0, 0) set_color(0, 0, 0)

Code-Beispiel: Farbwechsel

from arduino_alvik import ArduinoAlvik
from time import sleep_ms

alvik = ArduinoAlvik()
alvik.begin()

# Blinke 5 mal durch verschiedene Farben
for _ in range(5):
    # Linke LED: Blau
    alvik.left_led.set_color(0, 0, 1)
    sleep_ms(1000)
    
    # Linke LED: Grün
    alvik.left_led.set_color(0, 1, 0)
    sleep_ms(1000)
    
    # Linke LED: Rot
    alvik.left_led.set_color(1, 0, 0)
    sleep_ms(1000)
    
    # Rechte LED: Blau
    alvik.right_led.set_color(0, 0, 1)
    sleep_ms(1000)
    
    # Rechte LED: Grün
    alvik.right_led.set_color(0, 1, 0)
    sleep_ms(1000)
    
    # Rechte LED: Rot
    alvik.right_led.set_color(1, 0, 0)
    sleep_ms(1000)

# Alle LEDs ausschalten
alvik.left_led.set_color(0, 0, 0)
alvik.right_led.set_color(0, 0, 0)

Beispiel 3: Synchrones Blinken beider LEDs

Lass beide LEDs gleichzeitig in der gleichen Farbe blinken:

from arduino_alvik import ArduinoAlvik
from time import sleep

alvik = ArduinoAlvik()
alvik.begin()

while True:
    # Beide LEDs rot
    alvik.left_led.set_color(1, 0, 0)
    alvik.right_led.set_color(1, 0, 0)
    sleep(0.5)
    
    # Beide LEDs aus
    alvik.left_led.set_color(0, 0, 0)
    alvik.right_led.set_color(0, 0, 0)
    sleep(0.5)

Beispiel 4: Wechselblinker (Polizeisignal)

Erstelle ein Blaulicht-Effekt mit abwechselnd blinkenden LEDs:

from arduino_alvik import ArduinoAlvik
from time import sleep_ms

alvik = ArduinoAlvik()
alvik.begin()

# Blaulicht für 10 Sekunden
for _ in range(20):
    # Linke LED blau, rechte aus
    alvik.left_led.set_color(0, 0, 1)
    alvik.right_led.set_color(0, 0, 0)
    sleep_ms(250)
    
    # Rechte LED blau, linke aus
    alvik.left_led.set_color(0, 0, 0)
    alvik.right_led.set_color(0, 0, 1)
    sleep_ms(250)

# Ausschalten
alvik.left_led.set_color(0, 0, 0)
alvik.right_led.set_color(0, 0, 0)

Beispiel 5: Regenbogen-Effekt

Durchlaufe sanft verschiedene Farben:

from arduino_alvik import ArduinoAlvik
from time import sleep

alvik = ArduinoAlvik()
alvik.begin()

# Farbsequenz: Rot → Gelb → Grün → Cyan → Blau → Magenta → Rot
farben = [
    (1, 0, 0),    # Rot
    (1, 1, 0),    # Gelb
    (0, 1, 0),    # Grün
    (0, 1, 1),    # Cyan
    (0, 0, 1),    # Blau
    (1, 0, 1),    # Magenta
]

while True:
    for farbe in farben:
        alvik.left_led.set_color(farbe[0], farbe[1], farbe[2])
        alvik.right_led.set_color(farbe[0], farbe[1], farbe[2])
        sleep(0.5)

Beispiel 6: LED als Status-Anzeige

Nutze LEDs zur Anzeige von Zuständen während der Fahrt:

from arduino_alvik import ArduinoAlvik
from time import sleep_ms

alvik = ArduinoAlvik()
alvik.begin()

distance_threshold = 15

while True:
    # Abstand messen
    distance_l, distance_cl, distance_c, distance_r, distance_cr = alvik.get_distance()
    
    if distance_c < distance_threshold:
        # Hindernis: Rote LEDs
        alvik.left_led.set_color(1, 0, 0)
        alvik.right_led.set_color(1, 0, 0)
        alvik.rotate(45)
    else:
        # Freie Fahrt: Grüne LEDs
        alvik.left_led.set_color(0, 1, 0)
        alvik.right_led.set_color(0, 1, 0)
        alvik.move(10)
    
    sleep_ms(100)

Praktische Anwendungen für LEDs

Debugging und Fehlersuche

LEDs sind hervorragend zum Debuggen, wenn keine USB-Verbindung besteht:

Benutzer-Feedback

Show-Effekte

Helligkeitssteuerung

Du kannst auch Zwischenwerte verwenden, um die Helligkeit zu reduzieren:

from arduino_alvik import ArduinoAlvik
from time import sleep

alvik = ArduinoAlvik()
alvik.begin()

# Verschiedene Helligkeitsstufen
alvik.left_led.set_color(1.0, 0, 0)    # Voll hell rot
sleep(1)
alvik.left_led.set_color(0.5, 0, 0)    # Halbe Helligkeit rot
sleep(1)
alvik.left_led.set_color(0.1, 0, 0)    # Sehr dunkel rot
sleep(1)
alvik.left_led.set_color(0, 0, 0)      # Aus

Tipps & Best Practices

Häufige Fehler und Lösungen

Problem Ursache Lösung
LED leuchtet nicht Falscher Pin oder nicht initialisiert Prüfe Pin-Nummer (45 für ESP32 LED)
Falsche Farbe RGB-Werte vertauscht Reihenfolge: (Rot, Grün, Blau)
LED zu hell/dunkel Helligkeitswert falsch Werte zwischen 0.0 und 1.0 verwenden
Blinken zu schnell/langsam sleep() Zeit anpassen Experimentiere mit verschiedenen Werten

Zusammenfassung

LED-Programmierung auf dem Alvik:

Mit LEDs machst du deinen Alvik nicht nur schöner, sondern auch informativer und einfacher zu debuggen! 💡

🎯

Challenge: Teste dein Wissen!

Prüfe, ob du alles verstanden hast

🧠 Wissens-Check

1. Welche Farb-Parameter hat set_color(r, g, b)?

2. Wie schaltet man eine LED aus?

💻 Programmier-Challenge

📝 Ampel-Simulation

Programmiere eine Ampelschaltung: Rot (3 Sek) → Gelb (1 Sek) → Grün (3 Sek) → Gelb (1 Sek) → wieder Rot

💡 Hinweise:
  • Rot: set_color(1, 0, 0)
  • Gelb: set_color(1, 1, 0)
  • Grün: set_color(0, 1, 0)
  • Nutze time.sleep() für die Wartezeiten

Selbsttest: Das kann ich jetzt!

Hake ab, was du verstanden hast:

0/4

Punkte verstanden