Benötige Hilfe beim Schltplan

#6810532
Lesenswert?

Hallo zusammen,
bevor ich wieder alles zusammenlöte und nur den aufsteigenden Rauch 
beobachte, wollte ich hier mal in die Community fragen, ob der 
Schaltplan so passt?

Einsatzgebiet: Ich will mir für mein Aquarium ein Gerät bauen, welches 
mir über die verschiedenen Sensoren und Schwimmerschalter mir 
Informationen via MQTT im ioBroker bereitstellt. Gleichzeitig soll es 7 
DC Motoren einzeln ein und ausschalten können. Die komplette Logik im 
ioBroker, sowie die Firmware (Tasmota) für den Mikrocontroller habe ich 
bereits fertig.
Das Gerät muss also nur Daten sammeln und per MQTT/Wlan weitersenden, 
sowie die maximale Einschaltzeit und den Einschaltbefehl per MQTT/Wlan 
entgegennehmen.

Auf Anraten eines Bekannten soll der Logikkreis mit den Sensoren und dem 
Mikrocontroller mit einem 5V Netzteil und der Lastkreis mit den DC 
Motoren mit einem separaten 12V Netzteil

Ich habe als Bauteile die direkt auf das Board gesteckt werden:
- Microchip: NodeMCU V3 mit einem ESP8266
- GPIO Expander: MCP23017
- Optokoppler: HW-399 Optoisolator

Bauteile die per Kabel angeschlossen werden sollen:
- Analog zu Digital Wandler ADS1115 16-Bit ADC
- Optional: 0,96" OLED SSD1306 Display
Angehängte Dateien:
Gast #6810616
Lesenswert?

Severin F. schrieb:
> Optokoppler: HW-399

Das ist irgend so ein merkwürdiges chinesisches Modul um billige Chips 
teuer zu verkaufen. Eine klare Erklärung habe ich nicht gefunden. Aber 
es arbeitet wohl mit 500mA Transistoren nach GND und 5k1 pull up an 
HVCC, der nicht nur 5V, sondern bis 24V betragen kann.
Dein 78S05 (2A nur für 2 Optokoppler!) ist wohl nicht notwendig. Aber 
das Optokopplermodul auch ziemlich unpassend. Es hat halt keinen push 
pull Ausgang.
Wenn man Optokoppler einsetzen will, hat man jedenfalls nicht links und 
rechts dieselben 5V.

Ob ein kleiner IRLML2502 den Anlaufstrom deiner Pumpenmotoren schalten 
kann solltest du nachschlagen.
#6810719
Lesenswert?

Falls ich irgendwelche Sachen total falsch gemacht habe, bitte nicht zu 
Streng sein. Ich bin gelernter Metzger und habe mich da versucht so gut 
wie es nur geht selbst rein zu lesen. Dabei habe ich Oft von zwei 
bekannten noch Infos oder Warnhinweise zugerufen bekommen. Wie z.B. 
"Dass kannst du doch so nicht machen!", oder "Achte aber noch da und da 
drauf"

MaWin schrieb:
> Severin F. schrieb:
>> Optokoppler: HW-399
>
> Das ist irgend so ein merkwürdiges chinesisches Modul um billige Chips
> teuer zu verkaufen. Eine klare Erklärung habe ich nicht gefunden. Aber
> es arbeitet wohl mit 500mA Transistoren nach GND und 5k1 pull up an
> HVCC, der nicht nur 5V, sondern bis 24V betragen kann.
> Dein 78S05 (2A nur für 2 Optokoppler!) ist wohl nicht notwendig. Aber
> das Optokopplermodul auch ziemlich unpassend. Es hat halt keinen push
> pull Ausgang.
> Wenn man Optokoppler einsetzen will, hat man jedenfalls nicht links und
> rechts dieselben 5V.
>
> Ob ein kleiner IRLML2502 den Anlaufstrom deiner Pumpenmotoren schalten
> kann solltest du nachschlagen.

Markus M. schrieb:
> Die +5V sind links und rechts miteinander verbunden. Rechts igbt es ein
> "HVGND" und kein "HV+5V"


An den Pin Out des NodeMCU Boards sind 3,3V. der Optokoppler ist links 
auch an einen 3,3V Output an dem NodeMCU Board angeschlossen.
Der IRLML2502 kann bis zu 12V am Gate. Ich habe den Auszug aus dem 
Datasheet mal Angehängt.


