Raspberry Pi: GPIO - General Purpose Input Output

ELektronik-KOmpendium.de
Online

Preis auf Anfrage
Vergleichen Sie diesen Kurs mit ähnlichen Kursen
Mehr ansehen

Wichtige informationen

  • Kurs
  • Online
Beschreibung

Raspberry Pi: GPIO - General Purpose Input Output GPIO ist die Abkürzung für General Purpose Input Output. Man bezeichnet damit programmierbare Ein- und Ausgänge für allgemeine Zwecke. Die GPIOs werden als Lötpunkt oder Pin in Form einer Stiftleiste herausgeführt und dienen als Schnittstelle zu anderen Systemen oder Schaltungen, um diese über den Raspberry Pi zu steuern. Dabei kann der Raspberry Pi bei entsprechender Programmierung digitale Signale von außen annehmen (Input) oder Signale nach außen abgeben (Output). Viele der GPIOs erfüllen je nach Einstellung und Programmierung verschiedene Funktionen. Neben den typischen GPIO-Ein- und Ausgängen finden sich aber auch Pins mit der Doppelfunktion für I2C, SPI und eine serielle Schnittstelle.

Wichtige informationen

Was lernen Sie in diesem Kurs?

Programmierung
Steuern
programmieren

Themenkreis

GPIO-Belegung

Die GPIOs sind oftmals nur als Lötpunkte, beim Raspberry Pi vorteilhafterweise als Stiftleiste, herausgeführt. Je nach Modell weist ein Raspberry Pi eine Stiftleiste mit 26 oder 40 Pins auf, wovon allerdings nicht alle zur Ein- oder Ausgabe dienen. Einige Pins führen ein +5V-, +3,3V- oder 0V-Potential.

Die Funktion vieler Pins sind flexibel gestaltet, manche sogar doppelt belegt. Das heißt, vor deren Nutzung muss man ihnen per Programmierung eine Funktion zuteilen. In jedem Fall muss vor der Nutzung eines GPIO dessen Funktion initialisiert werden. Ausgenommen sind die Potential-führenden Pins. Deren Spannung ist immer fest eingestellt.

  • Belegung GPIO
Elektrische Eigenschaften

Die GPIO-Pins weisen mehrere elektrische Eigenschaften auf, die für Elektronik-Einsteiger verwirrend sein können. Es ist allerdings allgemein so, dass alle elektrischen Systeme elektrische Eigenschaften aufweisen, die beachtet werden müssen, weil es sich dabei häufig um Kenngrößen und Grenzwerte handelt, die über Funktion und Funktionsweise des elektrischen Systems entscheiden. Oder einfach ausgedrückt, die Beachtung der elektrischen Eigenschaften jedes einzelnen elektronischen Bauteil entscheidet darüber, ob eine Schaltung funktioniert oder nicht. Oder ob das System nach der Inbetriebnahmen Schaden nimmt und anschließend einen Defekt aufweist.

Grundsätzlich, der Raspberry Pi wird mit 5 Volt gespeist. Allerdings arbeitet der System on Chip auf Basis von 3,3 Volt, was bedeutet, dass auch die GPIOs mit 3,3 Volt arbeiten. Sowohl eingangs- als auch ausgangsseitig.
Desweiteren verträgt ein GPIO nur ein paar Milliampere (mA) Strom. Je nach Quelle ist von einem anderen Wert die Rede. Man spricht von maximal 16 mA. Wobei Ein- und Ausgänge bereits mit 0,5 mA sicher schalten. Wenn man es sich bei der Dimensionierung einfach haben will, dann kann man mit 1 oder 2 mA rechnen. Je nach Beschaltung sollte man aber nicht mehr als 8 mA aus einem GPIO ziehen.

Die Belegung der GPIO-Stiftleiste weist auch +5V-Pins auf, die dazu dienen ein +5V-Potential anzubieten, wenn äußere Schaltungen diese benötigen. Allerdings ist auch hier die Stromentnahme begrenzt. Auf insgesamt 50 mA für alle GPIO-Pins zusammen.
Das bedeutet, über einen GPIO-Pin kann man keine externen Schaltungen betreiben. Die müssen eine eigene Stromversorgung haben. Beispielsweise durch ein zweites USB-Netzteil oder ein USB-Netzteil mit einem zweiten USB-Port.

