ESP32 PinOut – welcher Pin ist für was gut?

Bei der Verwendung des ESP32 GPIO stellt sich häufig die Frage, wofür einige Pins verwendet werden können und welche Pins in unseren Projekten vermieden werden sollten. Der ESP32-Chip verfügt über 48 Pins, normalerweise haben diese Pins mehrere unterschiedliche Funktionen. Wir können diese Funktionen den entsprechenden Pins in unserem Code zuweisen.

ESP32 NodeMCU WLAN Module
ESP32 Dev Kit C V4 NodeMCU WLAN/WiFi Development Board

Werbung

Das ESP-WROOM-32-Modul

Wenn wir eine individuelle Schaltung auf Basis des ESP32 entwerfen möchten, können wir das ESP-WROOM-32 Rohmodul wählen. Aufgrund seines SMT-Designs ist es relativ einfach zu löten, seine Größe von 18 x 25 mm nimmt wenig Platz in Anspruch und erhöht nicht die Größe unserer eigenen Schaltung. Es hat alle Pins wie die ESP32-Chip-Entwicklungsplatinen ohne externe Zusatzschaltungen.

Es sind verschiedene ESP32-Entwicklungskarten mit unterschiedlichen Grundrissen erhältlich. Nicht alle GPIO-Pins sind auf allen Geräten zu finden, aber alle GPIOs verhalten sich auf die gleiche Weise, unabhängig davon, welche ESP32-Entwicklungskarte verwendet wird.

ESP32 Entwicklungsboard 30 Pin-Belegung

Die Pinbelegung der 30-Pin-Version des Entwicklungsboards ESP32-WROOM-32 ist im Bild unten zu sehen.

ESP32-Entwicklungsplatine 38-Pin-Belegung

Die folgende Abbildung zeigt die Pinbelegung der 38-Pin-Version des ESP32-Entwicklungsboards.

ESP32-Peripherie

ESP32-Peripherie werden bestimmten Pins zugewiesen. Im Code können wir definieren, ob diese Pins als digitale Ausgänge oder Eingänge oder zur Aktivierung einer der Peripherie verwendet werden. (z. B.: UART, I2C, SPI, DAC, ADC, PWM usw.)

Die ESP32-Architektur ermöglicht die Konfiguration bestimmter Peripherie für jeden Pin des ESP32, der vom IO MUX GPIO verwaltet wird. Dies bedeutet, dass die IO-MUX- und GPIO-Matrix verwendet werden kann, um interne Peripherie auf einen anderen physischen Pin umzuleiten.

Einige Peripherie verwenden dedizierte GPIO-Pins, z. B. ADC, DAC, Touch und JTAG.

Die Pins GPIO6 bis GPIO11 verbinden sich mit dem Flash-Speicher des ESP32-Moduls. Wenn ein Peripherie an einen dieser Pins angeschlossen ist, startet der ESP32 nicht. Nicht benutzen!

Die Verwendung von Peripherie, die standardmäßig GPIOs zugewiesen sind, kann die Verwendung bestimmter Bibliotheken und Beispielcodes erleichtern.

Der ESP32-Chip enthält die folgenden Peripherie:

18 Analog-Digital-Wandler (ADC)
2 Digital-Analog-Wandler (DAC)
16 PWM-Ausgangskanäle
3 UART-Schnittstellen
2 I2C-Schnittstellen
3 SPI-Schnittstellen
2 I2S-Schnittstellen
10 kapazitiver Berührungssensor GPIO
1 eingebauter Hall-Effekt-Sensor

ESP32 GPIO als Eingang oder Ausgang verwenden

Einige Pins funktionieren möglicherweise nicht wie erwartet, wenn der ESP32-Chip startet. Vermeiden wir daher nach Möglichkeit die Verwendung dieser Pins. Nachfolgend sehen wir, welche Kontakte als Ein- und/oder Ausgänge geeignet sind und auf welche wir bei der Verwendung achten sollten bzw. welche nicht zu empfehlen sind.

Die Bedeutung der Symbole in der folgenden Tabelle:
  green-icon – Brauchbar
  yellow-icon – Vorsichtig benutzen
  red-icon – Verwendung nicht empfohlen

GPIO 0
Eingang:yellow-icon Ausgang:yellow-icon

Beim Systemstart befindet es sich im HIGH-Zustand, zum Programmieren muss es in den LOW-Zustand gezogen werden. Wir verwenden es nur, wenn es unbedingt notwendig ist. Strapping Pin, (Strapping Pins legen die ESP32-Boot-Konfiguration fest.)