Jede Dosierpumpen braucht:
- im Leerlauf 0,14A
- unter Last 0,14A
- Blockiert 0,24A
Wobei ich alles so Programmiert habe, dass nie zwei Pumpen gleichzeitig 
laufen.

Ich habe jetzt den 78S05 entfernt und habe also auf der rechten Seite 
nur 12V.

Was für einen Optokoppler zum Trennen der Stromkreise und was für ein 
FET/Transistor zum Schalten der Pumpen würdet ihr mir empfehlen?
Angehängte Dateien:
#6811836
Lesenswert?

MaWin schrieb:
> Dietrich L. schrieb:
>
>> Die 12V sind Vgsn, also max. Spannung am Gate. Der Transistor kann aber
>> 20V Vds, also genug Reserve
>
> Bekommt aber, seit dem HVCC von 5V auf 12V umgestellt wurde, knapp 12V
> auf's Gate.
> Ein LogicLevel ist gar nicht mehr nötig.

Das bedeutet was genau?
Ich kann auch wieder auf 5V an HVCC umstellen, wenn das besser ist.
Gast #6811965
Lesenswert?

Die PullUp-Wiederstände an den I2C-Anschlüssen sowie am DS18B20 gehen an 
5V, somit ist ein abrauchen des ESP8266 gewährleistet.
Ein um klemmen auf 3V3 ist nur für den DS18B20 (dann auch Vdd des selben 
auf 3V3) eine Lösung, wenn die MCP23017 an 5V betrieben werden reicht 
der H-Level (lt. Datenblatt 0,8Vdd=4V) nicht aus. Also die MCP auf 3V3 
legen oder einen Pegelwandler dazwischen schalten.
Gast #6812004
Lesenswert?

Der Unwissende schrieb:
> Die PullUp-Wiederstände an den I2C-Anschlüssen sowie am DS18B20 gehen an
> 5V, somit ist ein abrauchen des ESP8266 gewährleistet.

Wie schon gesagt - der Nick passt.

Du machst dir ziemlich unbegründet Sorgen. Das Ohmsche Gesetz und ein 
Strom von 360µA werden verhindern, dass der ESP8266 jemals etwas von den 
5V zu sehen bekommt.
Gast #6812041
Lesenswert?

Forist schrieb:
> Wie schon gesagt - der Nick passt.

Urteile nicht nach Nicknamen, ansonsten: wer einen Schreibfehler findet 
kann ihn ruhig behalten - ansonsten zum Fundbüro bringen.

Forist schrieb:
> Das Ohmsche Gesetz und ein Strom von 360µA...

Wie kommst du auf den Strom von 360µA? Nach dieser Logik begrenze ich 
Den Strom von der Steckdose auf 360µA und klemme das an einen 
ESP-GPIO...

Das Datenblatt besagt VIHmax 3V6, aber das haben bestimmt noch viel 
unwissendere geschrieben...
#6812149
Lesenswert?

Chris K. schrieb:
> D3 GPIO2 und D4 GPIO2 sollten beim Boot from flash high sein.
> D4 ist aber undefiniert und könnte durch dein Optokopplermodul evtl. Low
> sein
> undefiniert ist auch D8 GPIO15 welcher low sein sollte.

D3 (GPIO0) muss beim Flash an GND gelegt werden. Wenn ich Ihn also durch 
einen Pullup auf High ziehe macht das doch nichts?
An die übrigen IO-Pins (D4-TX) habe ich jetzt noch 100k Pulldown 
eingeplant, um diese auf Low zu definieren.

Der Unwissende schrieb:
> Die PullUp-Wiederstände an den I2C-Anschlüssen sowie am DS18B20
> gehen an
> 5V, somit ist ein abrauchen des ESP8266 gewährleistet.
> Ein um klemmen auf 3V3 ist nur für den DS18B20 (dann auch Vdd des selben
> auf 3V3) eine Lösung, wenn die MCP23017 an 5V betrieben werden reicht
> der H-Level (lt. Datenblatt 0,8Vdd=4V) nicht aus. Also die MCP auf 3V3
> legen oder einen Pegelwandler dazwischen schalten.

Den DS18B20 sowie dessen Pullup habe ich an 3,3V umgeklemmt.
Den ein Pegelwandler für den I2C habe ich nach dem Vorbild (Seite 4) 
eingefügt:
https://www.nxp.com/docs/en/application-note/AN10441.pdf
#6812286
Lesenswert?

