Ich benötige für ein Projekt 11 PIOs. 6 für ein LCD Display, 3 für 3 Taster, 1x Relais und einen für einen DHT22/11.
Im Prinzip bietet ja der NodeMCU ESP 8266 genug PIOs, nur kann ich nicht alle nutzen.
Auf GPIO16 (D0) liegt immer eine HIGH (1) an. Da wollte ich eigentlich einen Taster auf INPUT setzten. Hmm, Dasselbe ist bei GPIO10 u. 9. Dort steht in der Pinbelegung noch was von SDD3 bzw. SDD2. Bei RX und TX genauso. Obwohl dort GPIO3 u. GPIO1 steht. Sind die Pins mit etwas anderem belegt? Kann ich diese GPIOs irgendwie für mein Projekt nutzen?
Zum Besseren Ersichtlichkeit hänge ich mal die Pinbeleg. an.
D0 kannst Du normal nutzen wenn Du den Deep Sleep Modus nicht nutzen willst, Do wird allerdings beim Start auf H gelegt. Also besser nicht als Ausgang nutzen.
9 u 10 denke ich sollten sich auch normal nutzen lassen , einfach mal probieren entwerder mit LED als Ausgang oder Taster als Eingang.
RX und TX kannst Du nicht nutzen das ist die standard Schnittstelle.
Ansonsten könnte man für das Display eine IC2 Schnitstelle nutzen die benötigt nur 2 DPIO.
GPIO9 und 10 hängen am internen Flash und sind nicht nutzbar.
GPIO0 und GPIO15 kann man als Ausgänge nutzen, muß aber dafür sorgen, daß die angescjlossene Hardware die Pegel läßt wie es zum Starten des ESp nötig ist. GPIO muß H-Pegel haben, GPIO L-Pegel damit er bei Reset vom Flash bootet und nicht in einen Programmiermode geht.
Also 0,2,4,5,12,13,14,15 sind 8 IO mit Einschränkungen, mehr ist nicht.
Ein I2C Display ist also definitiv die bessere Wahl. Ansonsten kann man 3 taster aber auch mit Widerständen über den ADC-Eingang einlesen und auswerten.
Und I2C hat noch einen weiteren Vorteil.
Du kannst mit einem Port-Expander (Beispiel PCF8574) auch den Ausgang und die Tasten betreiben.
Damit bleibt es bei den 2 belegten Pins und du hast den Rest noch frei für viele andere Spielereien.
Wenn Dein LCD ein 5V-Modell ist, brauchst Du auch noch Pegelwandler, da die Eingänge des ESP8266 nicht 5V-tolerant sind. Bei I2C nur 2 für SDA und SCL.
Tommy56:
Wenn Dein LCD ein 5V-Modell ist, brauchst Du auch noch Pegelwandler, da die Eingänge des ESP8266 nicht 5V-tolerant sind. Bei I2C nur 2 für SDA und SCL.
Gruß Tommy
Stimmt Tommy, damit ist es noch besser auf I2C umzusteigen.
Einen Level-Shifter für I2C dazwischen und der Rest arbeitet mit 5 Volt.
Tommy56:
Wenn Dein LCD ein 5V-Modell ist, brauchst Du auch noch Pegelwandler, da die Eingänge des ESP8266 nicht 5V-tolerant sind. Bei I2C nur 2 für SDA und SCL.
Gruß Tommy
Ich betreibe schon 1,5 Jahre ein 5V I2C LCD ohne PW am Nodemcu.
Meines wissens schickt ein LCD Display nichts zum Esp.
So! Jetzt könnt ihr mir ruhig nochmal versichern das es kaputt gehen wird.
Das ist durchaus möglich, dass das so ist. Besonders wenn man noch andere 5V-I2C-Module anschließen will, wird es aber nötig. Warum dann nicht gleich auf die sichere Seite gehen.
So wichtig, dass Du Dich gleich nochmal zitieren musst, war es aber nicht
Derfips:
So! Jetzt könnt ihr mir ruhig nochmal versichern das es kaputt gehen wird.
Ob es kaputt geht oder nicht, spielt hier eher eine untergeordnete Rolle.
Hier ist wichtig, das der I2C-Bus im spec bleibt. Und das kann an einem 5 Volt IC mit nur 3,3 Volt kritisch werden.
HotSystems:
Ob es kaputt geht oder nicht, spielt hier eher eine untergeordnete Rolle.
Hier ist wichtig, das der I2C-Bus im spec bleibt. Und das kann an einem 5 Volt IC mit nur 3,3 Volt kritisch werden.
Der IC bekommt seine 5V Betriebsspannung vom Nodemcu.
Aus Wikipedia:
Der High-Pegel soll mindestens 0,7 × VDD betragen, und der Low-Pegel soll höchstens bei 0,3 × VDD liegen.
3.1.2 SDA and SCL logic levels
Due to the variety of different technology
devices (CMOS, NMOS, bipolar) that can be
connected to the I2C-bus, the levels of the logical ‘0’
(LOW) and ‘1’ (HIGH) are not fixed
and depend on the associated level of VDD
. Input reference levels are set as 30 % and 70 % of VDD; VIL is 0.3VDD and VIH is 0.7VDD. See Figure38
, timing diagram. Some legacy device input levels were fixed at VIL= 1.5 V and VIH= 3.0 V, but all new evices
require this 30 %/70 % specification. See Section 6 for electrical specifications.
70 % of VDD;
Sind 3,5V bei Vdd == 5V
Das schafft der ESP nicht.
Bei dem ist mit 3,3V das Ende erreicht.
Es ist also eine Gnade des Herstellers, dass das funktioniert.
Das nächste Problem:
Viele der 5V I2C Adapterplatinen haben Pullup an Board.
Diese ziehen die Inputs des ESP in Richtung 5V.
Entspricht das der ESP Spezifikation?
combie:
Das nächste Problem:
Viele der 5V I2C Adapterplatinen haben Pullup an Board.
Diese ziehen die Inputs des ESP in Richtung 5V.
Entspricht das der ESP Spezifikation?
Nein. 3,6V max. Der ESP hat bei 5,5V an den Pins eine Art "Notbremse" drin, zumindest sagt Espressif, daß er bis da nicht gleich kaputt geht. Richtige Funktion der IO wird im Bereich 3,6V...5V aber nicht mehr garantiert.
Derfips:
Heute ersten Kontakt mit der i2c specification gehabt.
Fazit: Theoretisch: Glück gehabt!
Praktisch: Es läuft!
Ist auch völlig ok, Problem bei solchen Sachen ist einfach, daß man vieles im Netz findet, daß beim Ersteller auch läuft und doch gegen die Spezifikation verstößt. Ist solange kein Problem, wie man sich der Zusammenhänge bewußt ist. Ein Einsteiger ist das nicht, baut nach und erwischt genau die Kombi, die bei ihm mit seinen Teilen nicht (stabil) läuft...
Ich habe z.B. auch kein Problem damit, einen AVR mit 16MHz bei 3,3V zu takten. Macht er ewig und drei Tage.
Ob er es bei -10 Grad noch macht, ist mir egal, wenn er mal instabil wird, weiß ich aber, wo ich zuerst suche.
China-Breakouts haben die unangenehme Eigenschaft, das 3x BM280 oder 3x 2,8" SPI-Display von verschiedenen Anbietern völlig verschieden sind. Mal PullUps, mal nicht, mal Vorwiderstand an der Backlight-LED, mal nicht, mal Pegelwandler, mal nur Längswiderständen usw.
Mir ist das egal, weil ich mir die Sachen genau unter diesen Gesichtspunkten sowieso erstmal anschaue, wenn sie ankommen und dann weiß, was mich erwarten kann.
Das macht aber keiner, der nach irgendeinem Projekt die Teile irgendwo zusammenbestellt und zusammensteckt. Die Bauteile, speziell die AVR und auch diverse Sensoren, sind da recht hart im Nehmen und gehen durchaus nicht unbedingt kaputt. Sie können aber durchaus Schrottdaten liefern und dann finde mal als Einsteiger die Ursache.