Bevor wir uns an die ersten Experimente bzw. Projekte mit dem NodeMcu heran wagen, sollten wir einen Blick auf die Bezeichnung der Pins werfen. Es ist vor allem zu beachten, dass die auf dem Board aufgedruckten Bezeichnungen nur interne Benennungen sind. Dies sind nicht die Nummern der GPIO’s mit denen man die Pins über Python ansprechen kann. Die nachfolgende Grafik zeigt die verschiedenen Bezeichnungen bei einem Board mit dem ESP8266.
Hier noch weitere Informationen bezüglich der Verwendung der GPIO für Ein- und Ausgabe. Die digitalen Ausgabe-Pins liefern 0V bei LOW und 3,3V bei HIGH. Ein Pin kann maximal 12mA Strom liefern. Wenn ein PIN für die Eingabe genutzt wird, so sollten maximal 3,6V anliegen, Bei Spannungen darüber kann der Chip Schaden nehmen. Also: Der ESP ist nicht 5V-fest.
Die GPIO 6 bis 11 können nicht verwendet werden, weil Sie mit dem internen Flash-Speicher verbunden sind. Verwendet man sie trotzdem, kann das Programm abstürzen.
Pin auf Board |
GPIO | Input | Output | Bemerkungen |
D0 | GPIO16 | kein Interrupt möglich |
kein PWM | Dieser Pin liegt beim Booten auf HIGH. |
D1 | GPIO5 | Ja | Ja | wird auch für den I2C Bus verwendet |
D2 | GPIO4 | Ja | Ja | wird auch für den I2C Bus verwendet |
D3 | GPIO0 | enthält Pull-Up Widerstand |
Ja | Ist mit dem Flash-Button verbunden. Wenn LOW dann kein Booten möglich. |
D4 | GPIO2 | enthält Pull-Up Widerstand |
Ja | Ist mit der internen LED verbunden. Dieser Pin liegt beim Booten auf HIGH. |
D5 | GPIO14 | Ja | Ja | |
D6 | GPIO12 | Ja | Ja | |
D7 | GPIO13 | Ja | Ja | |
D8 | GPIO15 | enthält Pull-Down Widerstand nach Masse | Ja | |
RX | GPIO3 | Ja | RXD | Wird für serielle Schnittstelle verwendet. Dieser Pin liegt beim Booten auf HIGH. |
TX | GPIO1 | TXD | Ja | Dieser Pin liegt beim Booten auf HIGH. |
A0 | ADC0 | Analog | Nein | Nur Analoges Eingangssignal |
Der ESP8266 unterstützt kein Hardware PWM. PWM ist aber softwareseitig möglich. Die Auflösung beträgt 10 Bit (Range 0 … 1023) bei standardmäßigen 1kHz, was aber eingestellt werden kann, wie wir noch sehen werden.
Über den PIN ADC0 können analoge Signale eingelesen werden. Der Spannungsbereich liegt zwischen 0,0 Volt und 1.0 Volt. Also keine 3,3 Volt anlegen, dies zerstört den Chip. Einige Boards haben einen internen Spannungsteiler von 3,3 Volt aus 1,0 Volt. Man sollte aber zunächst immer davon ausgehen, dass das Board nur 1,0 Volt digitalisieren kann. Dann die gemessenen Werte kontrollieren. Wenn man sicher ist, kann eine Spannung bis 3,3 Volt angelegt werden. Ansonsten mit einem externen Poti die Spannung auf 1,0 Volt bringen.
Und hier wie angedeutet ein kleines Programm nebst Schaltplan, mit dem sich eine externe LED in der Helligkeit steuern lässt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
from machine import Pin, PWM from time import sleep frequenz = 1000 led = PWM(Pin(5), frequenz) while True: for zyklus in range(0, 1023): led.duty(zyklus) sleep(0.003) sleep(1) for zyklus in range(1023, 0, -1): led.duty(zyklus) sleep(0.003) sleep (1) |
Du muss angemeldet sein, um einen Kommentar zu veröffentlichen.