Hier dargestellt ist die Pinbelegung der NodeMCU mit 30 PINs. Der Übersichtlichkeit halber handelt es sich hier um eine vereinfachte Darstellung. In der Regel sind viele PINs mehrfach belegt. Darauf gehe ich im Einzelnen noch ein.
Hier eine Kurzbeschreibung der Funktion der PINs.
PIN Bezeichnung | Input | Output | Bemerkung |
---|---|---|---|
A0 – ADC | Analoger Eingang | Kein Ausgang | Messung analoger Werte |
D0 – GPIO 16 | Kein Interrupt | kein PWM oder I2C | High beim Booten! Low – WakeUp aus DeepSleep |
D1 – GPIO 5 | Digital Input | Digital Output | Gleichzeitig SCL für I2C |
D2 – GPIO 4 | Digital Input | Digital Output | Gleichzeitig SDA für I2C |
D3 – GPIO 0 | Pull UP | Digital Output | Ist mit Flashbutton verbunden. LOW verhindert Booten |
D4 – GPIO 2 | Pull Up | Digital Output | High beim Booten! Ist mit Onboard-LED verbunden. Kein Booten bei LOW |
D5 – GPIO 14 | Digital Input | Digital Output | Serial Peripheral Interface SLCK (Serial Clock) – Taktleitung vom Master generiert |
D6 – GPIO 12 | Digital Input | Digital Output | Serial Peripheral Interface MISO (Master In Slave Out) Daten vom Slave an Master |
D7 – GPIO 13 | Digital Input | Digital Output | Serial Peripheral Interface MOSI (Master Out Slave In) Daten vom Master den Slave |
D8 – GPIO 15 | Pull Down | Digital Output (eingeschränkt) | Serial Peripheral Interface CS (Chip Select) – Aktivierung Slave – Kein Booten bei HIGH! |
RX – GPIO 3 | Digital Input (eingeschränkt) | RX | HIGH beim Booten |
TX – GPIO 1 | TX | Digital Input (eingeschränkt) | HIGH beim Booten. Debug fehlerhaft, wenn LOW |
Die wichtigsten Funktionen der einzelnen PINs sind oben dargestellt. Anhand der Tabelle ist auch klar, mit welchen Ergebnissen wir bei der Belegung rechnen können.
Hier sei die I2c-Schnittstelle hervorgehoben. Dies ist keine Hardware-Schnittstelle, sondern wird per Software implementiert.
A0 – Analoger Eingang
Der ESP8266 12-E NodeMCU-Kit unterstützt mit dem PIN A0 oder ADC0 analoges Lesen. Beachte bitte, dass dieser PIN eine maximale Eingangsspannung von 0-3.3 Volt. Andere ESP8266 Boards vertragen nur 0-1 Volt. Beachte bitte das Datenblatt zu deinem Board.
Weitere PINs mit Mehrfachnutzung
GPIO6 bis GPIO11 sind meist mit dem Chip zum Flashen verbunden. Diese sollten nicht für andere Zwecke genutzt werden.
GPIO0 ist im Bild oben auch mit FLASH gekennzeichnet. Das entspricht auch dem Drücken der FLASH-Taste.
Die GPIO0, GPIO1, GPIO2, GPIO3, GPIO9, GPIO10, GPIO15, GPIO16 nehmen während des Bootvorganges bestimmte Pegel an. Welche Pegel das sind, entnehme bitte der obigen Tabelle unter Bemerkungen.
Beachte bitte, dass ein z.B. angeschlossenen Relais beim Bootvorgang unkontrolliert schalten kann, wenn der Pegel am PIN High oder Low wird.
Der RST PIN dient zum Resetten des Boards. Der Reset entspricht dem Drücken der RST-Taste am Board.
Im Tiefschlaf versetztes Board kann über GPIO16 (WAKE) wieder aufgeweckt werden. Dazu muss der PIN mit dem RST-PIN verbunden werden.
Zusätzlich zu den genannten Funktionen können die PINs GPIO0 bis GPIO15 für die Pulsweitenmodulation (PWM) verwendet werden. Hierzu wird es noch einen ausführlichen Beitrag geben.
Damit hast du ein grundlegendes Verständnis welche PINs du gefahrlos verwenden kannst und bei welchen PINs du vorsichtig sein solltest.