Raspberry Pi Pico W: Onboard-LED blinken lassen

Der Raspberry Pi Pico W hat eine Onboard-LED, mit der man den Pico testen, prüfen und erste Experimente durchführen kann. Und das ganz ohne den Aufwand einer externen Beschaltung.
In einem allerersten Programm geht es nur darum, die Onboard-LED auf dem Raspberry Pi Pico blinken zu lassen.

Hier ist zu beachten, dass sich die Adressierung der Onboard-LED vom Pico W zum Pico ohne W unterschiedet.

Aufbau und Bauteile

Raspberry Pi Pico W: Onboard-LED blinken lassen

Der Vorteil dieses Aufbaus ist, dass außer dem Raspberry Pi Pico W nichts weiter erforderlich ist.

1. Programmcode: Endlos-Schleife

Nach dem Start der Programme beginnt die Onboard-LED zu blinken. Beim ersten Programm wird die LED nach einer bestimmten Wartezeit eingeschaltet und ausgeschaltet.

# Bibliotheken laden
from machine import Pin
from time import sleep

# Initialisierung der Onboard-LED
led_onboard = Pin("LED", Pin.OUT)

# Wiederholung (Endlos-Schleife)
while True:
    # LED einschalten
    led_onboard.on()
    # halbe Sekunde warten
    sleep(0.5)
    # LED ausschalten
    led_onboard.off()
    # 1 Sekunde warten
    sleep(1)

2. Programmcode: Endlos-Schleife mit Toggle-Funktion

Das zweite Programm nutzt die Toggle-Funktion, die zwischen zwei Zuständen hin- und herwechselt, unabhängig davon, welcher Zustand gerade herrscht.

# Bibliotheken laden
from machine import Pin
from time import sleep

# Initialisierung der Onboard-LED
led_onboard = Pin("LED", Pin.OUT)

# Wiederholung (Endlos-Schleife)
while True:
    # LED-Zustand wechseln (EIN/AUS)
    led_onboard.toggle()
    # 1 Sekunde warten
    sleep(1)

3. Programmcode: Timer-Steuerung

Die beiden vorherigen Programme sind sicherlich zweckmäßig. Allerdings entspricht die Lösung mit einer Schleife eher dem Stil eines Anfängers. Wir wollen aber etwas lernen und auch unsere Programmierfähigkeiten verbessern. Deshalb nutzen wir hier die Lösung mit einem Timer. Das ist eine interne Funktion des Mikrocontrollers.
Zu beachten ist hier, dass der Wechsel von ein nach aus nicht über die Zeit, sondern die Frequenz in Hertz (Hz) eingestellt wird. Eine Frequenz gibt die Zahl von etwas an, das in einer Sekunde durchlaufen wird. Soll eine Leuchtdiode 2 mal in einer Sekunde blinken, dann gibt man als Wert 2 (Hertz) an.

# Bibliotheken laden
from machine import Pin, Timer

# Initialisierung der Onboard-LED
led_onboard = Pin("LED", Pin.OUT)

# Definition einer Funktion, die der Timer aufruft
def blink(timer):
    led_onboard.toggle()

# Timer initialisieren
Timer().init(freq=2.5, mode=Timer.PERIODIC, callback=blink)

Welche Vorteile hat die Timer-Lösung? Die Timer-Lösung hat den Vorteil, dass sie unabhängig von anderen Programmabläufen funktioniert. Bei einer Schleifen-Lösung blinkt die LED nur dann, wenn die Schleife nicht unterbrochen oder gestoppt wird.
Wenn nicht nur eine LED blinken soll, dann ist die Timer-Steuerung sicherlich die bessere Lösung.

4. Programmcode: Minimale Timer-Steuerung

Gehen wir noch einen Schritt weiter. Versuchen wir den Programmcode so kurz wie möglich zuhalten.

Der Timer wird hier auch nicht mit einer Frequenz (freq) initialisiert, sondern mit der Dauer der Periode in Millisekunden (period). Das vereinfacht oft die Einstellung der Blinkgeschwindigkeit.

# Bibliotheken laden
from machine import Pin, Timer

# Initialisierung der Onboard-LED
led_onboard = Pin("LED", Pin.OUT)

# Timer initialisieren
Timer().init(mode=Timer.PERIODIC, period=100, callback=lambda t: led.value(not led.value()))

Programmcode für CircuitPython

# Bibliotheken laden
import time
import board
import digitalio

# Initialisierung der Onboard-LED
led_onboard = digitalio.DigitalInOut(board.LED)
led_onboard.direction = digitalio.Direction.OUTPUT

# Wiederholung (Endlos-Schleife)
while True:
    # LED einschalten
    led_onboard.value = True
    # halbe Sekunde warten
    time.sleep(0.5)
    # LED ausschalten
    led_onboard.value = False
    # 1 Sekunde warten
    time.sleep(1)

Experimente

Auch wenn Du die folgenden Experimente bereits mit einer externen Leuchtdiode durchgeführt hast, mache es mit der Onboard-LED noch einmal. Diese wird sich anders verhalten.

  1. Versuche verschiedene Kombination mit unterschiedlichen Leucht- und Pausezeiten aus. Zum Beispiel 0.5 und 2.
  2. Welche kleinste Zeit kann man als Leuchtdauer angeben, damit man die Leuchtdiode noch leuchten sieht?
  3. Welche kleinste Zeit kann man als Pausedauer angeben, damit die Leuchtdiode noch ausgeht?

Der Programmcode mit der Timer-Lösung hat das Problem, dass der Timer zwar beendet wird, aber die LED dabei anbleibt bzw. leuchtet.

  1. Finde eine Lösung, bei der die LED nach der Timer-Beendigung nicht mehr leuchtet.
  2. Wähle eine andere Timer-Frequenz. Wann blinkt die LED langsamer und schneller?

Darf es ein bisschen mehr sein?

Hurra, das hat gut geklappt. Aber schwer war das wirklich nicht. Steigern wir die Komplexität mit einer externen LED, die wir einschalten und ausschalten. Das Programm bleibt dabei fast gleich. Hinzu kommt eine externe Beschaltung, wodurch die Komplexität durch die Elektronik hinzukommt.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Elektronik-Set Pico WLAN Edition

Elektronik-Set Pico WLAN Edition

Hardware-nahes Programmieren mit dem Mikrocontroller Raspberry Pi Pico W und MicroPython.

  • Raspberry Pi Pico W mit gelöteten Stiftleisten
  • Spezielles Steckbrett mit GPIO-Beschriftung
  • Einführung ins Hardware-nahe Programmieren
  • Schwerpunkte: WLAN, MQTT und Internet
  • Deutschsprachige Anleitung als PDF-Datei zum Download

In unseren Online-Workshops bieten wir intensiven Erfahrungsaustausch in kleinen Gruppen und Unterstützung bei individuellen Problemen.

Elektronik-Set jetzt bestellen Online-Workshop buchen

Online-Workshop: Programmieren mit dem Raspberry Pi Pico

Programmieren mit dem Raspberry Pi Pico

Gemeinsam mit anderen und unter Anleitung experimentieren? Wir bieten unterschiedliche Online-Workshops zum Raspberry Pi Pico und MicroPython an. Einführung in die Programmierung, Sensoren programmieren und kalibrieren, sowie Internet of Things und Smart Home über WLAN und MQTT.

Online-Workshop buchen

Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.

Termine und Newsletter-Anmeldung

 

Elektronik-Sets für das Hardware-nahe Programmieren