Eine Einführung in die Himbeer-Pi-Pins
Der Begriff "GPIO" (General Purpose Input Output) ist nicht ausschließlich für den Raspberry Pi. Die meisten Mikrocontroller wie Arduino, Beaglebone und mehr sind mit Input- und Output-Pins ausgestattet.
Wenn wir mit dem Raspberry Pi über GPIO sprechen, beziehen wir uns auf den langen Block von Pins in der oberen linken Ecke der Platine. Ältere Modelle hatten 26 Pins, die meisten von uns werden jedoch ein aktuelles Modell mit 40 verwenden.
Sie können Komponenten und andere Hardwaregeräte an diese Pins anschließen und mithilfe von Code steuern, was sie tun. Es ist ein wichtiger Bestandteil des Raspberry Pi und eine hervorragende Möglichkeit, Elektronik kennen zu lernen.
Nach ein paar Softwareprojekten werden Sie wahrscheinlich mit diesen Pins experimentieren, die Ihren Code mit Hardware mischen möchten, um die Dinge im echten Leben zu realisieren.
Dieser Prozess kann einschüchternd wirken, wenn Sie neu in der Szene sind, und wenn man bedenkt, dass eine falsche Bewegung Ihren Raspberry Pi beschädigen kann, ist es verständlich, dass dies ein nervöser Bereich ist, den Anfänger erkunden können.
In diesem Artikel wird erläutert, was jeder GPIO-Pin-Typ und seine Einschränkungen bewirkt.
02 von 09Der GPIO
Lassen Sie uns zunächst den GPIO als Ganzes betrachten. Die Pins sehen möglicherweise gleich aus, haben aber alle unterschiedliche Funktionen. Das Bild oben zeigt diese Funktionen in verschiedenen Farben, die wir in den folgenden Schritten erklären werden.
Jeder Pin ist von links unten beginnend von 1 bis 40 nummeriert. Dies sind die physischen Pin-Nummern, es gibt jedoch auch Nummerierungs- / Kennzeichnungskonventionen wie 'BCM', die beim Schreiben von Code verwendet werden.
03 von 09Power & Ground
Rot hervorgehoben, sind Power-Pins mit '3' oder '5' für 3,3 V oder 5 V gekennzeichnet.
Mit diesen Pins können Sie direkt Strom an ein Gerät senden, ohne dass dafür Code erforderlich ist. Es gibt auch keine Möglichkeit, diese auszuschalten.
Es gibt 2 Stromschienen - 3,3 Volt und 5 Volt. Gemäß diesem Artikel ist die 3,3-V-Schiene auf eine Stromaufnahme von 50 mA begrenzt, wohingegen die 5-V-Schiene die Stromkapazität bereitstellen kann, die von Ihrer Stromversorgung übrig bleibt, nachdem der Pi die benötigte Kapazität genommen hat.
Braun hervorgehobensind die Massepins (GND). Diese Pins sind genau das, was sie sagen - Erdungspins -, die ein wesentlicher Bestandteil jedes Elektronikprojekts sind.
(5-V-GPIO-Pins sind die physikalischen Nummern 2 und 4. 3,3-V-GPIO-Pins sind die physikalischen Nummern 1 und 17. Masse-GPIO-Pins sind die physischen Nummern 6, 9, 14, 20, 25, 30, 34 und 39)
04 von 09Input / Output Pins
Die grünen Pins bezeichne ich als "generische" Eingabe / Ausgabe-Pins. Diese können problemlos als Ein- oder Ausgänge verwendet werden, ohne sich mit anderen Funktionen wie I2C, SPI oder UART zu stören.
Dies sind die Pins, die eine LED, einen Summer oder andere Komponenten mit Strom versorgen oder als Eingang zum Lesen von Sensoren, Schaltern oder anderen Eingabegeräten verwendet werden können.
Die Ausgangsleistung dieser Pins beträgt 3,3 V. Jeder Pin sollte 16mA Strom nicht überschreiten, entweder sinken oder sinken, und der gesamte Satz von GPIO-Pins sollte jeweils nicht mehr als 50mA betragen. Dies kann einschränkend sein, sodass Sie in bestimmten Projekten möglicherweise kreativ werden müssen.
(Generische GPIO-Pins sind die physikalischen Nummern 7, 11, 12, 13, 15, 16, 18, 22, 29, 31, 32, 33, 35, 36, 37, 38 und 40)
05 von 09I2C-Pins
In gelb haben wir die I2C-Pins. I2C ist ein Kommunikationsprotokoll, mit dem Geräte einfach mit dem Raspberry Pi kommunizieren können. Diese Pins können auch als "generische" GPIO-Pins verwendet werden.
Ein gutes Beispiel für die Verwendung von I2C ist der sehr beliebte MCP23017-Port-Expander-Chip, mit dem Sie über dieses I2C-Protokoll mehr Ein- / Ausgangspins erhalten können.
(I2C GPIO-Pins sind physikalische Pin-Nummern 3 und 5)
06 von 09UART (serielle) Pins
In grau sind die UART-Pins. Diese Pins sind ein weiteres Kommunikationsprotokoll, das serielle Verbindungen bietet, und kann auch als "generische" GPIO-Ein- / Ausgänge verwendet werden.
Meine Lieblingsanwendung für UART ist die Aktivierung einer seriellen Verbindung von meinem Pi zu meinem Laptop über USB. Dies kann durch die Verwendung von Zusatzkarten oder einfachen Kabeln erreicht werden, sodass kein Bildschirm oder eine Internetverbindung erforderlich ist, um auf Ihr Pi zuzugreifen.
(UART GPIO-Pins sind physikalische Pin-Nummern 8 und 10)
07 von 09SPI-Pins
In Pink, Wir haben die SPI-Pins. SPI ist ein Schnittstellenbus, der Daten zwischen dem Pi und anderer Hardware / Peripherie sendet. Es wird häufig für die Verkettung von Geräten wie LED-Matrix oder Display verwendet.
Wie andere können auch diese Pins als "generische" GPIO-Ein- / Ausgänge verwendet werden.
(SPI GPIO-Pins sind physikalische Pin-Nummern 19, 21, 23, 24 und 26)
08 von 09DNC-Pins
Zuletzt sind zwei Pins in Blau, die derzeit als DNC ("Nicht verbinden") gekennzeichnet sind. Dies kann sich in Zukunft ändern, wenn die Raspberry Pi Foundation die Boards / Software ändert.
(DNC-GPIO-Pins sind physikalische Pin-Nummern 27 und 28)
09 von 09GPIO-Nummerierungskonventionen
Beim Codieren mit dem GPIO haben Sie die Wahl, die GPIO-Bibliothek auf zwei Arten zu importieren - BCM oder BOARD.
Ich bevorzuge die Option GPIO BCM. Dies ist die Broadcom-Nummerierungskonvention, und ich finde, dass sie häufiger in Projekten und Hardware-Add-Ons verwendet wird.
Die zweite Option ist GPIO BOARD. Diese Methode verwendet stattdessen die physischen Pin-Nummern, was beim Zählen von Pins praktisch ist, in Projektbeispielen jedoch weniger.
Der GPIO-Modus wird beim Importieren der GPIO-Bibliothek eingestellt:
Als BCM importieren:
Importiere RPi.GPIO als GPIO
GPIO.setmode (GPIO.BCM)
Als BOARD importieren:
Importiere RPi.GPIO als GPIO
GPIO.setmode (GPIO.BOARD)
Beide Methoden haben genau dieselbe Aufgabe, es ist nur eine Frage der Nummerierung.
Ich verwende regelmäßig GPIO-Beschriftungskarten wie RasPiO Portsplus (Bild), um zu prüfen, welche Pins ich auch mit Drähten verbinde. Eine Seite zeigt die BCM-Nummerierungskonvention, die andere zeigt BOARD - so sind Sie für jedes Projekt, das Sie finden, abgesichert.