GPIO 1
Eingang:red-icon Ausgang:yellow-icon

UART Tx0-Pin, für Programm-Upload, kann zum Debuggen beim Systemstart verwendet werden. Wenn der GPIO15-Pin hoch ist, sendet der ESP32 Boot-Protokolle über den UART. Es kann bedingt als Ausgabe verwendet werden.

GPIO 2
Eingang:green-icon Ausgang:green-icon

Dieser Pin ist mit der eingebauten LED verbunden. Strapping Pin.

GPIO 3
Eingang:yellow-icon Ausgang:red-icon

UART Rx0-Pin, kann zum Programmen aufladen und zum Boot-Debugging verwendet werden. Kann bedingt als Eingang verwendet werden.

GPIO 4
Eingang: green-icon Ausgang: green-icon

Es kann unbedingt als Ausgang und Eingang verwendet werden.

GPIO 5
Eingang: green-icon Ausgang: green-icon

PWM-Signal sendet beim Systemstart. Strapping Pin.

GPIO 6
Eingang: red-icon Ausgang: red-icon

Der GPIO 6 (SCK/CLK) Pin ist auf einigen ESP32 Entwicklungsboards zu finden. Diese Pins sind jedoch mit dem integrierten SPI-Flash-Speicher des ESP-WROOM-32-Chips verbunden, bitte nicht verwenden!

GPIO 7
Eingang: red-icon Ausgang: red-icon

A GPIO 7 (SDO/SD0) Pin ist auf einigen ESP32 Entwicklungsboards zu finden. Diese Pins sind jedoch mit dem integrierten SPI-Flash-Speicher des ESP-WROOM-32-Chips verbunden, bitte nicht verwenden!

GPIO 8
Eingang: red-icon Ausgang: red-icon

A GPIO 8 (SDI/SD1) Pin ist auf einigen ESP32 Entwicklungsboards zu finden. Diese Pins sind jedoch mit dem integrierten SPI-Flash-Speicher des ESP-WROOM-32-Chips verbunden, bitte nicht verwenden!

GPIO 9
Eingang: red-icon Ausgang: red-icon

A GPIO 9 (SHD/SD2) Pin ist auf einigen ESP32 Entwicklungsboards zu finden. Diese Pins sind jedoch mit dem integrierten SPI-Flash-Speicher des ESP-WROOM-32-Chips verbunden, bitte nicht verwenden!

GPIO 10
Eingang: red-icon Ausgang: red-icon

A GPIO 10 (SWP/SD3) Pin ist auf einigen ESP32 Entwicklungsboards zu finden. Diese Pins sind jedoch mit dem integrierten SPI-Flash-Speicher des ESP-WROOM-32-Chips verbunden, bitte nicht verwenden!

GPIO 11
Eingang: red-icon Ausgang: red-icon

A GPIO 11 (CSC/CMD) Pin ist auf einigen ESP32 Entwicklungsboards zu finden. Diese Pins sind jedoch mit dem integrierten SPI-Flash-Speicher des ESP-WROOM-32-Chips verbunden, bitte nicht verwenden!

GPIO 12
Eingang: yellow-icon Ausgang: green-icon

Beim Start muss es niedrig sein. Ein Neustart wird fehlschlagen, wenn er zu hoch gesetzt ist. Die Spannung des internen Spannungsreglers wird hier eingestellt. Strapping Pin. Jtag MTDI-Pin.

GPIO 13
Eingang: green-icon Ausgang: green-icon

Jtag MTCK pin.

GPIO 14
Eingang: green-icon Ausgang: green-icon

Sendet PWM-Signal beim Systemstart. Jtag MTMS pin.

GPIO 15
Eingang: yellow-icon Ausgang: green-icon

Muss beim Start hoch sein. Strapping Pin. Jtag MTDO pin.

GPIO 16
Eingang: green-icon Ausgang: green-icon

UART Rx2 pin.

GPIO 17
Eingang: green-icon Ausgang: green-icon

UART Tx2 pin.

GPIO 18
Eingang: green-icon Ausgang: green-icon
GPIO 19
Eingang: green-icon Ausgang: green-icon
GPIO 21
Eingang: green-icon Ausgang: green-icon

I2C SDA pin

GPIO 22
Eingang: green-icon Ausgang: green-icon

