Raspberry Pi: GPIO beschalten

Raspberry Pi: GPIO - General Purpose Input Output

Grundsätzlich kann man einen GPIO-Pin wahlweise als Eingang oder Ausgang betreiben. Als Eingang kann er die Zustände "High" und "Low" auswerten. Zum Beispiel von einem Schalter, Taster oder einer anderen Signal-ausgebenden Schaltung. Als Ausgang kann ein GPIO die Zustände "High" und "Low" annehmen. Das bedeutet, dass entweder eine Spannung von +3,3 V für "High" oder 0 V für "Low" am Eingang angelegt wird oder am Ausgang anliegt.

Was es beim Beschalten der GPIOs zu beachten gibt

  • Neben der Möglichkeit GPIOs als Ein- und Ausgänge zu nutzen, gibt es noch Parallelfunktionen, wie SPI, I2C, UART, PWM und PCM. Die Konfiguration eines GPIOs muss man beim Starten oder während der Laufzeit des Raspberry Pi setzen. Die Parallelfunktionen muss man gesondert aktivieren. Zum Beispiel durch Laden von Modulen.
  • Die GPIOs weisen bestimmte Strom- und Spannungsgrenzen auf. Beim Beschalten muss man diese Grenzwerte beachten, weil sonst nicht nur der einzelne GPIO, sondern der ganze Raspberry Pi in Mitleidenschaft gezogen werden kann.
  • Die Spannungspegel am GPIO-Eingang und -Ausgang liegen für "High" bei +3,3V und für "Low" bei 0V. Diese Zustände sind allerdings als Bereiche definiert und deshalb sind hier Abweichungen zulässig. Je nach Last kann der Pegel an einem GPIO-Ausgang von seinen idealen Werten von 0V und +3,3V abweichen.
  • In der Regel ist es so, dass man die GPIO-Eingänge mit Widerständen beschaltet, um sie auf einen definierten Pegel zu setzten (+VCC oder GND) oder um den Strom zu begrenzen.
  • Die Stromentnahmen an einem GPIO-Ausgang muss in jedem Fall begrenzt werden. Wenn ein GPIO-Ausgang etwas schalten soll, dann verstärkt man das Ausgangssignal mit einer Transistorstufe oder einer Treiberschaltung, um den GPIO zu entlasten.
  • Die GPIO-Pins mit festdefinierter Spannung eignen sich weniger gut zur Stromversorgung. Vor allem nicht die +3,3V-Pins und nur begrenzt die +5V-Pins. Diese spannungsführenden Pins eignen sich nur, um einen fest definierten Pegel bereitzustellen. Externe Schaltungsteile, insbesondere Relais und Motoren, sollten über ein eigenes Netzteil versorgt werden. In Ausnahmefällen mag es möglich sein, dass ein Relais oder auch ein Lüfter direkt am +3,3V- oder +5V-Kreis funktionieren mag. Aber das sollte nicht die Regel sein. Und von einem dauerhaft sicheren Betrieb kann man nicht ausgehen.
  • Die Nutzung des als TXD-gekennzeichneten GPIO (Parallelfunktion mit einer seriellen Schnittstelle) als GPIO-Ausgang kann problematisch sein, weil beim Booten eine Bitfolge ausgegeben wird, die zu unerwünschten Effekten führen kann.

Wie hoch ist die sichere Stromstärke?

Eines vorneweg, der Gesamtstrom aller GPIOs sollte 50 mA nicht übersteigen. Denn das ist die größte Stromstärke (mit Reserve natürlich) die ein Bond (das dünne Drähtchen vom "Beinchen" des Schaltkreises zur eigentlichen internen Schaltung) aushalten kann.

Die gesamte Elektronik eines (einzelnen) Anschlusses ist für maximal 16 mA ausgelegt. Das heißt, es treten bis 16 mA keine Schäden auf. Alles darüber ist unsicher. Auch wenn der eine oder andere Bastler deutlich mehr aus einem GPIO bekommt.
Der Bereich, in dem die Ausgangsendstufen eines GPIO sicher arbeiten reicht von 2 bis 16 mA. Als Optimum liegt zwischen 3 und 8 mA. Mit mehr als 8 mA sollte man nicht rechnen. Aber auch nicht weniger als 2 mA.
Wer mehr braucht muss für einen GPIO-Ausgang einen Transistor als Schalter mit einer externen Stromversorgung vorsehen. Für einen stabilen Ausgangsstrom reichen dann 2 bis 3 mA für den Transistor. Dann kommt man bei allen GPIOs in Summe nicht mehr als ca. 50 mA.