Severin F. schrieb:
> Chris K. schrieb:
>> D3 GPIO2 und D4 GPIO2 sollten beim Boot from flash high sein.
>> D4 ist aber undefiniert und könnte durch dein Optokopplermodul evtl. Low
>> sein
>> undefiniert ist auch D8 GPIO15 welcher low sein sollte.
>
> D3 (GPIO0) muss beim Flash an GND gelegt werden. Wenn ich Ihn also durch
> einen Pullup auf High ziehe macht das doch nichts?
> An die übrigen IO-Pins (D4-TX) habe ich jetzt noch 100k Pulldown
> eingeplant, um diese auf Low zu definieren.

Wieso ist jetzt D4 GPIO2 permanent auf low mit dem pulldown???
Zum boot sollte er doch auf high sein.
Gast #6813806
Lesenswert?

Eine letzte Anmerkung:

Da auf dem NodeMCU-Modul ein USB/Seriell- Baustein vorhanden ist würde 
ich den separaten Anschluss zum Flashen nochmal überdenken.
Die an den Steckplätzen für MCP23017 angegebenen Pin-Nummern passen zu 
keiner im Datenblatt aufgeführten Gehäuseform?!? Auch reicht nur GND für 
die Wahl der Bausteinadresse i.d.R. nicht aus - CMOS-Eingänge brauchen 
eindeutig definierte Pegel.
Die Verbindung VU(3) - Vin(15) hebelte m.E. die Funktion der Schutzdiode 
am USB-Anschluss aus.
#6813872
Lesenswert?

Chris K. schrieb:
> bootloader mode at startup or following reset.

Danke das Stichwort Bootloader hat mir gefehlt. Ist aber logisch, da der 
MC ja dann nie normal bootet. Ändere ich auf jedenfall ab, 
wahrscheinlich werde ich die IO Pins anders anordnen müssen.

Der Unwissende schrieb:
> Eine letzte Anmerkung:
>
> Da auf dem NodeMCU-Modul ein USB/Seriell- Baustein vorhanden ist würde
> ich den separaten Anschluss zum Flashen nochmal überdenken.

Stimmt habe ich total vergessen! Ist dementsprechend unnötig und wird 
entfernt.

> Die an den Steckplätzen für MCP23017 angegebenen Pin-Nummern passen zu
> keiner im Datenblatt aufgeführten Gehäuseform?!? Auch reicht nur GND für
> die Wahl der Bausteinadresse i.d.R. nicht aus - CMOS-Eingänge brauchen
> eindeutig definierte Pegel.
Ich nutze dieses Bauteil. Dort ist der MCP23017 drauf.
https://tasmota.github.io/docs/MCP230xx/
Über die Firmware Tasmota kann man die Pullup Widerstände ein oder 
ausschalten. Ich werde sie Einschalten, damit wenn ich die Taster 
schließe, die IO Pins an GND anliegen.

> Die Verbindung VU(3) - Vin(15) hebelte m.E. die Funktion der Schutzdiode
> am USB-Anschluss aus.

Eigentlich ist nur die Verbindung an VU (3) notwendig. da hast du recht.
Beitrag #6813887 wurde von einem Moderator gelöscht.
Gast #6814927
Lesenswert?

Severin F. schrieb:
>> Die Verbindung VU(3) - Vin(15) hebelte m.E. die Funktion der Schutzdiode
>> am USB-Anschluss aus.
>
> Eigentlich ist nur die Verbindung an VU (3) notwendig. da hast du recht.

Die 5V-Speisung nicht an VU legen sondern an Vin, da VU im DB als 
Ausgang bezeichnet ist!
Ein Modul mit dem MCP23017 scheint mir nicht Sinnvoll, sollte der 
Baustein warum auch immer mal gehimmelt werden musst du ein gleiches 
Modul beschaffen - bei Verwendung eines MCP23017 im SPDIP-Gehäuse mit 
Sockel ist ein Austausch weit einfacher.
Integrierte Pull-Up/Down sind eine feine Sache, beziehen sich aber nur 
auf GPA0-7 und GPB0-7 - die Adress-Select-Pins müssen entweder an GND 
oder VDD gelegt werden bzw. Alternativ Pull-Up und per Jumper an GND 
legen um während des einschaltens/zum initialisieren eine eindeutige 
Adresse zu gewährleisten.