I2C SCL pin

GPIO 23
Eingang: green-icon Ausgang: green-icon
GPIO 25
Eingang: green-icon Ausgang: green-icon
GPIO 26
Eingang: green-icon Ausgang: green-icon
GPIO 27
Eingang: green-icon Ausgang: green-icon
GPIO 32
Eingang: green-icon Ausgang: green-icon
GPIO 33
Eingang: green-icon Ausgang: green-icon
GPIO 34
Eingang: green-icon Ausgang: red-icon

Dieser Pin hat keinen internen Pull-up- oder Pull-down-Widerstand. Nur als Eingang verwendbar.

GPIO 35
Eingang: green-icon Ausgang: red-icon

Dieser Pin hat keinen internen Pull-up- oder Pull-down-Widerstand. Nur als Eingang verwendbar.

GPIO 36
Eingang: green-icon Ausgang: red-icon

Dieser Pin hat keinen internen Pull-up- oder Pull-down-Widerstand. Nur als Eingang verwendbar.

GPIO 39
Eingang: green-icon Ausgang: red-icon

Dieser Pin hat keinen internen Pull-up- oder Pull-down-Widerstand. Nur als Eingang verwendbar.

SP8266 Vierkanal Wifi Relais IOT Smart Home Handy APP Fernbedienung
ESP32-CAM-MB 2640 Kameramodul WiFi Bluetooth-Entwicklungsplatine, USB auf serielle Port

werbung

ESP8266 ESP-01S mit USB-Adapter WLAN WiFi Modul

UART

UART (Universal Asynchronous Receiver/Transmitter) ist eine Hardwarefunktion, die weit verbreitete asynchrone serielle Kommunikationsschnittstellen wie RS232, RS422 und RS485 verwaltet. UART bietet eine beliebte und kostengünstige Möglichkeit, Voll- oder Halbduplex-Daten zwischen verschiedenen Geräten auszutauschen. Der ESP32 unterstützt auch das Infrarot-Data-Association-Protokoll (IrDA).

Der ESP32-Chip enthält 3 UART-Controller, die unabhängig voneinander mit Parametern wie Baudrate, Datenbitlänge, Bitreihenfolge, Anzahl der Stoppbits, Paritätsbit usw. konfiguriert werden können. Alle drei UART-Controller des ESP32 arbeiten auf 3,3V TTL-Pegel.

Um ESP32 UART1 und UART2 auf Arduino verwenden zu können, benötigen wir die Hardware Serial-Bibliothek.

Mit der GPIO-Matrix können UART-Pins nahezu jedem GPIO-Pin des ESP32 logisch zugewiesen werden. Die Pins GPIO34, GPIO35, GPIO36 und GPIO39 können nicht als TX-Pins verwendet werden, da sie nur als Eingänge verwendet werden können.

UART0 ist mit dem USB-zu-Seriell-Konverter verbunden und dient der Kommunikation und Programmierung mit dem ESP32.

Die Standardpins für UART1, GPIO9 und GPIO10 sind auf einigen ESP32-Entwicklungsboards zu finden. Diese Pins sind intern mit dem SPI-Flash-Speicher verbunden. Wenn wir es nutzen wollen, muss UART1 einem anderen Pin zugewiesen werden.

Die Verwendung von UART2 ist durch nichts eingeschränkt.

UARTRX IOTX IOCTSRTS
UART0GPIO3GPIO1
UART1GPIO9GPIO10GPIO6GPIO11
UART2GPIO16GPIO17GPIO8GPIO7

I2C

Der ESP32 verfügt über zwei I2C-Kanäle. I2C verfügt auch nicht über einen dedizierten GPIO, ähnlich wie UART-Pins, jeder GPIO kann als SDA oder SCL konfiguriert werden. Ausnahme der GPIO34-, GPIO35-, GPIO36- und GPIO39-Pins, da es sich um reine Eingangspins handelt und sie daher nicht als SCL oder SDA verwendet werden können.

In Arduino sind GPIO21 (SDA) und GPIO22 (SCL) die Standard-I2C-Pins.

GPIO21SDA
GPIO22SCL

Der folgende Codeausschnitt zeigt, wie wir beide I2C-Kanäle des ESP32 nutzen können.

#include <Wire.h>

const char sdaPin1 = 26;
const char sclPin1 = 25;
const char sdaPin2 = 33;
const char sclPin2 = 32;

