Raspberry Pi: GPIO-Eingang mit Taster/Schalter beschalten

Grundsätzlich kann man einen GPIO-Pin wahlweise als Eingang oder als Ausgang betreiben. Als Eingang kann er die Zustände "High" und "Low" einnehmen. Zum Beispiel von einem Schalter oder Taster.
In der Regel ist es so, dass man die GPIOs des Raspberry Pi mit Widerständen beschaltet, um Eingänge auf einen definierten Pegel zu setzten (+VCC oder GND) oder um den Strom zu begrenzen.

GPIO-Eingang mit Taster/Schalter und Pullup-Widerstand

Pullup-Widerstand

Beim Pullup-Prinzip wird der GPIO-Eingang mit einem Pullup-Widerstand auf den Pegel von +VCC gezogen. Der Grundzustand des Eingangs wäre dann "High" bzw. "logisch 1". Mit einem Schalter oder Taster wird der GPIO-Eingang gegen Ground (GND) gezogen bzw. geschaltet. Das heißt, im geschalteten Zustand hätte der Eingang den Zustand "Low" bzw. "logisch 0".

GPIO-Eingang mit Taster/Schalter und Pulldown-Widerstand

Pulldown-Widerstand

Beim Pulldown-Prinzip wird der GPIO-Eingang mit einem Pulldown-Widerstand gegen Ground (GND) gezogen. Der Grundzustand des Eingangs wäre dann "Low" bzw. "logisch 0". Mit einem Schalter oder Taster wurd der GPIO-Eingang auf den Pegel von +VCC gezogen bzw. geschaltet. Das heißt, im geschalteten Zustand hätte der Eingang den Zustand "High" bzw. "logisch 1".

GPIO-Eingang mit Taster/Schalter und Querwiderstand

GPIO-Eingang mit Taster/Schalter und Querwiderstand

Grundsätzlich gilt, dass der Strom im geschalteten Zustand (Taster/Schalter betätigt) nur durch den Widerstand der inneren Bauteile begrenzt wird. Der Eingang ist sehr hochohmig und liegt bei einige Megaohm. Mit einem zusätzlichen Querwiderstand würde sich eine Reihenschaltung ergeben, deren Widerstandswerte sich zu einem Gesamtwiderstand addieren. Demnach wäre der zusätzliche Querwiderstand für den Innenwiderstand des GPIOs eigentlich bedeutungslos.

Beispiel: 2 Megaohm + 1 Kiloohm = 2,001 Megaohm. Hier macht das eine Kiloohm praktisch keinen Unterschied.

Es kann aber trotzdem sinnvoll sein, den Strom durch eine äußere Beschaltung zu begrenzen. Es könnten beispielsweise sein, dass ein GPIO versehentlich als Ausgang programmiert ist oder als Eingang beschaltet wurde. Dann könnte es zu einem Kurzschluss an diesem Ausgang kommen und ihn zerstören, wenn der Schalter betätigt wird. Da reicht es schon, wenn ein falsches Programm gestartet wurde. Ein Querwiderstand würde den Strom begrenzen, wenn der Schalter geschlossen wird.

Wie groß sollte der Querwiderstand sein? Das ist fast egal. Machen wir dazu zwei Rechnungen. Jeweils Spannung 3,3 Volt (als Ausgang bei High-Signal) geteilt durch einen Widerstandswert (Formel: URI).

  1. Bei 1 kOhm: 3,3 mA
  2. Bei 330 Ohm: 10 mA

Grundsätzlich gilt hier, je kleiner der Strom, desto besser. Das heißt, der größere Widerstand wäre besser, weil er den Strom mehr begrenzt. In der Praxis ist das aber egal, weil der Querwiderstand nur bei versehentlicher Beschaltung eines GPIO-Ausgangs wirkt. Das heißt, man wird das irgendwann erkennen und korrigieren. Und deshalb spielt die Größe des Widerstands fast keine Rolle.

Pullup- oder Pulldown-Widerstand?

Es wird empfohlen, GPIO-Eingänge mit einem Pullup- oder Pulldown-Widerstand zu beschalten. Die Frage ist, weshalb ist so ein Widerstand notwendig? Und welches Prinzip sollte man dabei anwenden? Also Pullup oder Pulldown? Und welche Größe sollten diese Widerstände haben?

GPIO-Eingang mit Taster/Schalter ohne Widerstand

Selbstverständlich kann man einen GPIO-Eingang auch ohne Widerstände beschalten. Dann sollte man die GPIO-Eingänge mit internen Widerständen softwareseitig konfigurieren.

GPIO mit Python und GPIO Zero programmieren

Weitere verwandte Themen:

Hardware-nahes Programmieren mit dem Raspberry Pi, Python und GPIO Zero

Elektronik-Set Raspberry Pi Edition

Das "Elektronik-Set Raspberry Pi Edition" ist ein Bauteile-Sortiment mit Anleitung zum Experimentieren und Programmieren mit Python und GPIO Zero.

  • LED: Einschalten, ausschalten, blinken und Helligkeit steuern
  • Taster: Verschiedene Zustände auswerten und anzeigen lassen
  • LED mit Taster einschalten und ausschalten
  • Relais-Board steuern
  • LED, Relais-Board und Motor über ULN2003A steuern
  • Ampel- und Lauflicht-Steuerung
  • Herunterfahren per Taster
  • Reaktionsspiel mit Tastern und LEDs
  • Eigene Steuerungen programmieren

Mehr Informationen Elektronik-Set jetzt bestellen

Teilen:

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • sofort Loslegen mit All-in-one-Set

Mehr Informationen Elektronik-Set jetzt bestellen

Programmieren mit dem Raspberry Pi Pico
Online-Workshop

Programmieren mit dem Raspberry Pi Pico

Online-Workshop mit einer Einführung ins Physical Computing mit Leuchtdioden, Taster und Temperatursensor.

  • Hardware-nahes Programmieren mit dem Raspberry Pi Pico und MicroPython ohne Vorkenntnisse
  • Optimaler Einstieg, um eigene Ideen zu verwirklichen und Steuerungen zu programmieren
  • Inklusive Elektronik-Set mit einem Raspberry Pi Pico, Zubehör und elektronischen Bauteilen

Mehr Informationen Am Online-Workshop teilnehmen