Wie sieht der aktuelle Plan jetzt aus?
#6817099
Lesenswert?

Der Unwissende schrieb:
> Ein Modul mit dem MCP23017 scheint mir nicht Sinnvoll, sollte der
> Baustein warum auch immer mal gehimmelt werden musst du ein gleiches
> Modul beschaffen - bei Verwendung eines MCP23017 im SPDIP-Gehäuse mit
> Sockel ist ein Austausch weit einfacher.

Ich habe das Bauteil 4 Mal zuhause herumliegen :D
Daher das Bauteil :D

Der Unwissende schrieb:
> die Adress-Select-Pins müssen entweder an GND oder VDD gelegt werden bzw.
> Alternativ Pull-Up und per Jumper an GND
> legen um während des einschaltens/zum initialisieren eine eindeutige
> Adresse zu gewährleisten.

Die Adress-Select-Pins sind standartmäßig auf High, ich habe aber noch 
Jumper mit eingeplant, falls ich sie mal an GND legen muss. => 
Schaltplan 2x3 Stiftleiste mit der Bezeichnung A2-A0.

Der Unwissende schrieb:
> Wie sieht der aktuelle Plan jetzt aus?

Ist noch in Arbeit. Mein zwei Monate alter Sohn verhindert, dass ich 
mich mal intensiv reinfuchsen kann. Ich bin mir aktuell auch noch 
unsicher wegen dem PhotoMOS AQY212

Peter D. schrieb:
> Severin F. schrieb:
>> Jede Dosierpumpen braucht:
>> - im Leerlauf 0,14A
>> - unter Last 0,14A
>> - Blockiert 0,24A
>
> Da würde ich zum AQY212 raten, das macht die Schaltung einfacher und der
> kann bis 1A schalten. Vor die LED einen Widerstand, daß ~5mA fließen,
> das kann ein IO-Expander oft direkt treiben.

Verständisfragen:
LEDE Reverse Voltage ist die Spannung, die die LED bei "zurückfließendem 
Strom" aushält?
Die Dropout Voltage ist die Spannung, die die LED auf jedenfall 
benötigt, um zu leuchten?
Die Spannung der IO Pins des NodeMCU beträgt 3,3V. Das müsste ja dann 
ausreichen.
Pro Io Pin sind es max. 12mA. Brauch ich da dann überhaupt ein 
Vorwiderstand? Wenn ja wie hoch?
Angehängte Dateien:
#6817449
Lesenswert?

beim AQY212 gibt es ja verschiedene Varianten Ich hätte den AQY212EH 
genommen.
Was meint Ihr?

Anderes Thema: GPIO2 + GPIO15 muss ja beim Boot auf low sein. kann ich 
da vor den Vorwiderstand des AQY212 einfach noch einen Pull Down 
Widerstand von 100k machen?
Wenn nichts angeschlossen ist, übernehmen das Pull Down Widerstände auf 
dem NodeMCU board.
Sprich beim Boot schaut der IC ob GND anliegt und dann müsste er die 
GPIOs ausschalten. Leuchtet dann nicht auch für einen kurzen Moment die 
Diode im AQY212, sprich die Dosierpumpe läuft für ein kurzen Moment?

In den ersten versuchen der Schaltung, als ich noch Transistoren 
verwendete, führte dies dazu, dass der Transistor dauerhaft 
durchschaltete, und die Dosierpumpen an GPIO2+15 permanent liefen.

Was kann ich tu um das zu umgehen. Ich habe noch ein IO Pin frei 
(GPIO16).
Würde es was bringen die Optokoppler mit einem MosFET vom IO Pin zu 
trennen, und zwischen IO2+15 und MosFET je ein PullDown? Dadurch hätten 
quasi wenn der ESP bootet die IO2+15 keine verbindung zu ihren 
Optokoppler, und wenn dann nach dem regulären Boot der übrige IO Pin 
(GPIO16) die MosFETs für die verbindung von GPIO2+15 zu ihren AQY212 
herstellt?
Gast #6817468
Lesenswert?

Irgendwie drehst du dich mit den Logik-Pegeln die beim Bootvorgang 
anliegen sollen im Kreis und stolperst ständig mit dem umsetzen der 
Anforderung.

Alternativer Denkansatz:
Die 2 MCP23017 ergeben zusammen 32 GPIO - wenn du 7 davon für die AQY212 
verwendest (mit 820Ω Vorwiderstand wg. 5V)?