Programmieren der GPIO-Ausgänge und -Eingänge

Wenn man beispielsweise per Webserver auf Scripte zugreift, die die GPIO-Pins steuern, dann kann es sein, das es nicht funktioniert, obwohl die aufgerufenen Scripte auf der Kommandozeile funktionieren. Das liegt daran, weil es für den Zugriff auf die GPIOs eine eigene Benutzergruppe mit dem Namen "gpio" gibt. Darüber stolpert man gerne, weil man auf der Kommandozeile die Scripte mit dem Benutzer "pi" ausführt und der sich schon in der Gruppe "gpio" befindet, also zur Ausführung der Scripte berechtigt ist.
Der Benutzer des Webservers ist aber nicht "pi", sondern in der Regel "www-data". Damit ein über diesen Benutzer aufgerufenes Script die GPIOs steuern darf, muss dieser Benutzer in die Benutzergruppe "gpio".

sudo usermod -G gpio -a www-data

Anschließend muss man noch den Webserver neu starten.

Stromversorgung über den GPIO

Es sind bestimmt schon viele Raspberry Pis gestorben, weil Basteleien an den GPIO-Pins nicht korrekt verschaltet wurden. Ein einzelner GPIO-Pin liefert höchstens 16 mA. Alle GPIO-Pins zusammen höchstens 50 mA. Geht man beim Modell B+ von 40 GPIO-Pins aus, von denen aber nur 26 Stück als Ein- und Ausgänge beschaltet werden können, dann liegt der Strom, den man aus einem GPIO-Pin ziehen darf, wenn man alle gleichzeitig als Ausgang nutzt, bei unter 2 mA.
Da man nicht alle Pins gleichzeitig als Ausgang nutzen wird, sollte die Stromentnahme pro Pin nicht höher als 3 bis 5 mA liegen. Je weniger, desto mehr Pins kann man als Ausgang benutzen und desto stabiler läuft das Ganze.
In der Regel reicht es, wenn man mit einem Strom von 0,5 bis 1 mA an einem GPIO-Ausgang arbeitet.

Hinweis: Die GPIO-Pins eignen sich zum Schalten, aber nicht zur Stromversorgung durch externe Schaltungsteile. Die brauchen ihre eigene Stromversorgung. Zum Beispiel durch ein zweites USB-Netzteil. Oder einem USB-Netzteil mit einem zweiten USB-Port.

  • Raspberry Pi: Grundlagen der Energieversorgung / Stromversorgung
Sicherheitshinweis

GPIO-Ports beschalten und programmieren
  • Raspberry Pi: GPIO-Belegung
  • Raspberry Pi: GPIO beschalten
  • Raspberry Pi: GPIO programmieren
  • Raspberry Pi: GPIO mit Pullup- und Pulldown-Widerstand
Sicherheitshinweis

Wenn man die Pins beschaltet, dann sollte man sicherstellen, dass die Pins entsprechend Ihrer Funktion beschaltet sind. Also ein Eingang als Eingang und ein Ausgang als Ausgang. Wenn man zwei Ausgänge miteinander verbindet und einer auf 0 V liegt und der andere auf 3,3 V, dann fließt hier ein Strom von Ausgang zu Ausgang. Das kommt einem Kurzschluss gleich, was den GPIO dauerhaft beschädigen kann.

Weitere verwandte Themen:
  • Raspberry Pi: Anschlüsse und Komponenten
  • Raspberry Pi: Belegung Audio-Video-Signal am 4-poligen Klinken-Stecker
  • Raspberry Pi: HDMI - High Definition Multimedia Interface
  • Raspberry Pi: USB - Universal Serial Bus

Hinweis: Dieses Tutorial ist Teil einer Aufgaben und Übungen mit dem Raspberry Pi-Reihe, die für Lern- und Ausbildungszwecke erstellt wurde. Die dargestellte Lösung ist Teil einer konkreten Aufgabenstellung, die Schüler, Auszubildende und Studenten, lösen sollen. Deshalb muss der hier aufgezeigte Weg nicht der Optimalfall sein.


Vergleichen Sie diesen Kurs mit ähnlichen Kursen
Mehr ansehen