Raspberry Pi Pico: Externe LED blinken lassen

Am Besten ist Elektronik immer dann, wenn es blinkt und blitzt. Aber wenn es zu sehr blitzt, ist danach meistens etwas kaputt. Deshalb beschränken wir uns sicherheitshalber auf das Blinken einer Leuchtdiode.
Für den Raspberry Pi Pico lässt sich in MicroPython das Blinken einer Leuchtdiode in wenigen Zeilen schreiben.

Damit eine LED blinkt oder blitzt gibt es in der Elektronik nur ein paar Grundschaltungen, die man je nach Blinkfrequenz variieren kann oder sogar bevorzugt. Die folgenden Programmcodes ersetzen die Funktion dieser Grundschaltungen. Das einzige, was an Hardware bleibt, ist die Leuchtdiode mit dem Vorwiderstand. Und natürlich der Raspberry Pi Pico.
Die Leuchtdiode wird per Software gesteuert.

Es gibt nicht nur einen Weg, wie man eine Leuchtdiode zum Blinken bringen kann. Es gibt gleich mehrere Möglichkeiten. Und genau die solltest Du alle ausprobieren. Und es wäre denkbar, dass es noch weitere Lösungen gibt, die hier nicht berücksichtigt wurden.

Im folgenden Aufbau wird der Mikrocontroller Raspberry Pi Pico verwendet. Zum Einstieg und erste Versuche empfehlen sich Erste Schritte mit dem Raspberry Pi Pico und Programmieren mit MicroPython.

Aufbau und Bauteile

Raspberry Pi Pico: Externe LED blinken lassen
  • LED1: Leuchtdiode, rot, gelb oder grün
  • R1: Widerstand, 470 Ohm (Gelb-Violett-Schwarz-Schwarz)
  1. Verbinde die Anode (langer Anschluss) der Leuchtdiode mit dem GPIO-Pin.
  2. Verbinde die Kathode (kurzer Anschluss) der Leuchtdiode mit dem Widerstand.
  3. Verbinde die andere Seite des Widerstands mit dem GND-Pin.

Schnell und einfach alle Bauteile zusammen bestellen

1. Programmcode: Endlos-Schleife

Nach dem Start der Programme beginnt die 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 von GPIO13 als Ausgang
led = Pin(13, Pin.OUT)

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

Programmcode für MMBasic

SETPIN GP13, DOUT
DO
  PIN(GP13) = 1
  PAUSE 300
  PIN(GP13) = 0
  PAUSE 300
LOOP

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 von GPIO13 als Ausgang
led = Pin(13, Pin.OUT)

# Wiederholung (Endlos-Schleife)
while True:
    # LED-Zustand wechseln (EIN/AUS)
    led.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 hier 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 von GPIO13 als Ausgang
led = Pin(13, Pin.OUT)

# Definition einer Funktion, die der Timer aufruft
def blink(timer):
    led.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.

Experimente

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

Der erste Programmcode erlaubt verschiedene Experimente:

  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 etwas mehr sein?

Hurra, das hat doch ganz gut geklappt. Aber schwer war das wirklich nicht. Steigern wir die Komplexität mit einem Wechselblinker mit zwei Leuchtdioden.

Highlights: Elektronik mit dem Raspberry Pi Pico

Elektronik mit dem Raspberry Pi

Die Stärken des Raspberry Pi liegen klar in der Computer-Architektur mit typischen Computer-Schnittstellen und Möglichkeit zum Ausführen von Open-Source-Software für Linux.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython

Elektronik-Set Pico Edition

Das Elektronik-Set Pico Edition ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit MicroPython.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Entprellen und Zustände anzeigen
  • LED mit Taster einschalten und ausschalten
  • Ampel- und Lauflicht-Steuerung
  • Elektronischer Würfel
  • Eigene Steuerungen programmieren

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