Severin F. schrieb:
> Bauteile die per Kabel angeschlossen werden sollen:
> - Analog zu Digital Wandler ADS1115 16-Bit ADC
> - Optional: 0,96" OLED SSD1306 Display
beide Positionen laufen an I2C, du hast sogar die Wahl ob mit 3V3 oder 
5V
#6817523
Lesenswert?

Okay. Ich denke ich werde einen zweites NodeMCU Board einbauen... ich 
habe noch mehrere rumliegen. dann kann ich ohne Probleme alle 
Optokoppler an die Pins des ESP anschließen. Und ich habe je genügend 
Pins für die I2C und die Einhaltung des Bootloaders.

EDIT: die Dosierpumpen muss ich alle über die ESP GIPOs direkt 
anschließen, da ich dort einen timer (Pulsetime), wodurch die Pins auch 
maximal nur so lange auf on bleiben, wie über die Pulsetime vorher 
festgelegt wurde.
Gast #6817686
Lesenswert?

Severin F. schrieb:
> Anderes Thema: GPIO2 + GPIO15 muss ja beim Boot auf low sein. kann ich
> da vor den Vorwiderstand des AQY212 einfach noch einen Pull Down
> Widerstand von 100k machen?

Im Prinzip ja, aber bitte nicht 100kΩ. Das ist zu hochohmig, damit 
riskierst du, dass der zufällige Pegel beim Einschalten zu langsam auf 
LOW runter geht und dass Radiowellen (möglicherweise auch vom Modul 
selbst) einstreuen.

Die meisten Module verwenden 10 oder 12kΩ, was auch schon grenzwertig 
ist. Ist hatte zu hause in der Bastelecke vereinzelte Fälle, wo das 
schon nicht mehr zuverlässig arbeitete. Seit ich auf 2,2kΩ runter 
gegangen bin, habe ich keine Fehlfunktionen mehr.

Severin F. schrieb:
> Leuchtet dann nicht auch für einen kurzen Moment die
> Diode im AQY212, sprich die Dosierpumpe läuft für ein kurzen Moment?

GPIO2 und GPIO15 "flackern", damit meine ich, dass sie beim Start 
mehrmals zwischen LOW und HIGH hin und her wechseln. Also ja.

Severin F. schrieb:
> In den ersten versuchen der Schaltung, als ich noch Transistoren
> verwendete, führte dies dazu, dass der Transistor dauerhaft
> durchschaltete, und die Dosierpumpen an GPIO2+15 permanent liefen.

Dann hast du wohl etwas falsch gemacht. Ohne wenigstens den aktuellen 
Schaltplan zu zeigen, kann ich dir nicht helfen. Fotos von beiden Seiten 
der Platinen und der Verkabelung wären auch gut.

> Was kann ich tu um das zu umgehen.

Ein anderen Chip mit mehr freien Pins verwenden. Zum Beispiel den ESP32 
oder eine Port-Expander über I²C Bus dran hängen. Die MCP23017 und 
PCF8574 sind bekannte Klassiker. Aber auch einfache Schieberegister wie 
74HCT595 (Ausgabe) und 74HCT165, oder auch den TPIC6B595 welcher direkt 
Relais ansteuern kann.

Ich verwende den ESP8266 gerne in Kombination mit einem 8 Bit AVR, der 
kann viele Sachen besser:

- I/O Pins erweitern
- Ruckelfreie PWM erzeugen
- Zeitspannen ohne sporadische Fehler messen
- Analoge Spannungen sehr viel genauer messen
- Touch Sensoren abfragen
- Den ESP überwachen und ggf. zurück setzen
- Strom sparen indem der ESP nur bei Bedarf VCC bekommt
- Tiefentladeschutz für den Akku
- Kann mit schwachem Akku noch sinnvolles tun, wo der ESP schon versagen 
würde.
- 5V Spannungspegel (gut für Lasten an MOSFET)

um nur ein paar (Anwendungs-spezifische) Beispiele zu nennen. Eventuell 
kannst du dir dann sogar das Programmieren des ESP Chips selbst 
ersparen, wenn du alles auf der AT-Firmware aufbaust. Manchen Leuten 
hier bereitet dieser Gedanke zwar Kopfschmerzen, aber das zuverlässig 
hin zu bekommen ist gar nicht so schwer. Früher oder später muss man 
sowieso mal lernen, asynchrone Kommunikation zu beherrschen, und das ist 
echt kein Hexenwerk.
#6817903
Lesenswert?

