4.4.2 GPIO: Ein- und Ausgang mit Pin
Ein- und Ausgabebefehle | Beschreibung |
---|---|
Pin() |
Steuert Hardware wie LEDs und ermöglicht so die Ausgabe von Signalen. Aber auch die Eingabe über Sensoren wird damit ermöglicht. |
GPIO steht für General Purpose Input Output. Damit kann man über die Pins an der Seite z. B. LEDs ansteuern oder Taster einlesen.
🧠 Was man mit GPIOs machen kann
Die sogenannten GPIOs (General Purpose Input/Output) sind digitale Ein- und Ausgänge, über die der Raspberry Pi Pico mit seiner Umwelt interagieren kann. Sie sind das Herzstück zur Ansteuerung von Hardwarekomponenten wie Tastern, LEDs oder Sensoren.
Mit GPIOs lassen sich unter anderem folgende Aufgaben realisieren:
-
LEDs ansteuern: Eine LED kann ein- oder ausgeschaltet oder z. B. über PWM gedimmt werden.
-
Taster abfragen: Eingänge erkennen, ob ein Taster gedrückt wurde – z. B. zur Steuerung von Programmen.
-
Sensoren auslesen: Digitale Sensoren senden Signale, die über GPIOs empfangen und verarbeitet werden können.
-
Motoren oder Aktoren schalten: Über Transistoren oder Treibermodule lassen sich Motoren oder Relais ein- und ausschalten.
-
Zustände signalisieren: LEDs oder Piezo-Elemente können Statusanzeigen realisieren – z. B. als Rückmeldung für Benutzeraktionen.
⚙️ Wie dies technisch umgesetzt wird
Damit ein Raspberry Pi Pico mit seiner Umwelt interagieren kann, müssen die GPIOs technisch richtig angesteuert werden. Je nach Art der Ein- oder Ausgabe kommen unterschiedliche Methoden zum Einsatz.
-
Digitales High/Low-Signal: Jeder GPIO-Pin kann als Ausgang ein digitales Signal ausgeben – also entweder
HIGH
(3.3 V) oderLOW
(0 V). So kann z. B. eine LED ein- oder ausgeschaltet werden. Als Eingang kann ein Pin prüfen, ob eine Spannung anliegt – z. B. bei einem gedrückten Taster. -
Pulsweitenmodulation (PWM): Über PWM kann ein GPIO-Pin schnelle Schaltimpulse ausgeben. Damit lassen sich z. B. LEDs dimmen oder Servomotoren fein steuern. Der Effekt entsteht durch das Verhältnis von Ein- und Ausschaltzeit (Duty Cycle).
-
I2C-Kommunikation: Für komplexere Sensoren oder Displays, die Daten digital übertragen, wird häufig das I2C-Protokoll verwendet. Zwei GPIOs (SDA = Serial Data Line, SCL = Serial Clock Line) übernehmen dabei die Daten- und Taktleitung.
-
SPI-Kommunikation: SPI (Serial Peripheral Interface) ist ein schnelles, serielles Protokoll zur Kommunikation mit Peripheriegeräten wie Displays oder Speicherkarten. Es nutzt mehrere Leitungen: MISO, MOSI, SCK und CS.
-
UART-Kommunikation: Über UART (Universal Asynchronous Receiver Transmitter) kann der Pi Pico Daten seriell übertragen, z. B. zu einem PC oder anderen Mikrocontroller. Diese Schnittstelle eignet sich besonders für einfache Punkt-zu-Punkt-Verbindungen.
-
Pull-Up- und Pull-Down-Widerstände: Eingänge können durch interne oder externe Widerstände auf definierte Grundpegel gebracht werden, damit sie nicht „flottierend“ sind. Das ist z. B. bei Tastern wichtig, um stabile Signale zu erhalten.
-
Interrupts: GPIOs können so konfiguriert werden, dass sie auf Ereignisse wie steigende oder fallende Flanken reagieren. Damit lässt sich auf Tastendrücke oder Sensorsignale sofort reagieren ohne ständiges Abfragen im Code.
Diese technischen Grundlagen bilden die Basis für viele Mikrocontroller-Anwendungen, die im weiteren Verlauf noch genauer betrachtet werden.
🔌 Einfache Ein- und Ausgabe mit dem Pi Pico
Um Daten vom Pi Pico auszugeben, können wir eine LED steuern oder Daten auf einem angeschlossenen Display anzeigen. Die Eingabe kann beispielsweise durch das Drücken eines Tasters erfolgen.
Beispiel: LED-Steuerung basierend auf Benutzereingaben
In diesem Beispiel wird die LED am Pi Pico basierend auf der Benutzereingabe ein- oder ausgeschaltet. Der Benutzer gibt 1
ein, um die LED einzuschalten, oder 0
, um sie auszuschalten.
📶 PWM
PWM steht für Pulsweitenmodulation (englisch: Pulse Width Modulation). Damit kann man z. B. eine LED dimmen oder einen Motor langsamer drehen lassen.
Hier wird der Wert für das Tastverhältnis (englisch: Duty Cycle) langsam erhöht – so wird die LED immer heller.
Man kann auch direkt einen festen Wert setzen:
Die Werte gehen von 0 (immer aus) bis 65535 (immer an). Alles dazwischen ist ein Verhältnis von an/aus – je nachdem wirkt die LED heller oder dunkler.
🖥️ I2C-Displays und Sensor-Kommunikation
Viele Sensoren und Displays kommunizieren über I2C. Damit man weiß, welche Adresse das angeschlossene Gerät hat, kann man einen Scan durchführen:
Ein typisches Display ist das SSD1306-OLED. Man kann es z. B. so ansprechen:
Damit wird der Text „Hallo“ auf dem Display angezeigt.