Die Abbildung wird geladen …
Das ESP32-Board von Espressif selbst: zwei Kerne, WLAN und Bluetooth, 3,3-V-Logik.
Jede Lektion führt deinen eigenen Code auf dem Board aus. Besteh ihre Prüfungen, um sie abzuhaken.
Bau das Board in der richtigen Reihenfolge, schalte es dann ein und prüf es, wie auf der Werkbank.
0 von 9 SchrittenZerleg das Board bis auf die Platine. Auf dem DevKitC ist jedes Bauteil ein SMD-Bauteil, außer den beiden 19-poligen Stiftleisten.
Jeder Fehler passiert in der Simulation wirklich. Lös einen aus, beobachte die Abbildung und lies dann, warum.
Ein steckbrettfreundliches Board von Espressif. Das Modul ESP32-WROOM-32E oben trägt einen Doppelkern-Chip Xtensa LX6 mit bis zu 240 MHz, 4 MB Flash und einen 40-MHz-Quarz unter einer Metallabschirmung, dazu eine aufgedruckte Antenne, die 6 mm über die Kante ragt, damit kein Kupfer darunter liegt. Darunter sitzen eine Micro-USB-Buchse, eine USB-Seriell-Brücke CP2102N, ein 3,3-V-Regler AMS1117, eine rote Power-LED und zwei Taster: EN setzt den Chip zurück, Boot hält GPIO0 auf LOW. Eine Benutzer-LED gibt es nicht, deshalb schließen die Lektionen eine an GPIO23 an. Jeder I/O-Pin arbeitet mit 3,3 V, und keiner verträgt 5 V.
| Leiste | Pin | Name | Funktionen | Pegel | Max. Strom | Hinweise |
|---|---|---|---|---|---|---|
| J2 | 1 | 3V3 | 3.3 V supply | 3,3 V | – | Ausgang des Reglers. Entnimm hier ein wenig Strom für Sensoren, oder speise 3,0 bis 3,6 V ein, wenn nichts anderes das Board versorgt. |
| J2 | 2 | EN | CHIP_PU, reset | 3,3 V | – | CHIP_PU. Mit 10 kΩ hochgezogen, mit einem 100-nF-Verzögerungskondensator; ziehst du ihn auf LOW (oder drückst EN), bleibt der Chip im Reset. |
| J2 | 3 | VP | GPIO36, ADC1_CH0, SENSOR_VP, Nur Eingang | 3,3 V | – | GPIO36, nur Eingang: kein Ausgangstreiber und kein interner Pull-up oder Pull-down. ADC1, liest also analoge Werte, auch während WLAN läuft. |
| J2 | 4 | VN | GPIO39, ADC1_CH3, SENSOR_VN, Nur Eingang | 3,3 V | – | GPIO39, nur Eingang, keine internen Pull-ups oder Pull-downs. ADC1 Kanal 3. |
| J2 | 5 | 34 | GPIO34, ADC1_CH6, VDET_1, Nur Eingang | 3,3 V | – | Nur Eingang, keine internen Pull-ups oder Pull-downs: Für einen Taster brauchst du einen eigenen Widerstand. ADC1, die sichere Wahl für ein Potentiometer oder einen Sensor, wenn WLAN an ist. |
| J2 | 6 | 35 | GPIO35, ADC1_CH7, VDET_2, Nur Eingang | 3,3 V | – | Nur Eingang, keine internen Pull-ups oder Pull-downs: Für einen Taster brauchst du einen eigenen Widerstand. ADC1, die sichere Wahl für ein Potentiometer oder einen Sensor, wenn WLAN an ist. |
| J2 | 7 | 32 | GPIO32, ADC1_CH4, TOUCH9, XTAL_32K_P | 3,3 V | 40 mA | ADC1 und ein Touch-Kanal; er kann auch einen 32-kHz-Uhrenquarz aufnehmen. Ein guter Allzweck-Pin. |
| J2 | 8 | 33 | GPIO33, ADC1_CH5, TOUCH8, XTAL_32K_N | 3,3 V | 40 mA | ADC1 und ein Touch-Kanal; er kann auch einen 32-kHz-Uhrenquarz aufnehmen. Ein guter Allzweck-Pin. |
| J2 | 9 | 25 | GPIO25, ADC2_CH8, DAC_1 | 3,3 V | 40 mA | Einer der beiden 8-Bit-DAC-Ausgänge (dacWrite liefert 0 bis etwa 3,3 V). Außerdem ADC2, der nicht mehr funktioniert, solange WLAN an ist. |
| J2 | 10 | 26 | GPIO26, ADC2_CH9, DAC_2 | 3,3 V | 40 mA | Einer der beiden 8-Bit-DAC-Ausgänge (dacWrite liefert 0 bis etwa 3,3 V). Außerdem ADC2, der nicht mehr funktioniert, solange WLAN an ist. |
| J2 | 11 | 27 | GPIO27, ADC2_CH7, TOUCH7 | 3,3 V | 40 mA | ADC2 und ein Touch-Kanal. analogRead() scheitert hier, sobald WLAN läuft; nimm dann für analoge Eingänge einen ADC1-Pin (32 bis 39). |
| J2 | 12 | 14 | GPIO14, ADC2_CH6, TOUCH6, MTMS | 3,3 V | 40 mA | JTAG TMS. Er gibt beim Booten kurz ein Signal aus (laut Sekundärquellen), also meide ihn für Dinge, die beim Einschalten aus bleiben müssen. |
| J2 | 13 | 12 | GPIO12, ADC2_CH5, TOUCH5, MTDI, Strapping-Pin | 3,3 V | 40 mA | Strapping-Pin MTDI: Er muss beim Reset LOW sein. Hochgezogen stellt er die Flash-Versorgung auf 1,8 V, und das Board hängt in einer Boot-Schleife mit "flash read err, 1000". Halt Pull-ups und Sensoren, die in Ruhe HIGH sind, von diesem Pin fern. |
| J2 | 14 | GND | ground | – | – | |
| J2 | 15 | 13 | GPIO13, ADC2_CH4, TOUCH4, MTCK | 3,3 V | 40 mA | ADC2 und ein Touch-Kanal. analogRead() scheitert hier, sobald WLAN läuft; nimm dann für analoge Eingänge einen ADC1-Pin (32 bis 39). |
| J2 | 16 | D2 | flash SD2 (GPIO9) on the older WROOM-32 | – | – | Beim älteren WROOM-32 waren das die SPI-Flash-Leitungen (GPIO6 bis GPIO11). Das WROOM-32E lässt sie im Modul unverbunden. Nutze sie nie; im Code bringt ein Zugriff auf GPIO6 bis GPIO11 den Chip zum Absturz. |
| J2 | 17 | D3 | flash SD3 (GPIO10) on the older WROOM-32 | – | – | Beim älteren WROOM-32 waren das die SPI-Flash-Leitungen (GPIO6 bis GPIO11). Das WROOM-32E lässt sie im Modul unverbunden. Nutze sie nie; im Code bringt ein Zugriff auf GPIO6 bis GPIO11 den Chip zum Absturz. |
| J2 | 18 | CMD | flash CMD (GPIO11) on the older WROOM-32 | – | – | Beim älteren WROOM-32 waren das die SPI-Flash-Leitungen (GPIO6 bis GPIO11). Das WROOM-32E lässt sie im Modul unverbunden. Nutze sie nie; im Code bringt ein Zugriff auf GPIO6 bis GPIO11 den Chip zum Absturz. |
| J2 | 19 | 5V | 5 V supply (EXT_5V) | 5 V | – | Die 5V-Schiene: die 5 V von USB hinter der Schottky-Diode oder ein 5-V-Eingang. An diesem Pin gibt es weder Verpolungsschutz noch Sicherung. |
| J3 | 1 | GND | ground | – | – | |
| J3 | 2 | 23 | GPIO23, VSPI MOSI | 3,3 V | 40 mA | VSPI MOSI und ein einfacher Ausgang, der kein Strapping-Pin ist, also der sichere Pin für die LED der Lektionen. |
| J3 | 3 | 22 | GPIO22, I2C SCL | 3,3 V | 40 mA | Das Standard-I²C-SCL von Arduino (und GPIO21 ist SDA). Ergänz 4,7-kΩ-Pull-ups nach 3V3, wenn das Modul keine hat. |
| J3 | 4 | TX | GPIO1, U0TXD | 3,3 V | 40 mA | UART0, über eine 0-Ω-Brücke mit der USB-Brücke verdrahtet. Das Boot-Log und Serial geben hier mit 115200 Baud aus; halt TX und RX frei, wenn du Uploads und den seriellen Monitor willst. |
| J3 | 5 | RX | GPIO3, U0RXD | 3,3 V | 40 mA | UART0, über eine 0-Ω-Brücke mit der USB-Brücke verdrahtet. Das Boot-Log und Serial geben hier mit 115200 Baud aus; halt TX und RX frei, wenn du Uploads und den seriellen Monitor willst. |
| J3 | 6 | 21 | GPIO21, I2C SDA | 3,3 V | 40 mA | Das Standard-I²C-SCL von Arduino (und GPIO21 ist SDA). Ergänz 4,7-kΩ-Pull-ups nach 3V3, wenn das Modul keine hat. |
| J3 | 7 | GND | ground | – | – | |
| J3 | 8 | 19 | GPIO19, VSPI MISO | 3,3 V | 40 mA | |
| J3 | 9 | 18 | GPIO18, VSPI SCK | 3,3 V | 40 mA | |
| J3 | 10 | 5 | GPIO5, VSPI SS, Strapping-Pin | 3,3 V | 40 mA | Strapping-Pin (SDIO-Timing), intern hochgezogen; er gibt beim Booten kurz ein Signal aus. Als SPI-Chip-Select in Ordnung. |
| J3 | 11 | 17 | GPIO17, U2TXD | 3,3 V | 20 mA | UART2 TX (GPIO16 ist RX). Diese beiden Pads liegen in der Versorgungsdomäne des Flash und liefern etwa 20 mA, nicht 40. Auf WROVER-Boards gehören sie zum PSRAM. |
| J3 | 12 | 16 | GPIO16, U2RXD | 3,3 V | 20 mA | UART2 TX (GPIO16 ist RX). Diese beiden Pads liegen in der Versorgungsdomäne des Flash und liefern etwa 20 mA, nicht 40. Auf WROVER-Boards gehören sie zum PSRAM. |
| J3 | 13 | 4 | GPIO4, ADC2_CH0, TOUCH0 | 3,3 V | 40 mA | Touch-Kanal T0, den die Touch-Lektion nutzt. Außerdem ADC2. |
| J3 | 14 | 0 | GPIO0, ADC2_CH1, TOUCH1, Boot, Strapping-Pin | 3,3 V | 40 mA | Strapping-Pin, mit dem Boot-Taster verdrahtet: LOW beim Reset startet den seriellen Downloader statt deines Sketches. Nach dem Booten funktioniert er als Eingang mit INPUT_PULLUP (gedrückt = LOW). |
| J3 | 15 | 2 | GPIO2, ADC2_CH2, TOUCH2, Strapping-Pin | 3,3 V | 40 mA | Strapping-Pin mit internem Pull-down: Er muss LOW sein oder offen bleiben, damit der Download-Modus startet. Eine LED mit ihrem Widerstand nach GND ist harmlos, ein Pull-up nicht. |
| J3 | 16 | 15 | GPIO15, ADC2_CH3, TOUCH3, MTDO, Strapping-Pin | 3,3 V | 40 mA | Strapping-Pin MTDO, hochgezogen: Beim Reset auf LOW gehalten, schaltet er das Boot-Log des ROM auf TX stumm. Außerdem JTAG TDO. |
| J3 | 17 | D1 | flash SD1 (GPIO8) on the older WROOM-32 | – | – | Beim älteren WROOM-32 waren das die SPI-Flash-Leitungen (GPIO6 bis GPIO11). Das WROOM-32E lässt sie im Modul unverbunden. Nutze sie nie; im Code bringt ein Zugriff auf GPIO6 bis GPIO11 den Chip zum Absturz. |
| J3 | 18 | D0 | flash SD0 (GPIO7) on the older WROOM-32 | – | – | Beim älteren WROOM-32 waren das die SPI-Flash-Leitungen (GPIO6 bis GPIO11). Das WROOM-32E lässt sie im Modul unverbunden. Nutze sie nie; im Code bringt ein Zugriff auf GPIO6 bis GPIO11 den Chip zum Absturz. |
| J3 | 19 | CLK | flash CLK (GPIO6) on the older WROOM-32 | – | – | Beim älteren WROOM-32 waren das die SPI-Flash-Leitungen (GPIO6 bis GPIO11). Das WROOM-32E lässt sie im Modul unverbunden. Nutze sie nie; im Code bringt ein Zugriff auf GPIO6 bis GPIO11 den Chip zum Absturz. |
Sensoren und Aktoren, die dieses Board ansteuert, mit den echten Verbindungen.
Anode über 220 bis 330 Ω an GPIO23, Kathode an GND: etwa 4 bis 6 mA aus 3,3 V. Jeder Ausgangspin, der kein Strapping-Pin ist, funktioniert.
| Bauteil-Pin | Board-Pin |
|---|---|
| A (through 220 Ω) | 23Kabelfarbe orange |
| K | GNDKabelfarbe schwarz |
Eine Seite an GPIO4, die andere an GND, mit pinMode(4, INPUT_PULLUP); gedrückt liest LOW. An GPIO34 bis 39 gibt es keinen internen Pull-up, also ergänz einen 10-kΩ-Widerstand nach 3V3.
| Bauteil-Pin | Board-Pin |
|---|---|
| 1 | 4Kabelfarbe gelb |
| 3 | GNDKabelfarbe schwarz |
Enden an GND und 3V3, Schleifer an GPIO34. analogRead(34) liefert 0 bis 4095 und analogReadMilliVolts(34) Millivolt; an beiden Enden biegt sich der Messwert.
| Bauteil-Pin | Board-Pin |
|---|---|
| 1 | GNDKabelfarbe schwarz |
| 2 | 34Kabelfarbe gelb |
| 3 | 3V3Kabelfarbe rot |
Versorg das Poti aus 3V3, niemals aus 5V. Nimm einen ADC1-Pin (32 bis 39): ADC2-Pins lesen nichts mehr, sobald WLAN startet.
+Vs an 3V3 (er läuft ab 2,7 V), Vout an GPIO35, GND an GND. Die Temperatur ist (mV − 500) ÷ 10 °C.
| Bauteil-Pin | Board-Pin |
|---|---|
| +Vs | 3V3Kabelfarbe rot |
| Vout | 35Kabelfarbe gelb |
| GND | GNDKabelfarbe schwarz |
VCC an 5V, Trig an GPIO18; der 3,3-V-Trigger des Boards ist für den Sensor hoch genug. Die Entfernung in cm ist die Echozeit in µs ÷ 58.
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | 5VKabelfarbe rot |
| Trig | 18Kabelfarbe orange |
| Echo (through a 1 kΩ / 2 kΩ divider) | 19Kabelfarbe grün |
| Gnd | GNDKabelfarbe schwarz |
Echo ist ein 5-V-Ausgang. Führ ihn über einen Teiler (1 kΩ von Echo, 2 kΩ nach GND, die Mitte an GPIO19), sodass der Pin etwa 3,3 V sieht. Direkt an einem GPIO treibt er Strom durch die Klemmdioden und kann den Pin töten.
Braun an GND, Rot an 5V, Orange (Signal) an GPIO13, angesteuert mit einer Servo-Bibliothek bei 50 Hz, 500 bis 2400 µs.
| Bauteil-Pin | Board-Pin |
|---|---|
| brown | GNDKabelfarbe braun |
| red | 5VKabelfarbe rot |
| orange | 13Kabelfarbe orange |
Ein laufender SG90 zieht 100 bis 250 mA und blockiert bis zu etwa 700 mA. An USB setzt das das Board per Brown-out zurück; gib Servos eine eigene 5-V-Versorgung und verbinde die Massen.
VCC an 3V3, GND an GND, SCL an GPIO22, SDA an GPIO21. Wire.begin() nutzt standardmäßig diese Pins; die Adresse ist 0x68.
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | 3V3Kabelfarbe rot |
| GND | GNDKabelfarbe schwarz |
| SCL | 22Kabelfarbe gelb |
| SDA | 21Kabelfarbe blau |
GND, VCC (3V3), SCL an GPIO22, SDA an GPIO21. Das Display antwortet auf 0x3C.
| Bauteil-Pin | Board-Pin |
|---|---|
| GND | GNDKabelfarbe schwarz |
| VCC | 3V3Kabelfarbe rot |
| SCL | 22Kabelfarbe gelb |
| SDA | 21Kabelfarbe blau |
Die Pin-Reihenfolge unterscheidet sich je nach Hersteller (manche setzen VCC zuerst): Lies die Beschriftung deines Moduls, bevor du es einsteckst.