Stefan ⛄ F. schrieb:
> Ohne wenigstens den aktuellen
> Schaltplan zu zeigen, kann ich dir nicht helfen.

Also, auf dem Bild ist jetzt der aktuelle Schaltplan.

Ich habe übersichtlichere Schematic für das NodeMCU und den MCP23017 
gefunden und eingebaut.

Ich hoffe ich habe alles richtig eingebaut.
Bleibt nur nochmal die Frage mit dem Bootloader.

Geht das an GPIO2+15 (D2+D8) so, wie ich das jetzt im Schaltplan 
realisiert habe?

PS.: Ja ich weiß, es wäre besser den ESP32 zu verwenden.
Aber das würde wieder Stunden/Tage in Anspruch nehmen, meine 
Programmierung anzupassen und da sagt definitiv meine Frau nein x.X
Angehängte Dateien:
Moderator (Firma: Titel) Persönliche Seite #6818006
Lesenswert?

Severin F. schrieb:
> auf dem Bild ist jetzt der aktuelle Schaltplan.
Wenn es schon so unheimlich eng hergeht (unnötigerweise nur links unten, 
denn rechts oben ist gähnende Leere...): warum machst du nicht einfach 
ein paar mehr von diesen GND-Symbolen an passende Stellen im Schaltplan?

Und, tada: es gibt auch Symbole für Versorgungsspanungen, sodass man 
sich auch da das angestrengte und fehlerträchtige Verfolgen von 
Leitungen sparen kann.

Der Unwissende schrieb:
> bei Verwendung eines MCP23017 im SPDIP-Gehäuse mit Sockel ist ein Austausch
> weit einfacher.
Und man bekommt nicht noch einen Supersonder-Formfaktor in sein Design. 
Von irgendeiner Firma, die das Ding morgen nicht mehr herstellt.

Severin F. schrieb:
> Ich habe das Bauteil 4 Mal zuhause herumliegen :D
Das ist der Grund für beliebte Fehlentscheidungen...
Gast #6818011
Lesenswert?

Stefan ⛄ F. schrieb:
> Beide Pins flackern beim Botten.

Sollte natürlich "beim Booten" heissen.

Mir ist noch etwas aufgefallen:

Du ziehst GPIO2 durch den 4,7kΩ Widerstand herunter. Auch den GPIO15 
ziehst du durch den Optokoppler herunter.

Beides darf nicht sein, so kann der ESP8266 nicht booten.

R11 und R12 müssen sowieso nach 3,3V gehen, nicht nach GND. Schau dir 
nochmal genau an, wie diese bidirektionalen I²C Pegelwandler aufgebaut 
sein müssen: https://elektro.turanis.de/html/prj146/example.png

Wenn du das korrigierst, löst sich auch das Problem mit dem Pegel beim 
Start in Luft auf.

Was den GPIO15 angeht: Ändere es so:
1
           430Ω
2
GPIO15 o---[===]---|<|---o 3,3V

Dann geht der Ausgang natürlich bei LOW Pegel an, anstatt bei HIGH. Das 
musst du in der Programmierung berücksichtigen. Flackern wird er aber 
trotzdem.
#6818319
Lesenswert?

Lothar M. schrieb:
> Severin F. schrieb:
>
> Wenn es schon so unheimlich eng hergeht (unnötigerweise nur links unten,
> denn rechts oben ist gähnende Leere...): warum machst du nicht einfach
> ein paar mehr von diesen GND-Symbolen an passende Stellen im Schaltplan?
> Und, tada: es gibt auch Symbole für Versorgungsspanungen, sodass man
> sich auch da das angestrengte und fehlerträchtige Verfolgen von
> Leitungen sparen kann.
>
> Und man bekommt nicht noch einen Supersonder-Formfaktor in sein Design.
> Von irgendeiner Firma, die das Ding morgen nicht mehr herstellt.
>
> Das ist der Grund für beliebte Fehlentscheidungen...

Severin F. schrieb:
> Falls ich irgendwelche Sachen total falsch gemacht habe, bitte nicht zu
> Streng sein. Ich bin gelernter Metzger und habe mich da versucht so gut
> wie es nur geht selbst rein zu lesen.

