Wenn du an deinem ESP32 externe Komponenten anschließen möchtest, solltest du die Funktionen der einzelnen GPIO-Pins kennen. Nicht jeder Pin eignet sich für analoge Eingangssignale oder PWM-Ausgänge – und einige Pins haben Einschränkungen, die Fehlfunktionen verursachen können.
Hinweis
Hinweis: Die ESP32-GPIO-Pins haben bei jedem Entwicklungsboard dieselben Funktionen, jedoch sind nicht bei jedem Board die gleichen Pins herausgeführt. Diese Anleitung bezieht sich auf das ESP32 DevKitC V4 – eines der beliebtesten und verbreitetsten Boards.
ESP32 WROOM-32 Modul
Der reine WROOM-32-Chip interessiert die meisten Hobbyisten wenig – hier kurz zur Einordnung:

ESP32 DevKitC V4 – das Referenz-Board
Noch kein ESP32? Das ESP32 DevKitC V4* ist das meistgenutzte Board – günstig, gut dokumentiert und in fast jeder Anleitung als Referenz verwendet.
- ESP32 DevKitC V4 bei Amazon*
Das Board führt 38 der 48 möglichen Pins heraus, alle sind direkt auf der Platine beschriftet.

GPIO-Pins – Allgemeine Übersicht
Die meisten GPIO-Pins des ESP32 können als digitale Ein- oder Ausgänge konfiguriert werden. Einige haben wichtige Einschränkungen:
| Pin-Bereich | Funktion / Einschränkung |
|---|---|
| GPIO 0–39 | Standard GPIO – digitaler Ein- oder Ausgang möglich |
| Input only GPIO 34–39 | Nur als Eingang nutzbar – kein Ausgang möglich |
| Flash GPIO 6–11 | Intern mit Flash-Speicher verbunden – nicht für externe Nutzung verwenden |
| UART GPIO 1, 3 | UART0 TX/RX – mit USB verbunden, für Debugging reserviert |
ESP32 GPIO-Pin Übersicht
Analoge Eingänge (ADC)
Der ESP32 hat einen integrierten 12-Bit ADC (Analog-Digital-Wandler) mit zwei Kanälen:
| ADC-Kanal | GPIO-Pins | Besonderheit |
|---|---|---|
| ADC1 | GPIO 32, 33, 34, 35, 36, 37, 38, 39 | Immer verfügbar ✓ |
| ADC2 | GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27 | Nicht nutzbar wenn WLAN aktiv ist ⚠ |
ADC-Pins des ESP32
Achtung
Analoge Ausgänge (DAC)
Nur zwei Pins unterstützen echte analoge Ausgaben (Digital-Analog-Wandler):
| DAC-Kanal | GPIO-Pin | Verwendung |
|---|---|---|
| DAC1 | GPIO 25 | Analoge Spannung 0–3,3 V ausgeben |
| DAC2 | GPIO 26 | Analoge Spannung 0–3,3 V ausgeben |
DAC-Pins des ESP32
DAC-Ausgänge eignen sich z.B. für Tonausgabe oder die Ansteuerung analoger Aktoren.
Pulse Width Modulation (PWM)
PWM wird für die Helligkeitsregelung von LEDs, Servos oder Motorsteuerungen verwendet. Beim ESP32 kann jeder GPIO-Pin für PWM genutzt werden – über das LEDC-Peripheral mit bis zu 16 unabhängigen PWM-Kanälen.
| Eigenschaft | Wert |
|---|---|
| Verfügbar auf | Allen GPIO-Pins (außer Input-only GPIO 34–39) |
| PWM-Kanäle | 16 unabhängige Kanäle |
| Auflösung | 1–16 Bit (einstellbar) |
| Frequenz | 1 Hz – 40 MHz (abhängig von Auflösung) |
| Peripheral | LEDC (LED Control) |
PWM-Eigenschaften des ESP32
Tipp
I2C – Inter-Integrated Circuit
I2C wird für die Kommunikation mit Sensoren, Displays (z.B. OLED) und anderen Peripheriegeräten verwendet. Die Standard-Pins beim ESP32:
| Signal | Standard-Pin | Hinweis |
|---|---|---|
| SDA (Daten) | GPIO 21 | Per Software auf anderen GPIO umlegbar |
| SCL (Clock) | GPIO 22 | Per Software auf anderen GPIO umlegbar |
I2C Standard-Pins
SPI – Serial Peripheral Interface
SPI für schnelle Datenübertragung mit SD-Karten, Displays oder Sensoren. Standard-Pins:
| Signal | Standard-Pin |
|---|---|
| MOSI (Master → Slave) | GPIO 23 |
| MISO (Slave → Master) | GPIO 19 |
| SCLK (Clock) | GPIO 18 |
| CS (Chip Select) | GPIO 5 |
SPI Standard-Pins
UART – Serielle Kommunikation
Der ESP32 hat drei UART-Schnittstellen:
| UART | TX-Pin | RX-Pin | Hinweis |
|---|---|---|---|
| UART0 | GPIO 1 | GPIO 3 | USB/Debugging – nicht für externe Geräte verwenden |
| UART1 | GPIO 9 | GPIO 10 | Flash-Speicher – nicht verwenden |
| UART2 | GPIO 17 | GPIO 16 | Empfohlen für serielle Verbindungen ✓ |
UART-Pins des ESP32
Kapazitive Touch-Sensoren
10 GPIO-Pins können als berührungsempfindliche Touch-Eingänge konfiguriert werden – ideal für Touch-Buttons ohne mechanische Taster:
| Touch-Kanal | GPIO-Pin | Zusatzfunktionen |
|---|---|---|
| Touch0 | GPIO 4 | ADC2, RTC GPIO |
| Touch1 | GPIO 0 | ADC2, RTC GPIO, Boot-Pin |
| Touch2 | GPIO 2 | ADC2, RTC GPIO |
| Touch3 | GPIO 15 | ADC2, RTC GPIO |
| Touch4 | GPIO 13 | ADC2, RTC GPIO |
| Touch5 | GPIO 12 | ADC2, RTC GPIO |
| Touch6 | GPIO 14 | ADC2, RTC GPIO |
| Touch7 | GPIO 27 | ADC2, RTC GPIO |
| Touch8 | GPIO 33 | ADC1, RTC GPIO |
| Touch9 | GPIO 32 | ADC1, RTC GPIO |
Touch-Pins des ESP32
RTC GPIOs – Deep-Sleep Wake-up
Im Deep-Sleep-Modus verbraucht der ESP32 unter 0,1 mA. Diese Pins bleiben auch im Deep-Sleep aktiv und können den ESP32 aufwecken:
| RTC GPIO | GPIO-Pin | Zusatzfunktionen |
|---|---|---|
| RTC GPIO0 | GPIO 36 | ADC1, Input only |
| RTC GPIO3 | GPIO 39 | ADC1, Input only |
| RTC GPIO4 | GPIO 34 | ADC1, Input only |
| RTC GPIO5 | GPIO 35 | ADC1, Input only |
| RTC GPIO6 | GPIO 25 | ADC2, DAC1 |
| RTC GPIO7 | GPIO 26 | ADC2, DAC2 |
| RTC GPIO8 | GPIO 33 | ADC1, Touch8 |
| RTC GPIO9 | GPIO 32 | ADC1, Touch9 |
| RTC GPIO10 | GPIO 4 | ADC2, Touch0 |
| RTC GPIO11 | GPIO 0 | ADC2, Touch1, Boot-Pin |
| RTC GPIO12 | GPIO 2 | ADC2, Touch2 |
| RTC GPIO13 | GPIO 15 | ADC2, Touch3 |
| RTC GPIO14 | GPIO 13 | ADC2, Touch4 |
| RTC GPIO15 | GPIO 12 | ADC2, Touch5 |
| RTC GPIO16 | GPIO 14 | ADC2, Touch6 |
| RTC GPIO17 | GPIO 27 | ADC2, Touch7 |
RTC GPIO-Pins des ESP32
Pins mit Einschränkungen – Übersicht
| Pin | Einschränkung |
|---|---|
| Flash GPIO 6–11 | Intern mit Flash-Speicher verbunden – nicht extern verwenden |
| UART GPIO 1, 3 | UART0 – mit USB verbunden, für Debugging genutzt |
| Input only GPIO 34–39 | Nur Eingang – kein Ausgang möglich, kein interner Pull-Up/Down |
| GPIO 0 | Boot-Modus-Pin – beim Booten muss dieser Pin HIGH sein |
| GPIO 2 | Muss beim Booten LOW oder floating sein – nicht als Ausgang mit Pull-Up verwenden |
| GPIO 12 | Beeinflusst Flash-Spannung beim Booten – mit Vorsicht verwenden |
GPIO-Pins mit Einschränkungen