TwoWire mywire1 = TwoWire(0);
TwoWire mywire2 = TwoWire(1);

void setup()
{
  mywire1.begin(sdaPin1, sclPin1, 100000);
  mywire2.begin(sdaPin2, sclPin2, 100000);
}

void loop()
{
  mywire1.beginTransmission(0x10);
  mywire1.write(0x20);
  mywire1.endTransmission();

  mywire2.beginTransmission(0x12);
  mywire2.write(0x20);
  mywire2.endTransmission();
}

SPI

Der ESP32-Chip verfügt über drei SPI-Schnittstellen. Dies sind SPI, HSPI und VSPI.

SPI ist als Schnittstelle für Flash-Speicher reserviert, obwohl es auf einigen ESP32-Entwicklungsboards portiert ist, verwenden wir es nicht!

Wir haben also zwei nutzbare SPI-Schnittstellen, HSPI und VSPI. Mit Hilfe der GPIO-Matrix können wir auch auf einen anderen Pin umgeleitet werden. Standardmäßig befinden sich diese auf den folgenden GPIOs:

SPIMOSIMISOCLKCS
VSPIGPIO 23GPIO 19GPIO 18GPIO 5
HSPIGPIO 13GPIO 12GPIO 14GPIO 15

Integrierter SPI-Flash-Speicher

Die Pins GPIO 6 bis GPIO 11 befinden sich auf einigen ESP-WROOM-32-Entwicklungsplatinen. Diese Pins sind jedoch mit dem integrierten SPI-Flash-Speicher des ESP-WROOM-32-Chips verbunden, verwenden wir sie nicht.

GPIO6 SCK/CLK
GPIO7SDO/SD0
GPIO8 SDI/SD1
GPIO9 SHD/SD2
GPIO10 SWP/SD3
GPIO11 CSC/CMD
SwitchBot WiFi Smart Lock mit Keypad Touch, Fingerabdruck Türschloss für Haustür, smartes Türschloss für das Öffnen, Schließen der Tür per Fingerprint, Zutrittscode, App

SwitchBot WiFi Smart Lock mit Keypad Touch

Fingerabdruck Türschloss für Haustür, smartes Türschloss für das Öffnen, Schließen der Tür per Fingerprint, Zutrittscode, App

werbung

Analog-Digital-Wandler (ADC)

Der ESP32 verfügt über zwei 12-Bit-SAR-Analog-Digital-Wandler. ADC1 verfügt über 8 Kanäle, während ADC2 über 10 Kanäle verfügt.

ADC-Eingangskanäle haben eine 12-Bit-Auflösung. Das bedeutet, dass wir analoge Werte zwischen 0 und 4095 erhalten, wobei 0 ist 0 V und 4095 ist 3,3 V entspricht.

Im Code können wir die Auflösung der ADC-Kanäle sowie den ADC-Bereich einstellen.

ADC2 funktioniert möglicherweise nicht ordnungsgemäß, wenn WLAN verwendet wird. Wenn wir WLAN benötigen, verwenden wir nach Möglichkeit stattdessen ADC1.

Die dedizierten GPIOs für den ADC können der folgenden Tabelle entnommen werden:

ADC1_0GPIO36
ADC1_1GPIO37
ADC1_2GPIO38
ADC1_3GPIO39
ADC1_4GPIO32
ADC1_5GPIO33
ADC1_6GPIO34
ADC1_7GPIO35
.
ADC2_0GPIO4
ADC2_1GPIO0
ADC2_2GPIO2
ADC2_3GPIO15
ADC2_4GPIO13
ADC2_5GPIO12
ADC2_6GPIO14
ADC2_7GPIO27
ADC2_8GPIO25
ADC2_9GPIO26

Der ESP32-ADC ist etwas verrauscht und sein Verhalten ist nichtlinear. Es unterscheidet wahrscheinlich nicht zwischen 0 und 0,1 V sowie 3,2 und 3,3 V. Wenn ein genauerer Analog-Digital-Wandler benötigt wird, sollten wir die Verwendung eines externen ADC in Betracht ziehen.

Digital-Analog-Wandler (DAC)

An Bord des ESP32 finden wir 2 unabhängige 8-Bit-Digital-Analog-Wandler (DAC) zur Umwandlung digitaler Werte in analoge Spannungen. Diese Gleichspannung erscheint am GPIO-Ausgang des DAC-Kanals.

