Was ist GPIO?
GPIO steht für General Purpose Input/Output — zu Deutsch: Allzweck-Ein-/Ausgabe. Es sind die programmierbaren Pins an Mikrocontrollern und Einplatinencomputern wie ESP32, Arduino oder Raspberry Pi.
Über GPIO-Pins kannst du Sensoren auslesen, LEDs ansteuern, Displays anschließen und eigentlich alles mit deinem Mikrocontroller verbinden, was elektrische Signale sendet oder empfängt.
Input vs. Output — der Unterschied
Jeder GPIO-Pin kann entweder als Eingang (Input) oder Ausgang (Output) konfiguriert werden:
| Modus | Bedeutung | Beispiel |
|---|---|---|
| Input | Pin liest ein Signal ein | Taster, Sensor, Schalter |
| Output | Pin gibt ein Signal aus | LED, Relais, Buzzer |
| Input (Pullup) | Input mit internem Widerstand auf HIGH | Taster ohne externen Widerstand |
| Analog Input | Liest Spannungswert (0–3,3V) | Potentiometer, analoger Sensor |
GPIO in der Praxis — Codebeispiel
So konfigurierst du einen GPIO-Pin beim ESP32 (Arduino IDE):
#define LED_PIN 2
#define BUTTON_PIN 4
void setup() {
pinMode(LED_PIN, OUTPUT); // Pin 2 als Ausgang
pinMode(BUTTON_PIN, INPUT_PULLUP); // Pin 4 als Eingang mit Pullup
}
void loop() {
if (digitalRead(BUTTON_PIN) == LOW) { // Taster gedrückt
digitalWrite(LED_PIN, HIGH); // LED an
} else {
digitalWrite(LED_PIN, LOW); // LED aus
}
} Besondere GPIO-Funktionen
Viele Pins haben neben der einfachen Input/Output-Funktion noch Spezialfähigkeiten:
| Funktion | Bedeutung | Beispiel-Einsatz |
|---|---|---|
| PWM | Pulsweitenmodulation — simuliert analoge Ausgabe | LED dimmen, Servo steuern |
| I²C (SDA/SCL) | Kommunikationsprotokoll für Sensoren | OLED-Display, BME280 |
| SPI | Schnelles Datenprotokoll | SD-Karte, TFT-Display |
| UART (TX/RX) | Serielle Kommunikation | GPS-Module, Bluetooth-Module |
| ADC | Analog-Digital-Wandler | Analoge Sensoren auslesen |
Wichtige Limits beachten
Spannungs- und Strom-Grenzen
Beim Raspberry Pi sind alle GPIO-Pins ebenfalls 3,3 V — und noch empfindlicher als beim ESP32. Nie direkt 5V anlegen.