Raspberry Pi Pico: GPIO als digitaler Eingang
Grundsätzlich kann man einen GPIO wahlweise als Eingang oder als Ausgang betreiben. Als digitaler Eingang kann er die Zustände „High“ und „Low“ bzw. „1“ und „0“ annehmen. Zum Beispiel von einem Schalter oder Taster, die den Eingang gegen Ground (GND) oder +VCC schalten.
Damit ein Eingang einen definierten Zustand hat, und nicht hin- und herschwingt, wird ein GPIO-Eingang über einen Widerstand mit +VCC oder GND verbunden. Dieser Pullup- oder Pulldown-Widerstand lässt sich bei der Initialisierung eines GPIOs per Software definieren.
Aufbau und Bauteile

Programmcode: GPIO-Eingang mit internem Pullup-Widerstand
Der Programmcode liest kontinuierlich den Zustand eines GPIO-Eingangs ein und gibt ihn auf der Kommandozeile aus.
Der GPIO ist als Eingang mit internem Pullup-Widerstand konfiguriert. Ohne weitere Beschaltung ist der Grundzustand des Eingangs eine logische „1“. Durch eine Verbindung nach GND kann der Eingang den Zustand logisch „0“ annehmen.
# Bibliotheken laden
import machine
import time
# Initialisierung von GPIO16 als Eingang mit internem Pullup-Widerstand
gpio_in = machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_UP)
# Funktion zur Taster-Auswertung
while True:
print(gpio_in.value())
time.sleep(1)
Programmcode: GPIO-Eingang mit internem Pulldown-Widerstand
Der Programmcode liest kontinuierlich den Zustand eines GPIO-Eingangs ein und gibt ihn auf der Kommandozeile aus.
Der GPIO ist als Eingang mit internem Pulldown-Widerstand konfiguriert. Ohne weitere Beschaltung ist der Grundzustand des Eingangs eine logische „0“. Durch eine Verbindung nach GND kann der Eingang den Zustand logisch „1“ annehmen.
# Bibliotheken laden
import machine
import time
# Initialisierung von GPIO16 als Eingang mit internem Pullup-Widerstand
gpio_in = machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_DOWN)
# Funktion zur Taster-Auswertung
while True:
print(gpio_in.value())
time.sleep(1)
Hinweis: Wegen eines Hardware-Fehlers beim RP2350 Revision A2 wechselt der GPIO nicht in jedem Fall in den Grundzustand „0“ zurück, wenn er mal den Zustand „1“ hatte. Das Problem muss mit einem externen Pulldown-Widerstand kleiner oder gleich 8 kOhm gelöst werden. Mit dem RP2350 Revision A4 wurde das Problem behoben.
Programmcode: GPIO-Eingang ohne Widerstand
Der Programmcode liest kontinuierlich den Zustand eines GPIO-Eingangs ein und gibt ihn auf der Kommandozeile aus.
Da der GPIO-Eingang in diesem Beispiel ohne internen Pulldown- oder Pulldown-Widerstand konfiguriert ist, ist der Grundzustand des Eingangs unbestimmt. Vielleicht wird er eine Weile „0“ sein, wechselt ab und zu nach „1“, bleibt dort und wechselt wieder zurück. Provozieren kann man das, in dem man den Board-Pin mit dem Finger berührt oder ein Steckverbindungskabel einseitig am Pin einsteckt.
# Bibliotheken laden
import machine
import time
# Initialisierung von GPIO16 als Eingang ohne Widerstand
gpio_in = machine.Pin(16, machine.Pin.IN, pull=None)
# Funktion zur Taster-Auswertung
while True:
print(gpio_in.value())
time.sleep(1)
In der Regel bevorzugt man stabile Grundzustände, insbesondere bei offenen und unbeschalteten Eingängen. Deshalb empfiehlt es sich einen internen Widerstand zu aktivieren. Standardmäßig ist ein Pulldown-Widerstand aktiviert, weshalb der Grundzustand dann logisch „0“ ist.
Weitere verwandte Themen:
- Raspberry Pi Pico: GPIO-Eingang beschalten
- Raspberry Pi Pico: GPIO-Eingang mit Taster beschalten und auswerten
- Raspberry Pi Pico: GPIO-Eingang - Taster entprellen
- Raspberry Pi Pico: GPIO-Eingang mit 5 Volt beschalten
- Raspberry Pi Pico: GPIO-Grundlagen
Frag Elektronik-Kompendium.de
Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython
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
Online-Workshop: 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.
Besuchen Sie unser fast monatlich stattfindendes Online-Meeting PicoTalk und lernen Sie uns kennen. Die Teilnahme ist kostenfrei.