Der 8-Bit-DAC bedeutet, dass der ESP32 seinen digitalen Eingangswert von 0 bis 255 in einen äquivalenten analogen Spannungsausgang von 0 V bis zur Referenzspannung (Vref) umwandeln kann. Die folgende Formel hilft Ihnen zu verstehen, welche analoge Spannung am Ausgang im Vergleich zum digitalen Eingangswert erwartet wird.

Ausgangsspannung(DAC) = Digitaler Eingangswert X (Vref / 255)

Der DAC verfügt über ein internes Widerstandsnetzwerk und verwendet einen Spannungspegel nahe der Versorgungsspannung als Eingangsreferenzspannung (Vref).

Der DAC bezieht die Referenzspannung „Vref“ vom VDD3P3_RTC-Pin des ESP32-Chips, die im Idealfall mit der Versorgungsspannung übereinstimmt.

Dedizierte GPIOs für den DAC:

DAC1GPIO25
DAC2GPIO26

Az alábbi képen láthatjuk, hol található ez a két csap.

RTC GPIOs

Der ESP32 verfügt über 16 RTC GPIOs, die Teil des RTC Low-Power-Subsystems sind. Diese RTC-GPIOs sind in der Lage, den ESP32 von einer externen Quelle aus dem Tiefschlaf aufzuwecken, wenn der Ultra Low Power(ULP) Coprozessor läuft.

Das bedeutet, dass wir den ESP32 beispielsweise durch Drücken einer Taste, die mit einem der RTC-GPIOs verbunden ist, aus dem Tiefschlaf wecken können.

Die dedizierten RTC GPIO Pins sind in der folgenden Abbildung dargestellt:

RTC_GPIO0GPIO36
RTC_GPIO3GPIO39
RTC_GPIO4GPIO34
RTC_GPIO5GPIO35
RTC_GPIO6GPIO25
RTC_GPIO7GPIO26
RTC_GPIO8GPIO33
RTC_GPIO9GPIO32
RTC_GPIO10GPIO4
RTC_GPIO11GPIO0
RTC_GPIO12GPIO2
RTC_GPIO13GPIO15
RTC_GPIO14GPIO13
RTC_GPIO15GPIO12
RTC_GPIO16GPIO14
RTC_GPIO17GPIO27

Im folgenden Bild können wir sehen, welche RTC_GPIO-Pins sich auf der 38-Pin-Entwicklungsplatine des ESP32 befinden:

PWM

PWM (Pulse Width Modulation) ist eine Methode zur Erzeugung analoger Signale an digitalen Ausgangspins des ESP32. Wir erzeugen ein Rechtecksignal, das zwischen 0V und 3,3V (HIGH/LOW) wechselt. Die Dauer zwischen HIGH- und LOW-Pegel, die Impulsbreite, bestimmt die analoge Ausgangsspannung.

Der ESP32-PWM-Controller verfügt über 16 unabhängige Kanäle, die so konfiguriert werden können, dass sie PWM-Signale mit unterschiedlichen Eigenschaften erzeugen. Jeder Ausgang, der als Ausgang fungieren kann, kann als PWM-Pin verwendet werden. Die Pins GPIO34, GPIO35, GPIO36 und GPIO39 können kein PWM erzeugen, da es sich nur um Eingangspins handelt.

Um das PWM-Signal einstellen, müssen wir im Code folgende Parameter angeben:

Frequenz.
Auflösung der Impulsbreite (1 – 16 bit).
PWM-Kanal (0-15).
GPIO, der das PWM-Signal erzeugt.

Interrupt

Interrupts können für jeden GPIO-Pin auf dem ESP32-Mikrocontroller konfiguriert werden.

SwitchBot Smart Motion Sensor – Bewegungsmelder mit Alarm, drahtloses Haussicherheitssystem, fügen Hub Mini hinzu, um ihn Alexa-kompatibel zu Machen

SwitchBot Smart Motion Sensor

Bewegungsmelder mit Alarm, drahtloses Haussicherheitssystem, fügen Hub Mini hinzu, um ihn Alexa-kompatibel zu Machen

werbung

Kapazitive berührungsempfindliche GPIOs

Der ESP32 enthält 10 interne kapazitive Berührungssensoren. Diese Sensoren können Veränderungen an allem erkennen, was eine elektrische Ladung enthält. Dadurch können sie beispielsweise die Berührung der GPIOs mit einem Stift oder Finger erkennen.

