Die Abbildung wird geladen …
Ein günstiges WLAN-Board: der ESP8266 auf einer steckbrettfreundlichen Trägerplatine mit USB
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 SchrittenNimm jedes Bauteil ab. Übrig bleibt die zweilagige Platine: schwarzer Lötstopplack, weißer Bestückungsdruck, die Pads von 38 Bauteilen und die beiden Lochreihen für die Stiftleisten.
Jeder Fehler passiert in der Simulation wirklich. Lös einen aus, beobachte die Abbildung und lies dann, warum.
Das NodeMCU DevKit v1.0 (verkauft als "Amica", oft V2 genannt) setzt ein Modul ESP-12E von Ai-Thinker auf ein Board von 25,4 x 48,3 mm mit einem USB-Seriell-Chip CP2102, einem 3,3-V-Regler und zwei Tastern. Der ESP8266EX darin läuft mit 80 MHz, hat 4 MB Flash und 2,4-GHz-WLAN. Alles arbeitet mit 3,3 V. Die Namen D0-D8 auf dem Bestückungsdruck sind nicht die GPIO-Nummern (D4 ist GPIO2), beide blauen LEDs leuchten, wenn ihr Pin LOW ist, und drei Pins entscheiden beim Reset, ob der Sketch überhaupt läuft. Der breitere Klon "NodeMCU V3" von LoLin (CH340G) hat dieselbe Pinbelegung, bedeckt aber ein ganzes Steckbrett.
| Leiste | Pin | Name | Funktionen | Pegel | Max. Strom | Hinweise |
|---|---|---|---|---|---|---|
| J1 | 1 | A0 | ADC0 via the 220 k / 100 k divider (0-3.2 V) | 3,2 V | – | Der einzige analoge Eingang. Der Teiler aus 220 kΩ / 100 kΩ auf dem Board setzt 0-3,2 V auf die 0-1,0 V des Chips herunter, also liefert analogRead(A0) für 0-3,2 V 0-1023. 5 V hier lesen einfach 1023 und liegen außerhalb der Spezifikation. |
| J1 | 2 | RSV | TOUT, straight to the ADC (0-1.0 V) | 1 V | – | Direkt am TOUT-Pin des Chips, am Teiler vorbei: nur 0-1,0 V. Lass ihn frei und nimm A0. Der Bestückungsdruck auf der Unterseite zeigt hier NC, aber das Kupfer ist verbunden. |
| J1 | 3 | RSV | – | – | – | Auf diesem Board nicht verbunden. Beim breiteren Klon LoLin V3 liegt an dieser Stelle VU, die USB-5-V vor der Diode. |
| J1 | 4 | SD3 | GPIO10, SDIO DATA3, flash /WP | 3,3 V | – | GPIO10, die Leitung /WP des Flash-Chips. Teil des SPI-Flash-Busses: nicht verwenden. |
| J1 | 5 | SD2 | GPIO9, SDIO DATA2, flash /HOLD | 3,3 V | – | GPIO9, die Leitung /HOLD des Flash-Chips. Ihn auf LOW zu treiben, friert den Flash ein und bringt den Chip zum Absturz: nicht verwenden. |
| J1 | 6 | SD1 | GPIO8, SDIO DATA1, flash DI (MOSI) | 3,3 V | – | GPIO8, Dateneingang des Flash. SPI-Flash-Bus: nicht verwenden. |
| J1 | 7 | CMD | GPIO11, SDIO CMD, flash /CS | 3,3 V | – | GPIO11, Chip-Select des Flash. SPI-Flash-Bus: nicht verwenden. |
| J1 | 8 | SD0 | GPIO7, SDIO DATA0, flash DO (MISO) | 3,3 V | – | GPIO7, Datenausgang des Flash. SPI-Flash-Bus: nicht verwenden. |
| J1 | 9 | CLK | GPIO6, SDIO CLK, flash SCLK | 3,3 V | – | GPIO6, Takt des Flash. SPI-Flash-Bus: nicht verwenden. |
| J1 | 10 | GND | – | – | – | Masse (quadratisches Pad). |
| J1 | 11 | 3V3 | regulator output | 3,3 V | – | 3,3 V vom Regler. Der ESP8266 und der CP2102 nehmen davon schon 100-250 mA. |
| J1 | 12 | EN | CH_PD chip enable, 12 k pull-up R3 | 3,3 V | – | Chip-Enable (CH_PD), von R3 auf HIGH gehalten. Zieh ihn auf LOW, und der ESP8266 schaltet ab. |
| J1 | 13 | RST | EXT_RSTB, 12 k pull-up R4, RST button | 3,3 V | – | Reset, von R4 auf HIGH gehalten und vom RST-Taster auf LOW gezogen. Für Deep Sleep verbinde D0 mit diesem Pin, damit der Weckimpuls den Chip zurücksetzen kann. |
| J1 | 14 | GND | – | – | – | Masse (quadratisches Pad). |
| J1 | 15 | Vin | regulator input, USB 5 V after D1 | 5 V | – | Eingang des Reglers. An USB liegt er bei etwa 4,65 V (5 V minus den Spannungsabfall an der SS14); du kannst hier stattdessen 5-9 V einspeisen. Der Bestückungsdruck sagt 5-12 V, aber bei 12 V überhitzt der Regler unter WLAN-Last. Nicht gegen Verpolung geschützt. |
| J2 | 1 | D0 | GPIO16, WAKE, LED_BUILTIN_AUX (LED1) | 3,3 V | 12 mA | GPIO16 und die blaue LED des Boards (LED1, leuchtet bei LOW). PWM geht mit analogWrite() (Core 3.x, nicht in MicroPython), aber keine Interrupts und kein Pull-up (nur INPUT_PULLDOWN_16). Er ist außerdem der Weckausgang für Deep Sleep. |
| J2 | 2 | D1 | GPIO5, SCL (Wire) | 3,3 V | 12 mA | GPIO5, das Standard-I2C-SCL für Wire. Beim Booten ruhig, also eine gute erste Wahl für Ausgänge. |
| J2 | 3 | D2 | GPIO4, SDA (Wire) | 3,3 V | 12 mA | GPIO4, das Standard-I2C-SDA für Wire. Beim Booten ruhig. |
| J2 | 4 | D3 | GPIO0, FLASH button, boot strap (HIGH to run), Strapping-Pin | 3,3 V | 12 mA | GPIO0 und der FLASH-Taster, von R1 hochgezogen. Er muss beim Reset HIGH sein, sonst startet der Chip statt deines Sketches den ROM-Bootloader. Nach dem Booten funktioniert er als Tastereingang. |
| J2 | 5 | D4 | GPIO2, TXD1 (Serial1), LED_BUILTIN (module LED), boot strap (HIGH at boot), Strapping-Pin | 3,3 V | 12 mA | GPIO2: die blaue LED des Moduls (LED_BUILTIN, leuchtet bei LOW) und UART1 TX. Er muss beim Reset HIGH sein (R2 zieht ihn hoch) und flackert, während das ROM sein Boot-Log ausgibt. |
| J2 | 6 | 3V3 | regulator output | 3,3 V | – | 3,3-V-Ausgang. |
| J2 | 7 | GND | – | – | – | Masse (quadratisches Pad). |
| J2 | 8 | D5 | GPIO14, HSPI SCK | 3,3 V | 12 mA | GPIO14, Takt des Hardware-SPI (SCK). Beim Booten ruhig. |
| J2 | 9 | D6 | GPIO12, HSPI MISO | 3,3 V | 12 mA | GPIO12, MISO des Hardware-SPI. Beim Booten ruhig. |
| J2 | 10 | D7 | GPIO13, HSPI MOSI, RXD2 (Serial.swap), CTS0 | 3,3 V | 12 mA | GPIO13, MOSI des Hardware-SPI; Serial.swap() legt UART0 RX hierher. Beim Booten ruhig. |
| J2 | 11 | D8 | GPIO15, HSPI SS, TXD2 (Serial.swap), RTS0, boot strap (LOW at boot), Strapping-Pin | 3,3 V | 12 mA | GPIO15, SPI-Chip-Select, von R5 heruntergezogen. Er muss beim Reset LOW sein: Ein Modul oder Pull-up, das ihn auf HIGH hält, verhindert, dass das Board bootet. |
| J2 | 12 | RX | GPIO3, RXD0 (Serial) | 3,3 V | 12 mA | GPIO3, UART0 RX, vom CP2102 über einen 470-Ω-Widerstand gespeist. Ihn als GPIO zu nutzen, legt Serial und Uploads lahm. |
| J2 | 13 | TX | GPIO1, TXD0 (Serial) | 3,3 V | 12 mA | GPIO1, UART0 TX zum CP2102. Er überträgt das Boot-Log und wechselt deshalb beim Einschalten. |
| J2 | 14 | GND | – | – | – | Masse (quadratisches Pad). |
| J2 | 15 | 3V3 | regulator output | 3,3 V | – | 3,3-V-Ausgang. |
Sensoren und Aktoren, die dieses Board ansteuert, mit den echten Verbindungen.
Ein 220-Ω-Widerstand gibt einer roten LED an einem 3,3-V-Pin etwa 6 mA: (3,3 V - 2,0 V) / 220 Ω.
| Bauteil-Pin | Board-Pin |
|---|---|
| anode (long leg), through 220 Ω | D1Kabelfarbe orange |
| cathode | GNDKabelfarbe schwarz |
Schließ nie eine LED ohne Widerstand an: Der Pin ist für 12 mA ausgelegt. Blaue und weiße LEDs brauchen etwa 3 V und bleiben an 3,3 V dunkel.
Nimm pinMode(D5, INPUT_PULLUP); der Pin liest LOW, solange der Taster gedrückt ist.
| Bauteil-Pin | Board-Pin |
|---|---|
| leg 1 | D5Kabelfarbe weiß |
| leg 2 | GNDKabelfarbe schwarz |
Nicht an D3, D4 oder D8: Ein gedrückter Taster oder ein externer Pull-Widerstand dort ändert den Boot-Modus. D0 hat keinen Pull-up.
Enden an 3V3 und GND, Schleifer an A0. Die obersten 0,1 V des Drehwegs lesen 1023, weil der Vollausschlag von A0 3,2 V ist.
| Bauteil-Pin | Board-Pin |
|---|---|
| end 1 | 3V3Kabelfarbe rot |
| wiper | A0Kabelfarbe gelb |
| end 2 | GNDKabelfarbe schwarz |
Fotowiderstand von 3V3 nach A0 und 10 kΩ von A0 nach GND: Mehr Licht ergibt einen höheren Messwert.
| Bauteil-Pin | Board-Pin |
|---|---|
| LDR leg 1 | 3V3Kabelfarbe rot |
| LDR leg 2 + 10 kΩ to GND | A0Kabelfarbe gelb |
Läuft an 3,3 V (2,7-5,5 V). 0,5 V bedeuten 0 °C, und je 10 mV sind 1 °C: °C = (raw x 3.2 / 1023 - 0.5) x 100.
| Bauteil-Pin | Board-Pin |
|---|---|
| +Vs | 3V3Kabelfarbe rot |
| Vout | A0Kabelfarbe gelb |
| GND | GNDKabelfarbe schwarz |
tone(D6, 440) funktioniert an jedem GPIO außer D0; der ESP8266 erzeugt die Rechteckwelle in Software.
| Bauteil-Pin | Board-Pin |
|---|---|
| + | D6Kabelfarbe lila |
| - | GNDKabelfarbe schwarz |
Servo-Bibliothek, Signal an D5. Das 3,3-V-Signal reicht für einen SG90.
| Bauteil-Pin | Board-Pin |
|---|---|
| orange (signal) | D5Kabelfarbe orange |
| red (+) | VINKabelfarbe rot |
| brown (GND) | GNDKabelfarbe braun |
Versorg ihn aus Vin (etwa 4,65 V an USB), niemals aus 3V3. Sein Blockierstrom (mehrere hundert mA) zieht die Versorgung herunter und setzt das Board zurück, also gib ihm für echte Arbeit eine eigene 5-V-Versorgung mit gemeinsamer GND.
Trig an D5, Echo an D6, pulseIn() misst das Echo. Er braucht 5 V, also nimm VCC von Vin.
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | VINKabelfarbe rot |
| Trig | D5Kabelfarbe grün |
| Echo, through 1 kΩ / 2 kΩ divider | D6Kabelfarbe gelb |
| GND | GNDKabelfarbe schwarz |
Echo ist ein 5-V-Signal, und der ESP8266 ist nicht 5-V-tolerant: Setz einen Teiler aus 1 kΩ / 2 kΩ (oder einen Pegelwandler) zwischen Echo und D6.
I2C-OLED auf Adresse 0x3C: Wire.begin() nutzt SDA an D2 und SCL an D1.
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | 3V3Kabelfarbe rot |
| GND | GNDKabelfarbe schwarz |
| SCL | D1Kabelfarbe gelb |
| SDA | D2Kabelfarbe blau |
I2C auf 0x68 an D2 (SDA) und D1 (SCL).
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | 3V3Kabelfarbe rot |
| GND | GNDKabelfarbe schwarz |
| SCL | D1Kabelfarbe gelb |
| SDA | D2Kabelfarbe blau |
GY-521-Boards haben einen eigenen 3,3-V-Regler; mit 3,3 V gespeist bekommt der Sensor etwas weniger, was er verträgt (2,375-3,46 V).
AO an A0, versorgt aus 3V3, sodass der Ausgang nie den Bereich von 3,2 V überschreitet. Versorg ihn nur während der Messung, um die Korrosion zu bremsen.
| Bauteil-Pin | Board-Pin |
|---|---|
| VCC | 3V3Kabelfarbe rot |
| GND | GNDKabelfarbe schwarz |
| AO | A0Kabelfarbe gelb |
Treibt einen Schrittmotor 28BYJ-48 über vier GPIOs; der Motor nimmt seinen Strom aus Vin.
| Bauteil-Pin | Board-Pin |
|---|---|
| IN1 | D1Kabelfarbe orange |
| IN2 | D2Kabelfarbe gelb |
| IN3 | D5Kabelfarbe grün |
| IN4 | D6Kabelfarbe blau |
| + (5-12 V) | VINKabelfarbe rot |
| - | GNDKabelfarbe schwarz |
Die Eingänge des ULN2003 funktionieren mit 3,3-V-Logik, aber die Motorversorgung darf nicht aus 3V3 kommen. Nimm Pins, die beim Booten ruhig bleiben (D1, D2, D5, D6), damit der Motor beim Einschalten nicht zuckt.