Willkommen in der faszinierenden Welt der GPIOs (General Purpose Input/Output)! In diesem Tutorial tauchen wir ein in die Grundlagen, wie du mit einem Raspberry Pi Pico Taster einliest und LEDs ansteuerst. Egal, ob du Anfänger oder schon etwas fortgeschritten bist, hier lernst du die wichtigsten Konzepte und wie du sie in MicroPython umsetzt. Wir schauen uns an, was Ein- und Ausgänge bedeuten, wie Pull-Up Widerstände funktionieren und wie du das lästige "Prellen" von Tastern in deiner Software behebst. Los geht's!
Für dieses Tutorial benötigst du folgende Materialien:
Stell dir folgendes Setup vor:
LED: Verbinde den längeren Pin (Anode, +) der LED über den Widerstand mit einem GPIO-Pin des Raspberry Pi Pico (z.B. GPIO 16). Verbinde den kürzeren Pin (Kathode, -) der LED mit GND (Masse) des Pico. Der Widerstand dient dazu, den Strom durch die LED zu begrenzen und sie vor Beschädigung zu schützen.
Taster: Verbinde einen Pin des Tasters mit einem GPIO-Pin des Raspberry Pi Pico (z.B. GPIO 17). Verbinde den anderen Pin des Tasters mit GND (Masse) des Pico. Wir werden den internen Pull-Up Widerstand des Pico für diesen Pin aktivieren, um ein definiertes High-Signal zu erhalten, wenn der Taster nicht gedrückt ist.
from machine import Pin
import time
# Definiere die GPIO-Pins
LED_PIN = 16
TASTER_PIN = 17
# Initialisiere die Pins
led = Pin(LED_PIN, Pin.OUT)
taster = Pin(TASTER_PIN, Pin.IN, Pin.PULL_UP) # Aktiviere den Pull-Up Widerstand
# Entprellzeit in Millisekunden
ENTPRELLZEIT = 50
# Hauptschleife
while True:
if taster.value() == 0: # Taster gedrückt (LOW wegen Pull-Up)
led.value(1) # LED einschalten
time.sleep_ms(ENTPRELLZEIT) # Entprellen
while taster.value() == 0: # Warte bis der Taster losgelassen wird
pass
time.sleep_ms(ENTPRELLZEIT) # Entprellen
else:
led.value(0) # LED ausschalten
time.sleep_ms(10) # Kurze Pause, um die CPU nicht zu überlasten
from machine import Pin
: Importiert die Pin
-Klasse, mit der wir GPIO-Pins konfigurieren und ansprechen können.import time
: Importiert das time
-Modul, um Wartezeiten zu erzeugen.LED_PIN = 16
, TASTER_PIN = 17
: Definiert die Pins, an denen LED und Taster angeschlossen sind. Das macht den Code übersichtlicher und leichter zu ändern.led = Pin(LED_PIN, Pin.OUT)
: Konfiguriert GPIO 16 als Ausgang (Output). Wir können hier Signale senden, um z.B. die LED ein- oder auszuschalten.taster = Pin(TASTER_PIN, Pin.IN, Pin.PULL_UP)
: Konfiguriert GPIO 17 als Eingang (Input) und aktiviert den internen Pull-Up Widerstand. Als Eingang können wir den Zustand des Pins lesen (z.B. ob der Taster gedrückt ist). Der Pull-Up Widerstand sorgt dafür, dass der Pin standardmäßig auf HIGH (1) steht, wenn der Taster nicht gedrückt ist.while True:
: Die Hauptschleife des Programms, die endlos läuft.if taster.value() == 0:
: Überprüft, ob der Taster gedrückt ist. Da der Pull-Up Widerstand aktiv ist, ist der Wert 0
(LOW), wenn der Taster gedrückt wird und den Pin mit GND verbindet.led.value(1)
: Schaltet die LED ein (HIGH).led.value(0)
: Schaltet die LED aus (LOW).time.sleep_ms(10)
: Pausiert das Programm für 10 Millisekunden. Das verhindert, dass die CPU unnötig belastet wird.ENTPRELLZEIT = 50
: Definiert die Zeit in Millisekunden, die zum Entprellen verwendet wird.time.sleep_ms(ENTPRELLZEIT)
) und ignorieren alle Zustandsänderungen während dieser Zeit. Ebenso nach dem Loslassen.In diesem Tutorial hast du gelernt, wie du GPIOs des Raspberry Pi Pico als Ein- und Ausgänge nutzt. Du hast gelernt, wie man einen Taster einliest und eine LED schaltet. Wir haben uns auch mit Pull-Up Widerständen und dem Entprellen von Tastern beschäftigt. Mit diesem Wissen kannst du jetzt eigene kleine Projekte realisieren!