Wenn man an seinem ESP32 Board etwas anschließen möchte, sollte man die Funktionen der einzelnen GPIO Pins kennen. Nicht jeder Pin ist für analoges Eingangssignal oder für einen PWM Ausgang geeignet.
Hinweis: Die ESP32 GPIO-Pins haben bei jedem Entwicklungsboard die gleichen Funktionen, jeodch sind nicht bei jedem Board die gleichen Pins auf der Platine herausgeführt. Zum besseren Verständnis des ESP32 empfehle ich auch meinen Artikel ESP32 Grundlagen.
Inhaltsverzeichnis
- 1 ESP32 WROOM Pinbelegung
- 2 Das ESP32 DevKitC V4 Baord
- 3 ESP32 DevKitC V4 Pinbelegung
- 4 GPIO-Pins – Allgemeine Ein- und Ausgänge
- 5 Analoge Eingänge (ADC)
- 6 Analoge Ausgänge (DAC)
- 7 Pulse Width Modulation (PWM)
- 8 I2C – Inter-Integrated Circuit
- 9 SPI – Serial Peripheral Interface
- 10 UART – Serielle Kommunikation
- 11 Touch-Sensoren
- 12 RTC GPIOs – Pins für den Deep-Sleep-Modus
- 13 Pins mit Einschränkungen
- 14 Fazit
ESP32 WROOM Pinbelegung
Da die wenigsten von euch mit dem reinen ESP32 WROOM Chip arbeiten werden, werden wir uns diese Pinbelegung nicht weiter im Detail ansehen.
Die nachfolgende Pinbelegung bezieht sich auf das Entwicklungsboard ESP32 DevKitC V4. Nicht jedes ESP32 Baord hat die gleiche Pinbelegung, und auch die Anzahl der herausgeführten GPIO Pins variiert je nach Entweicklungsboard. Das DevKitC V4 Baord gehört jedoch zu den beliebtesten ESP32 Baords.
Das ESP32 DevKitC V4 Baord
Hast du noch keinen ESP32 Mikrcontroller gekauft? Dann empfehle ich dir das beliebte und bekannte DevKitC V4 Baord*.
Eine genau detailierte Übersicht über den Aufbau und die Funktionen des Baords findest du in meinem ESP32 Grundlagen Artikel.
ESP32 günstig kaufen
- ESP32 DevKitC V4 bei Amazon*
- ESP32 DevKitC V4 bei AliExpress
- ESP32 DevKitC V4 bei Reichelt
ESP32 DevKitC V4 Pinbelegung
Der ESP32 verfügt in der Regel über 36 GPIO-Pins (General Purpose Input/Output), wobei einige Boards, wie das ESP32-DevKit, leicht abweichende Belegungen haben können. Diese Pins können verschiedenen Funktionen zugewiesen werden, darunter digitale Ein- und Ausgänge, analoge Eingänge, PWM-Ausgaben, I2C, SPI, UART und viele weitere.
ESP32 Pinout kostenlos herunterladen
GPIO-Pins – Allgemeine Ein- und Ausgänge
Die GPIO-Pins des ESP32 sind sehr flexibel und können je nach Konfiguration als digitale Ein- oder Ausgänge fungieren. Die meisten Pins haben zusätzliche Funktionen, die spezifisch für bestimmte Aufgaben verwendet werden können. Hier eine Übersicht der grundsätzlichen Belegungen und Besonderheiten:
- GPIO 0 bis 39: Standardmäßige GPIO-Pins, die als digitale Eingänge oder Ausgänge verwendet werden können.
- GPIO 34 bis 39: Diese Pins sind nur als Eingänge nutzbar und können keine Ausgaben steuern.
- GPIO 6 bis 11: Diese Pins sind intern mit dem Flash-Speicher verbunden und sollten in der Regel nicht für andere Zwecke verwendet werden.
Analoge Eingänge (ADC)
Der ESP32 verfügt über einen integrierten ADC (Analog-Digital-Wandler), der analoge Signale in digitale Werte umwandeln kann. Dieser Wandler bietet eine Auflösung von bis zu 12 Bit. Es gibt zwei ADC-Kanäle (ADC1 und ADC2), die zusammen bis zu 18 Eingänge unterstützen:
- ADC1: GPIO 32, 33, 34, 35, 36, 37, 38, 39
- ADC2: GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27
Wichtig zu wissen: ADC2 kann nicht gleichzeitig mit dem WLAN des ESP32 verwendet werden, da es intern für WLAN-Funktionen reserviert ist.
Analoge Ausgänge (DAC)
Einige Pins des ESP32 unterstützen auch DAC (Digital-Analog-Wandler), der digitale Signale in analoge umwandelt. Dies ist nützlich, wenn analoge Spannungen für Aktoren, wie Motoren oder Lautsprecher, benötigt werden. Folgende Pins unterstützen DAC:
- DAC: GPIO 25 und 26
Pulse Width Modulation (PWM)
PWM ist eine Technik zur Steuerung von analogen Schaltungen über digitale Signale, insbesondere bei der Helligkeitsregelung von LEDs oder der Geschwindigkeitsregelung von Motoren. Jeder GPIO-Pin des ESP32 kann für PWM verwendet werden. PWM wird über sogenannte „Timer“ und „Kanäle“ gesteuert, und es können bis zu 16 unabhängige PWM-Kanäle konfiguriert werden.
I2C – Inter-Integrated Circuit
I2C ist ein Protokoll für die Kommunikation zwischen Mikrocontrollern und Sensoren, Displays und anderen Peripheriegeräten. Der ESP32 bietet zwei I2C-Schnittstellen, deren Pins frei wählbar sind. Standardmäßig werden jedoch oft die folgenden Pins verwendet:
- SDA (Data): GPIO 21
- SCL (Clock): GPIO 22
Diese Pins können über die Software auf andere GPIOs umgeleitet werden.
SPI – Serial Peripheral Interface
SPI ist ein weiteres Kommunikationsprotokoll, das oft für den schnellen Datenaustausch mit externen Geräten wie SD-Karten, Displays oder Sensoren verwendet wird. Der ESP32 unterstützt mehrere SPI-Schnittstellen, wobei häufig die folgenden Pins verwendet werden:
- MOSI (Master Out Slave In): GPIO 23
- MISO (Master In Slave Out): GPIO 19
- SCLK (Clock): GPIO 18
- CS (Chip Select): GPIO 5
Auch diese Pins können in der Software auf andere GPIOs gelegt werden.
UART – Serielle Kommunikation
UART ist eine serielle Schnittstelle, die häufig für die Kommunikation mit Computern, GPS-Modulen oder anderen Mikrocontrollern verwendet wird. Der ESP32 verfügt über drei UART-Schnittstellen (UART0, UART1, UART2), wobei UART0 oft für Debugging verwendet wird. Die Standardpins sind:
- UART0: TX (GPIO 1), RX (GPIO 3)
- UART1: TX (GPIO 9), RX (GPIO 10)
- UART2: TX (GPIO 17), RX (GPIO 16)
Da die Pins für UART1 mit dem Flash-Speicher in Verbindung stehen, wird oft UART2 für serielle Verbindungen genutzt.
Touch-Sensoren
Der ESP32 unterstützt berührungsempfindliche Eingänge, die als Touch-Sensoren konfiguriert werden können. Diese eignen sich für kapazitive Touch-Buttons und berührungsbasierte Eingabesysteme. Folgende Pins können als Touch-Sensoren verwendet werden:
- Touch Pins: GPIO 0, 2, 4, 12, 13, 14, 15, 27, 32, 33
RTC GPIOs – Pins für den Deep-Sleep-Modus
Der ESP32 unterstützt verschiedene Energiesparmodi, einschließlich des Deep-Sleep-Modus, bei dem der Mikrocontroller nahezu keinen Strom verbraucht. Einige GPIO-Pins können weiterhin als „Wake-up“-Pins fungieren, um den ESP32 aus dem Schlaf zu holen:
- RTC GPIOs: GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27, 32, 33
Diese Pins sind mit dem internen RTC (Real-Time Clock) Modul verbunden und funktionieren auch bei minimalem Stromverbrauch.
Pins mit Einschränkungen
Einige GPIO-Pins des ESP32 sollten aufgrund ihrer speziellen Funktionen oder Verbindungen mit internen Komponenten mit Vorsicht verwendet werden:
- GPIO 6 bis 11: Diese Pins sind mit dem internen Flash-Speicher verbunden und sollten nicht für andere Zwecke verwendet werden.
- GPIO 1 und 3: Diese Pins werden als TX/RX für UART0 verwendet und sind oft mit dem USB-Anschluss verbunden.
- GPIO 34 bis 39: Diese Pins können nur als Eingänge verwendet werden.
Fazit
Der ESP32 bietet eine enorme Vielfalt an Funktionen und Möglichkeiten durch seine flexiblen GPIO-Pins. Es ist jedoch wichtig, die Besonderheiten der einzelnen Pins zu kennen, um Fehlfunktionen oder Hardwareprobleme zu vermeiden. Mit diesem Wissen über die Pinbelegung des ESP32 können Entwickler ihre Projekte effizienter planen und umsetzen, sei es für die Anbindung von Sensoren, die Steuerung von Aktoren oder die serielle Kommunikation mit anderen Geräten.
Ein tieferes Verständnis der Pinbelegung hilft dabei, die Leistungsfähigkeit des ESP32 voll auszuschöpfen und das Beste aus jedem DIY-Projekt herauszuholen!