Entschuldige bitte, dass noch kein Meister vom Himmel gefallen ist... 
-.-
Aber Ja, ich werde mich die Tage nochmal daran setzen um zu versuchen 
den Schaltplan übersichtlicher zu gestalten.

Stefan ⛄ F. schrieb:
> Wenn du das korrigierst, löst sich auch das Problem mit dem Pegel beim
> Start in Luft auf.

I2c ist doch an GPIO4+5, was beim Booten egal ist?
GPIO2+15 habe ich doch auf GND gezogen. Siehe nochmal auf dem Bild.
Und ja es ist eng und unübersichtlich. Ich werde das korrigieren.

Ich werde es mir die Tage trotzdem nochmal anschauen, wo da mein Fehler 
liegt.
Angehängte Dateien:
Gast #6818321
Lesenswert?

Severin F. schrieb:
> Geht das an GPIO2+15 (D2+D8) so, wie ich das jetzt im Schaltplan
> realisiert habe?

Severin F. schrieb:
> I2c ist doch an GPIO4+5

Ja was denn nun? Du bringst mich ganz ducheinander! An deinem Schaltplan 
sehe ich eine Leitung von D2 durch Q8 nach SDA. Diese meinte ich.

In meinen Unterlagen sehe ich nun aber, das GPIO2=D4 ist, nicht D2. An 
D4 hast du auch so eine Leistungs-Stufe mit Optokoppler. Dann gilt da 
halt ebenfalls das bereits gesagte.

Dennoch sind R11 und R12 falsch, das müssen Pull-Up Widerstände sein.

Ist dir bekannt, dass du beim ESP8266 beliebige Pins für I²C benutzen 
kannst, weil das eh in Software (Bit-Banging) implementiert wurde? Wenn 
du allerdings für SCK einen der "flackernden" Pins verwendest, könnte 
das unangenehme Seiteneffekte an den angeschlossenen IC's auslösen. Ich 
würde es vorher mal auf dem Steckbrett antesten. Im Zweifelsfall google 
mal nach "freitakten".
#6818325
Lesenswert?

Stefan ⛄ F. schrieb:
> Severin F. schrieb:
>
>> Geht das an GPIO2+15 (D2+D8) so, wie ich das jetzt im Schaltplan
>> realisiert habe?
>
> Severin F. schrieb:
>
>> I2c ist doch an GPIO4+5
>
> Ja was denn nun? An deinem Schaltplan sehe ich eine Leitung von D2 durch
> Q8 nach SDA.

Das was ich da geschrieben habe war falsch.
Entschuldige bitte.
Ich meinte dort oben GPIO2+15 (D4+D8)
D1 =GPIO5
D2 = GPIO4
#6822001
Lesenswert?

Stefan ⛄ F. schrieb:
> Severin F. schrieb:
>> GPIO2+15 habe ich doch auf GND gezogen
>
> Genau das darfst du nicht tun, dann startet der ESP nicht. Wenn du sie
> irgendwohin ziehst, dann auf HIGH. Nur dann funktioniert es.

Also ich habe den Schaltplan etwas aufgeräumt und nochmal den I2C- 
Pegelwandler nach deiner Vorlage angepasst.

GPIO 2+15 habe ich mit einer Diode Dazwischen auf High gezogen.

Ich hoffe das passt nun.
Angehängte Dateien:
Gast #6822115
Lesenswert?

Wofür sind D8 und D9?

So können die Pull-Up Widerstände nicht wirken. Vermutlich wolltest du 
sie anders herum drehen. Aber dennoch: Wozu sind die Dioden gut?

Selbst wenn du sie weglassen würdest bliebe da noch das problem, dass 
die Optokoppler die Spannung herunter ziehen. Das ergibt dann keinen 
eindeutigen HIGH Pegel mehr. Der ESP verlangt >= 2,5V als HIGH Pegel.
Gast #6822136
Lesenswert?

Da ist aber schon wieder etwas durcheinander / missverstanden worden. 
Nochmal ganz von vorne.

Der ESP8266 verlangt einen HIGH pegel mit mindestens 2,5V. Ich zitiere 
von meiner Homepage:

> D3, GPIO0
> Low beim Start aktiviert Firmware-Upload, hat 12 kΩ Pull-Up Widerstand
> und einen Taster mit 470 Ω nach GND, flackert beim Start.