Hinweis: Eindeutige Angaben zu minimal und maximal erlaubten bzw. möglichen GPIO-Stromwerten gibt es nicht. Bei den genannten Stromwerten handelt es sich um Erfahrungswerte von Raspberry-Pi-Anwendern, die durch Experimentieren herausgefunden haben, welcher Strom einen stabilen Betrieb ermöglicht. Oftmals sind auch höhere Werte möglich. Aber dann kann niemand mehr einen stabilen und sicheren Betrieb gewährleisten.

Belegung und Beschaltung der GPIOs

Vor jedem Projekt ist es eine Überlegung wert, welche Pins beschaltet werden sollen. Wenn man einen beliebigen GPIO beschaltet, dann muss man später unter Umständen umbauen, weil man doch eine bestimmte Funktion nutzen möchte, die durch einen bereits beschalteten GPIO belegt ist.

GPIO als Eingang beschalten (Input)

Ist ein GPIO als Eingang definiert, dann nimmt er Schaltzustände externer Schaltungsteile an. Das kann im einfachsten Fall ein Taster oder Schalter sein. In jedem Fall muss ein Potential bzw. Pegel (Spannung) anliegen, damit der GPIO-Eingang den anliegenden Zustand auswerten kann. Diese Zustände bezeichnet man als "High" und "Low" oder "1" und "0". Damit drückt man den anliegenden Pegel bzw. die Spannung aus, die +3,3 V oder 0 V betragen muss. Wichtig ist dabei, dass an einem GPIO-Eingang niemals mehr als +3,3 V anliegen dürfen. Das würde den Eingang zerstören.

Die Pegel bzw. Spannungswerte sind nicht in Stein gemeißelt. Sie unterliegen einer Toleranz. Ein GPIO-Eingang wird Spannungen unter 0,8 V als "Low" erkennen und Spannungen über 1,3 V als "High".
Wenn keine definierte Spannung anliegt, dann neigen die Eingänge in irgendeine Richtung zu schwingen. Das heißt, sie nehmen wechselweise den Zustand "High" oder "Low" an. Das passiert zum Beispiel dann, wenn der GPIO-Eingang unbeschaltet ist. Das sollte man vermeiden.
Über Pullup- bzw. Pulldown-Widerstände kann man Einfluss darauf nehmen, welchen Grundzustand ein GPIO-Eingang haben soll.

GPIO als Ausgang beschalten (Output)

Ist ein GPIO als Ausgang definiert, dann kann man Schaltzustände an externe Schaltungsteile weitergeben. Wird ein GPIO als Ausgang beschaltet, dann sollte man dabei ein paar Grenzen beachten. Hält man sich nicht an diese Grenzwerte, dann läuft man Gefahr, dass der Raspberry Pi dabei ganz oder teilweise zerstört wird.

  • Die GPIO-Anschlüsse haben eine maximale Steuerspannung von +3,3 Volt.
  • Der entnehmbare Strom aus einem GPIO liegt bei maximal 16 mA.
  • Aus allen GPIOs zusammen darf maximal ein Strom von 51 mA entnommen werden.
  • Die Empfehlung pro GPIO liegt bei 2 oder 3 mA. Bei mehr muss man mit einem "Treiber" arbeiten.
  • An einem GPIO kann man nicht jede Art von Last betreiben.

Ist ein GPIO als Ausgang definiert, dann kann man im einfachsten Fall eine LED zum Leuchten bringen oder über einen Transistor, ein Relais oder einen Motor steuert.

GPIO steuern und programmieren

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

Elektronik-Set jetzt bestellen

Frag Elektronik-Kompendium.de

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

Elektronik-Set jetzt bestellen

Elektronik-Fibel

Elektronik einfach und leicht verständlich

Die Elektronik-Fibel ist ein Buch über die Grundlagen der Elektronik, Bauelemente, Schaltungstechnik und Digitaltechnik.

Das will ich haben!