Mithilfe kapazitiver Berührungssensoren können wir den ESP32-Mikrocontroller aus dem Tiefschlaf wecken.

Interne Berührungssensoren werden an diese dedizierten GPIO-Pins angeschlossen.

Touch0GPIO4
Touch1GPIO0
Touch2GPIO2
Touch3GPIO15
Touch4GPIO13
Touch5GPIO12
Touch6GPIO14
Touch7GPIO27
Touch8GPIO33
Touch9GPIO32

GPIO-Stromverbrauch

Der maximale Ausgangsstrom des ESP32 GPIO-Pins beträgt 40 mA, und sie können einzeln einen maximalen Strom von 28 mA aufnehmen.

ESP32 rendszerindítás – Strapping Pinek

Der ESP32-Chip benötigt bei jedem Start oder Neustart bestimmte Konfigurationsparameter, die den Startmodus, die Spannungseinstellungen, das mögliche Drucken von ROM-Nachrichten, die Einstellungen der JTAG-Signalquelle usw. bestimmen.

Einige Pins haben beim Starten des ESP32 eine einzigartige Funktion. Diese werden Strapping pins genannt. Kombinationen aus High-, Low- oder Floating-Zuständen der Strapping pins bestimmen das Startverhalten des ESP32.

Nach erfolgreichem Booten fungieren diese Pins als normale GPIO-Pins.

Vermeiden wir nach Möglichkeit die Verwendung dieser Pins, da eine Änderung ihres Zustands während des Startvorgangs zu unerwartetem Verhalten, Fehlern oder sogar Systemabstürzen führen kann.

Der ESP32-Chip verfügt über die folgenden Strapping-Pins:

GPIO0Beim Systemstart befindet es sich im HIGH-Zustand, zum Programmieren muss es in den LOW-Zustand gezogen werden. Der serielle Adapter des ESP32-Wroom-Moduls übernimmt dies für uns.
GPIO2 Zur Programmierung muss er auf LOW gezogen werden.
GPIO4Das Register „GPIO_STRAP“ enthält GPIO 4, wird aber von keinem Boot-Modus verwendet.
GPIO5Der Spannungspegel von GPIO5 und GPIO15 beeinflusst das SDIO-Slave-Timing.
GPIO12 Legt die SPI-Flash-Speicherspannung fest. Wenn die Spannung niedrig ist, beträgt sie 3,3 V. Wenn sie hoch ist, beträgt sie 1,8 V. Das ESP32 Wroom-Modul enthält einen 3,3-V-Flash-Speicher
GPIO15 Wenn hoch (dies ist die Standardeinstellung), druckt der ESP32 das Debug-Protokoll beim Booten über die serielle Schnittstelle. Wenn wir es nach unten ziehen, passiert das nicht. Der Spannungspegel von GPIO5 und GPIO15 beeinflusst das SDIO-Slave-Timing.

JTAG

JTAG-Pins können für Debugging-Zwecke verwendet werden. Wenn kein JTAG-Debugging erforderlich ist, können diese Pins als normale GPIOs verwendet werden.

GPIO12MTDI pin
GPIO13MTCK pin
GPIO14 MTMS pin
GPIO15MTDO pin

Enable – EN pin

Der EN-Pin des ESP32-Wroom-Entwicklungsboards wird hochgezogen und mit dem „CHIP_PU“-Pin (Chip PowerUp) des ESP32-Chips verbunden. Bei niedrigem Pegel wird der ESP32-Chip deaktiviert. Dieser Pin ist mit der EN-Taste des Moduls verbunden. Durch Drücken der Taste können wir den ESP32-Mikrocontroller neu starten.

ESP32 integrierten Hall-Effekt-Sensor

Alle ESP32-Karten haben einen eingebauten Hall-Effekt-Sensor. Der Hall-Effekt-Sensor kann Änderungen des Magnetfeldes in seiner Umgebung erkennen. Je größer das Magnetfeld ist, desto höher ist die Ausgangsspannung des Hall-Effekt-Sensors.

I2S

I2S (Inter-IC Sound) ist ein digitales Audioübertragungsprotokoll. Der ESP32 verfügt über zwei I2S-Peripheriegeräte, I2S0 und I2S1. Jeder kann als Controller oder Ziel konfiguriert werden und jeder kann ein Audiosender oder -empfänger sein.

Es gibt keine dedizierten I2S-Pins am ESP32, diese müssen im Code zugewiesen werden.