Der ESP32 SOC bietet eine enorme Anzahl an GPIO Pins, welche je nach Modul mehr oder weniger zur Verfügung gestellt werden. Vielleicht hast Du aber auch schon die Erfahrung gemacht, dass insbesondere beim Booten des Modules unvorhersehbare Dinge geschehen. Der Grund dafür liegt oft darin, dass nicht alle GPIO Pins frei sind. Einige sind intern bereits belegt und wenn Du nun noch ein Aktor oder Sensor dran hängst, hat dies teils unerwünschte folgen. Nachfolgend eine Tabelle, die Dir die Vorbelegung von PINS zeigt. Auf dem Modul sind die GPIO Pins übrigens oft mit Dxy bezeichnet, also GPIO4 = D4. IN Arduino IDE wiederum kannst Du diese direkt über die GPIO/D-Nummer ansteuern, also z.B. GPIO4/D4 wird dann zu pinMode(4, OUTPUT);
GPIO | Input | Output | Bemerkung |
0 | Pulled Up | OK | sendet ein PWM Signal beim booten |
1 | TX pin | OK | Debug output bei boot |
2 | OK | OK | verbunden mit on-board LED |
3 | OK | RX Pin | HIGH beim booten |
4 | OK | OK | |
5 | OK | OK | sendet ein PWM Signal beim booten |
6-11 | ⊗ | ⊗ | mit internem SPI flash verbunden |
12 | OK | OK | kann nicht booten wenn HIGH |
14 | OK | OK | sendet ein PWM Signal beim booten |
15 | OK | OK | sendet ein PWM Signal beim booten |
16-33 | OK | OK | |
34-39 | OK | ⊗ | Nur als INPUT |