mal unabhängig ob die Pins nutzbar sind, habe ich die Schaltung mal exemplarisch auf einem Breadboard aufgesteckt und geknipst
Was bei dir fehlt ist die Masseverbindung zwischen Arduino und NodeMCU
der rote Draht geht zum Arduino TX, der schwarze zum Arduino GND, der weiße als Mittelabgriff vom Spannungsteiler zum RX der NodeMCU und das blaue Kabel verbindet die GND Rail ebenfalls mit der NodeMCU ... das blaue vermisse ich bei deinen Fotos nämlich
hab aber leider keinen Arduino zum selber probieren da, also keine Gewähr auf Funktion
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Wenn ich neue Dinge anfange und eine Anleitung habe, baue ich die Schaltung so, wie sie in der Anleitung drin ist. Zur Not nehme ich sogar noch dieselben Farben für die Verbindungskabel. Dann nehme ich exakt den Code aus der Anleitung und schaue mir das Ergebnis an.
Und noch mal was zur Bibliothek, @HaWe. Du hast natürlich nicht unrecht, es steht im Netz so geschrieben. Ich habe aber nie eine andere Version installiert, sondern habe die vom Arduino genommen. Es gibt wohl bei den unterschiedlichen Versionen teils Probleme mit den Geschwindigkeiten, vom nodeMCU (>80MHz). Ich konnte aber keine Probleme feststellen, ich verwende im Code auch nur 4800, als Geschwindigkeit. Aber die Geschwindigkeit ist ja egal, jedenfalls für grundlegende Sachen.
Wieder zurück: wenn ich das dann erfolgreich nachgebaut und ausprobiert habe, dann erst gehe ich dran und fange an, Dinge nach meinen Vorstellungen zu verändern. Gerade wenn man Anfänger ist, im Programmieren und Hardwarebereich, erleidet man jede Menge Probleme, wenn man von den Vorgaben abweicht. Das fängt bei Massekabeln zwischen den Geräten an, geht weiter bei evtl. Spannungsteilern die ich einbaue, wo keine sind, geht weiter mit anderen Softwarebibliotheken und anderen Geschwindigkeiten (hier Kommunikation), zieht sich dann über Schreibfehler (Syntax) im Quellcode und hört evtl dann auf, weil ich nicht mehr weiter weiß. Deshalb habe ich schon ganz zu Anfang geschrieben, dass er nochmal von vorn anfängt. Alles abbauen, durchatmen, Kaffee holen, die Bilder ausdrucken oder wie auch immer, den Code kopieren in einen eigenen Sketch, die Schaltung exakt nachbauen. Da ist nichts dran. Eine Masse-Leitung und ein Kommunikationskabel und 5 Zeilen Code. Wenn es dann noch nicht funktioniert, muss man sehen, woran das liegt. Da gibt es dann ja u.U. verschiedene Gründe.
Wenn der Testaufbau erfolgreich war, kann man Änderungen vornehmen. Aber dann auch bitte eine nach der andern! nicht zwei oder drei auf einmal und wundern warum es nicht funktioniert.
Beim Aufspielen des Sketch auf das nodeMCU un den Arduino muss man wohl auch aufpassen, dass man die richtigen Geräte auswählt. Weiß der Teufel, was da noch alles für Fehler zustande kommen können.
Aller Anfang ist leider schwer, das musste jeder irgendwann mal lernen. Aber da hilft nur Mühe geben und zu versuchen, die Dinge zu verstehen. Ist ja schließlich über mehrere Seiten alles beschrieben und diskutiert worden, kann man also in Ruhe lesen. Wenn man Dinge nicht versteht, muss man dann gezielt fragen, warum das eine so ist und das andere so. Aber Geduld ist das wichtigste und der Glaube daran, dass man es hinbekommen wird.
So ein Thema hatten wir schon mal, dass jemand meinte die Übertragung von UDP-Paketen mit dem nodeMCU wäre ein Problem. Da waren es letztlich ähnliche Fallstricke, wie ich eben geschrieben habe, die zum Misserfolg führten.
Zur Pegelanpassung:
Nein, nicht falsch angeschlossen auf dem Bild, dass ich vom Aufbau gemacht habe. Der Grund steht im Thread, kann man nachlesen. Es gibt für einen Versuch hier vier Möglichkeiten: nur mit Widerstand den Pegel anpassen, mit Spannungsteiler den Pegel anpassen, mit gekauftem Pegelwandler den Pegel anpassen und gar nicht den Pegel anpassen. Alle Möglichkeiten haben bei mir funktioniert. Keine der Möglichkeiten ist "falsch", man muss nur wissen, wie man sie einsetzt.
MfG
- - - Aktualisiert - - -
Sehe ich das falsch, dass beide Widerstände keine Verbindung miteinander haben? Sieht vielleicht auch nur so aus.
Im Übrigen hatte ich 220k und 470k in Reihe (weil ich keine 680k bis 700k hatte), kann nicht genau erkennen, was Du für Werte genommen hast.
Vom Arduino kommen bei HIGH-Pegel 5V, die über den Widerstand (680k) fließen. Nach dem Widerstand (oder eben den zwei in Reihe) müssen dann zwischen 2.7V und 3.2V anliegen. Liegen dort weniger an, könnte es mit dem nodeMCU zu Schwierigkeiten bei der Pegelerkennung kommen. Ich bin nicht sicher, aber die Grenze müsste bei 2.5V liegen, da sollte man sicher drüber bleiben.
Zur Not und ohne Gewähr: das Kabel vom Arduino-Ausgang direkt mit dem D2 des nodeMCU verbinden, ohne was dazwischen (bei mir hat es so auch funktioniert, Erklärung dafür steht im Thread). Also einfach GND mit GND und den zweiten Draht, statt über Widerstände, direkt an D2 des nodeMCU.
Spannungsteiler:
Das kam damals von Ceos:
Wenn ich mich recht entsinne, funktionierte das auch.also 5V TX -> 4kOhm -> 3.3V RX + 6kOhm -> GND
MfG
Geändert von Moppi (04.04.2019 um 13:28 Uhr) Grund: Korrektur
Ich verfolge den Thread nun schon eine Weile und werde das Gefühl nicht los, dass hier relativ ziellos rumgefrickelt wird.
Meine Frage dazu: Woran erkennst du eigentlich, dass es nicht funktioniert? Du hast oben geschrieben, du erhältst nur "Platzhalter". Was soll das sein? Die netten Quadrate, die ein Serial Monitor anzeigt, wenn er die Signale nicht richtig versteht?
Du sendest die Daten vom Arduino zum ESP und dann von dort weiter zum Serial Monitor auf dem PC... Woher weißt du, dass der Fehler in der Übertragung zwischen Arduino und ESP liegt?
Wie wäre es, wenn du das Problem erstmal systematisch eingrenzt.
Arduino an den PC und testen, ob die Signale überhaupt gesendet werden. Mit geringen Baudraten anfangen.
Mit einer LED sollte man sehen können, ob überhaupt Signale auf die Leitung gegeben werden. (an der Hardwareschnittstelle des Arduino ist ja auch eine dran).
Mit Loopback-Kable schauen, ob der PC an sich selbst Daaten schicken kann.
Anschließen ESP an den PC und schauen, ob Signale an den ESP gesendet werden können. In einem Testprogramm einfachen Code schreiben, der mit einer LED anzeigt, ob ob ein Dateneingang registriert wird. Später ASCII Codes senden und die LED entsprechend dem Code blinken lassen, um zu sehen, was ankommt.
Dann die beiden Geräte direkt verbinden und schauen, ob die Daten dann ankommen (wieder mit LED-Blinken zur Prüfung)
Erst dann den Code so abwandeln, wie du ihn brauchst.
Ich nehme an, einen Logicanalyzer oder Oszi hast du nicht. Sonst könnte man es sich noch einfacher machen.
Seitenlang immer wieder zu betonen "ich hab alles richtig gemacht, aber es geht trotzdem nicht" ist halt wenig ergiebig.
@ Moppi:
ich hatte mich immer auf MEINE gepostete Schaltung mit Spannungsteiler bezogen mit den dort angegebenen Widerstandswerten 33k+47k, nur Spannungsteiler (oder richtige Levelshifter) funktionieren nach meiner (langjährigen) Erfahrung mit ARM MCUS von Arduino und Raspi wirklich zuverlässig.
Nach meinen Erfahrungen funktionieren aber auch 10k+15k.
Geht man deutlich höher, wird das Signal zu schwach.
Geht man deutlich niedriger, werden die Rechteck-Impulse zu schwammig.
Mit Vorwiderständen OHNE Spannungsteiler erniedrigst du nicht die Spannung von 5V auf 3.3V sondern verringerst nur die Stromstärke der zu hohen 5V Spannung, das ist nicht lege artis.
@Gnom67:
wenn man die Verbindungen richtig steckt und funktionierenden Code (wie offenbar den von Moppi) verwendet, dann wäre zu erwarten, dass es auch 100%ig funktioniert.
Das wäre IMO als allererstes einmal zu bewerkstelligen, und daran hat es bisher ja schon gehapert.
Funktioniert es dann NICHT, muss man den Fehler weiter eingrenzen, was IMO aber nicht zu erwarten wäre.
PS,
als Board sollte man den core
nodeMCU 1.0
in der aktuellsten Version installieren und auswählen.
Geändert von HaWe (04.04.2019 um 15:16 Uhr)
Ich hab auch gar nicht den Spannungsteiler in Frage gestellt. Aber an sowas muss ja nun auch kein Aufbau scheitern. Sorry, wenn ich das mal sage, aber wer schon Probleme hat, einen Spannungsteiler anzuschließen, wird sich mit der Sache nicht ganz leicht tun.
Statt beharrlich fußstampfend zu sagen: "Menno! Ich habs doch alles richtig gemacht, aber es geht trotzdem nicht!", wäre es vielleicht angebracht, mal zu schauen, WAS ÜBERHAUPT geht. Vielleicht hat er sich die IOs des ESP schon längst zerschossen mit den 5 Volt. Oder der Fehler liegt ganz woanders. Ich habe kürzlich an einem µC getüftelt und letztlich herausgefunden, dass die Pinbezeichnungen im Datenblatt falsch sind. Da kann man sich einen Wolf suchen. (Ich hab aber alles ganz korrekt angeschlossen... und es ging trotzdem nicht! Menno!!!)
Also, da würd ich doch erstmal schauen, was das beschoppte Teil TUT und nicht dauernd drauf rumreiten, was es NICHT TUT!
wo hast du denn die ESP-Tx/Arduino-Rx Verbindung? Die OHNE Spannungsteiler? (HIMMEL!!)
Und welche Widerstandswerte hast du für den Spannungsteiler verwendet?
@GNOM: wenn unser OP noch nicht mal die Boards korrekt verkabeln kann, wie man es ihm hier zeigt, dann werden auch andere Tests nichts bringen...![]()
Sehe ich das in deinem Code richtig, dass Pin 2 als Tx konfiguriert ist? Das Kabel steckt doch auf dem Bild nicht in Pin 2 ???
Du hast wschl recht!Zitat von [B
Ich wäre auch dafür, NIE die GPIO Nummern zu verwenden, sondern IMMER die D-Nummern, auch im Code.
Dort muss es dann ntl D2 bzw. D1 heißen (statt GPIO 4 oder 5) und schon gar nicht 2 oder 1 !!
PS:
man kann also immer noch konstatieren:
alles exakt richtig ist es hier noch absout nicht!
Lesezeichen