Du hast da einen zusätzlichen Pull-Up Widerstand dran gehängt und den 
DS1820. Hier ist es wichtig, dass der DS1820 diesen Pin beim Starten 
nicht unter 2,5V herunter zieht. Ist das der fall? Ich kenne diesen Chip 
nicht, das musst du selber klären.

> TxD, D10, GPIO1
> Serieller Ausgang des ESP über 470 Ω mit dem USB-UART verbunden, flackert
> beim Start, darf beim Start nicht auf Low gezogen werden

Du ziehst diesen Pin durch die Last des Optokopplers auf Low. Das darf 
nicht. Du musst ihn stattdessen hoch ziehen. Der Optokoppler gehört so 
angeschlossen:
1
GPIO1 o---[===]---|<|---o 3,3V

> D4, GPIO2
> Ist mit der blauen LED verbunden, die bei LOW Pegel leuchtet. Flackert
> beim Start. Muss beim Start high sein. Hat 12 kΩ Pull-Up Widerstand.
> Ausgang vom zweiten UART, der nur Ausgabe kann.

Du ziehst diesen Pin durch die Last des Optokopplers auf Low. Das darf 
nicht. Du musst ihn stattdessen hoch ziehen. Der Optokoppler gehört so 
angeschlossen:
1
GPIO2 o---[===]---|<|---o 3,3V

Außerdem hast du einen Pull-Up + Diode in deinem Plan, die unnötig sind, 
weil sich bereits in dem ESP8266 Modul ein Pull-Up befindet. Zudem fällt 
an der Diode zu viel Spannung ab (2,5V sind erforderlich).

> D8, GPIO15 (CS)
> Normaler I/O Pin oder SPI Chip Select, muss beim Start Low sein,
> hat 12 kΩ Pull-Down Widerstand, flackert beim Start.

Dieser Pin muss auf Low gezogen werden, so dass deine Beschaltung mit 
dem Optokoppler in Ordnung ist. Aber dein Pull-Up Widerstand (samt 
Diode) muss weg.
#6822199
Lesenswert?

Stefan ⛄ F. schrieb:
> Du hast da einen zusätzlichen Pull-Up Widerstand dran gehängt und den
> DS1820. Hier ist es wichtig, dass der DS1820 diesen Pin beim Starten
> nicht unter 2,5V herunter zieht. Ist das der fall? Ich kenne diesen Chip
> nicht, das musst du selber klären.

Ich weiß die genauen Volt nicht. Aber ich habe es eben probiert. mit dem 
Pullup (R10) an GPIO0/D3 bootet der ESP regulär.

Ich glaube ich habe es jetzt verstanden.
Auf dem NodeMCU sind ja schon Pull Up/Down widerstände, welche schon die 
richtigen Pegel geben.
Ich habe sie durch diese Beschaltung immer umgangen und ausgehebelt?


Stefan ⛄ F. schrieb:

> GPIO2 o---[===]---|<|---o 3,3V

> GPIO1 o---[===]---|<|---o 3,3V

Ich bin immer davon ausgegangen, dass wenn ich die Diode des 
Optokopplers einschalten will, dass ich es so aufbauen muss:

> GPIO1/2 o---[===]---|>|---o GND

Spirch: Strom fließt aus dem GPIO (ein/aus Schalter) durch den 
Widerstand+ Diode zu Ground. so wie bei allen anderen I/O Pins.
Aber bei GPIO1+2 wird dann quasi der Strom von der Spannungsquelle durch 
die Diode + Widerstand in den GPIO fließen. Dadurch ist beim booten der 
Pegel auf High und danach muss ich ihn in der Software ausschalten.

Kommt das in etwa hin?
Angehängte Dateien:
Gast #6822204
Lesenswert?

Severin F. schrieb:
> Spirch: Strom fließt aus dem GPIO (ein/aus Schalter) durch den
> Widerstand+ Diode zu Ground. so wie bei allen anderen I/O Pins.

Anders herum geht es auch: Strom fließt vom Optokoppler in den GPIO Pin 
hinein. Der muss dann halt auf LOW geschaltet werden, damit der 
Optokoppler leuchtet.

> muss ich ihn in der Software ausschalten.

Trenne dich mal von der Vorstellung von LOW=aus und HIGH=an. Das kommt 
ganz auf die Schaltung an und ich wage zu behaupten, dass die Mehrheit 
der Schaltungen LOW=an verwendet.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren