Grüße, Die Frage in aller kürze: kann ich (gleiches Netzteil) einfach zwei ESP32er nehmen und einen ihrer Pins mit einer WS2812B Stripe verbinden, und sie so abwechselnd (bzw. im schlimmsten Falle parallel) steuern, oder könnte das zu einem Hardwaredefekt an einem der Teile führen? Hintergrund: ich habe WS2812b Stripes hinter meinen Monitoren angebracht, die ich über einen ESP32 steuere. Nun würde ich gern einen Monitor zwischendurch mit Hyperion (Ambilight) betreiben, und dafür natürlich die gleichen Stripes nutzen. Es gibt auch schon fertigen Code für einen ESP32. Den würde ich nun aber ungern in meinen bestehenden Code einpflegen. Also ist die Idee einfach einen zweiten ESP für das Ambilight zu bespielen, und ihn parallel zum ersten ESP an den gleichen Eingang der Stripe hängen. Alles am gleichen Netzteil. Dadurch würde aber natürlich alles was der eine ESP ausgibt am Pin des anderen ESP ankommen. Im schlimmsten Fall würden beide ESPs gleichzeitig ein Signal ausgeben. Dass die LED dann nur irgendeinen Mist anzeigt ist mir in dem Fall dann egal. Wichtig ist nur dass dabei nichts kaputt geht. Kann ich das ohne weiteres machen, oder spricht etwas dagegen?
Hans M. schrieb: > Im schlimmsten Fall würden beide ESPs gleichzeitig > ein Signal ausgeben. Genau so ist es; wobei das noch nicht wirklich schlimm wäre, solange beide ESPs dasselbe Signal ausgeben (also beide immer gleichzeitig High oder Low). Aber was passiert, wenn einer Low (0V) und der andere gleichzeitig High (3.3V) ausgeben? Klingt irgendwie nach Kurzschluß?! - Da gibts dann keinerlei Garantie, ob bzw. wie lange das beide Ausgängspins bzw. deren ESPs überleben. Die einfachste Lösung (abgesehen davon doch nur einen ESP zu verwenden und den Ambilight-Code doch mit Deiner SW zu fusionieren) wäre ein simpler mechanischer Umschalter mit dem Du auswählen kannst, welcher ESP die LEDs steuern soll. Falls Dir das händische Umschalten zu umständlich ist, kannst Du statt des Umschalters auch ein Relais mit einem Umschaltkontakt verwenden, das der ESP mit Deiner SW drauf ansteuert, wenn er die Kontrolle über die LEDs übernehmen will; im nicht angesteuerten Fall hat dann der Ambilight ESP die Kontrolle. Vollelektronische Lösungen fangen mit zwei simplen (Schottky)dioden an, die Du jeweils zwischen ESP-Ausgang und WS2812-Eingang schaltest. Damit verhinderst Du jedenfalls einen Kurzschluß zwischen den beiden Ausgangspins und so kann zumindest nix mehr kaputt gehen; aber obs funktioniert ist - falls Du die LED-Streifen mit 5V betreibst - leider mehr oder weniger Glückssache. Strenggenommen ist es nämlich eigentlich schon Glückssache, wenn sich mit 5V betriebene WS2812 überhaupt von einem mit 3,3V laufenden ESP ansteuern lassen. Laut Datenblatt brauchen WS2812 am Eingang nämlich mindestens 0,7 x Vcc um sicher ein High zu erkennen, macht bei 5V Versorgung also min. 3,5V; die 3,3V des ESP reichen also theoretisch dafür nicht aus, in der Praxis klappts meistens trotzdem. Wenn aber jetzt der Spannungsabfall der Diode (0,3V bei einer Schottky) auch noch dazu bzw. wegkommt, dann wirds natürlich noch deutlich kritischer und Du brauchst wahrscheinlich entweder einen Pegelwandler oder Du senkst die Versorgungsspannung der LED-Streifen etwas ab (theoretisch auf 4,25V, praktisch werden wohl zumindest 4,5V auch noch gehen).
und warum nicht einfach ein ODER ? https://www.reichelt.de/vierfache-2-eingangs-exklusiv-oder-gatter-2--6-v-dil-14-74hc-86-p3300.html?search=oder+gatter
Hans M. schrieb: > Kann ich das ohne weiteres machen, oder spricht etwas dagegen? Nein JA > Dadurch würde aber natürlich alles was der eine ESP ausgibt am Pin des > anderen ESP ankommen. Im schlimmsten Fall würden beide ESPs gleichzeitig > ein Signal ausgeben. Der schlimmste Fall tritt nicht ein, wenn beide ESPs gleichzeitig ein Signal ausgeben, sondern wenn sie entgegengesetzte Pegel ausgeben (-> Kurzschluss). Eine von den Datenpegeln saubere Lösung wäre, beide Signal mit einem ODER-Gatter zu verknüpfen, das gleichzeitig als Pegelwandler dient, z.B. ein 74HCT1G32 Kauderwelsch gibt es trotzdem, wenn beide ESP32 etwas ausgeben. Um das zu vermeiden, bräuchtest du ein zusätzliches Umschaltsignal
Matthias 🟠. schrieb: > und warum nicht einfach ein ODER ? > https://www.reichelt.de/vierfache-2-eingangs-exklusiv-oder-gatter-2--6-v-dil-14-74hc-86-p3300.html?search=oder+gatter Weil ein 74HC86 den 3.3V-Ausgangspegel der ESP nicht an die 5V-Pegel der WS2812B anpasst.
Wolfgang schrieb: > Matthias 🟠. schrieb: >> und warum nicht einfach ein ODER ? >> > https://www.reichelt.de/vierfache-2-eingangs-exklusiv-oder-gatter-2--6-v-dil-14-74hc-86-p3300.html?search=oder+gatter > > Weil ein 74HC86 den 3.3V-Ausgangspegel der ESP nicht an die 5V-Pegel der > WS2812B anpasst. Ok, ich streiche meinen Vorschlag und frage einfach: Und warum nicht ein geeignetes ODER Gatter?
Grüße, erstmal vielen Dank für die ganzen Antworten - klar, ein Oder-Gater, da bin ich beim ersten Durchdenken gar nicht drauf gekommen :D Sprich statt dem Modul kann ich ja dann an einem ESP zwei Eingangspins und einen dazugehörigen Ausgangspin definieren und den Task der das Oder auswertet entsprechend hoch priorisieren.. oder einfach einen Arduino zum Oder-Auswerter machen, den hab ich eh noch hier rum fliegen. Und da kann ich dann auch setzen dass der eine Eingang direkt ignoriert wird, wenn der andere aktuell was rein bekommt. Perfekte Lösung und schnell umgesetzt - Danke nochmal! Kurz zu den anderen Sachen: Hochpegeln auf 5V ist bei meinen 2812ern von BTF Lighting nicht nötig, selbst wenn ich sehr schnelle Abläufe programmiere. Hab einige Meter davon an verschiedenen ESP32-Controllern im Einsatz, laufen alle 1a. Seither kaufe ich auch nur noch die, über Aliexpress mit ~20€ für 5m/60 auch absolut im Rahmen. Und haben im Gegensatz zu den günstigen sogar nen ziemlich ordentlicher Blauton. @Karl WLED wäre auch wieder eine Implementierung. Mein 2812er Code ist relativ komplex da er delays für WakeLight, SleepLight, Rainbow über mehrere Controller hinweg und langsames Dimmen mit berechnet und auch mit x von 10-Leds schalten arbeitet. Hintergrund ist dass die Leds bspw. bei R:G:B 20:5:0 und 200:50:0 trotz dem gleichen Verhältnis nicht die exakt gleiche Lichtfarbe haben. Um im Raum dann die gleiche Farbe zu haben nehme ich die also den höchsten Wert den ich irgendwo im Raum setze, und schalte dann (teils auch passend zum Lux Sensor in bestimmten Ecken) nur x von 10 LEDs an und die anderen aus. Dabei wird immer geschaut dass alle LEDs ca gleich lang an sind, damit sie gleichmässig "abgenutzt" werden. Die Berechnungen werden dabei alle in den ESPs selbst gemacht.
Reichen nicht einfach zwei Ausgangswiderstände je an den beiden Ports? Wie kurzschlussfest sind die ESP? LG, Sebastian
Hans M. schrieb: > auswertet entsprechend hoch priorisieren.. oder einfach einen Arduino > zum Oder-Auswerter machen, den hab ich eh noch hier rum fliegen. Und da Du willst nicht ernsthaft ein ODER-Gatter auf einem Arduino programmieren? Das toppt ja noch das Led-Blinken per Software :D Was für ein Gatter Du nehmen kannst hängt auch ein wenig davon ab, welchen Pegel das Ausgangssignal des ESP im Ruhezustand hat. Nach meinem Verständnis des WS28xx Protokolls sollte es LOW sein, das dürfte auch der Fall sein wenn der ESP garkeine Spannung bekommt. Notfalls noch einen sanften Pulldown (z.B. 10kOhm) nach Masse vorsehen. Wenn also der Ausgang des ESPs im Ruhezustand LOW ist, würdest Du tatsächlich ein ODER-Gatter nehmen, und zwar am besten eines in HCT Ausführung, wenn Du das dann mit 5V versorgst (anstatt der 3,3V) hast Du auch gleich noch einen Pegelwandler. Das muss vlt. nicht unbedingt sein, kann aber auch nicht schaden. Und einen 100 Ohm Widerstand zwischen den Ausgang des ODER-Gatters und dem Stripe sollte man auch machen zur Sicherheit. Ein 74HCT32 (4x ODER Gatter) als DIP kostet bei Reichelt 65 ct. Dafür lohnt es sich nichtmal an etwas anderes zu denken.
Früher (tm) hätte man einen einfachen Wechselschalter genommen. Die Logikvariante ohne Mechanik heißt Multiplexer, z.B. 74HC153. Für einen Kanal kann man das auch aus einem 74HC00 basteln. Denn dann ist GARANTIERT immer nur eine Datenquelle am Ausgang aktiv, egal was die andere macht! Ein ODER-Gatter ist Unfug.
@Markus M.: Bei Reichelt kommen halt noch 5,95€ Versandkosten hinzu, und auch in der Bucht lieg ich selbst bei einem einzelnen Bauteil bei gut drei Euro, während die Arduninos hier haufenweise rum fliegen. Ausserdem hab ich schon fertige Gehäuse für den Arduino gedruckt und muss nicht noch ein neues Design erstellen, vom Zusammenlöten der Schaltung ganz zu schweigen. Wenn ich den Pin 2 und 3 am Arduino nehme und ihn nach x Sekunden ohne Signal in den Sleep gehen lasse ist er auch was Strom angeht ein Fliegengewicht. Daher verstehe ich natürlich was du meinst, habe aber auch meine Gründe hier auf die Kanonen-Lösung zu setzen :)
:
Bearbeitet durch User
Da man beim Kauf von LED Streifen meisten nicht weiß, ob man die zu 3,3V kompatible Version bekommen wird, würde ich sowieso einen Pegelwandler empfehlen. Den kann man auch gleich als ODER Gatter auslegen, das wäre ein 74LVC1G32. Bei Aliexpress bekommst du 10 Stück davon für 5 Euro (incl. Versand)
Hans M. schrieb: > oder einfach einen Arduino zum Oder-Auswerter machen, den > hab ich eh noch hier rum fliegen Ist ein Argument. Ich hätte das allerdings nicht hier hin geschrieben, denn es hat zu viel Shitstorm Potential.
Stefan F. schrieb: > Da man beim Kauf von LED Streifen meisten nicht weiß, ob man die zu 3,3V > kompatible Version bekommen wird, würde ich sowieso einen Pegelwandler > empfehlen. Ich kauf seit gut fünf Jahren die WS2812b (und andere) von BTF Lighting bei Aliexpress. Egal ob pro Meter 30, 60, 72 oder die 8x32 Matrix, alle haben die gleiche Farbe, alle laufen perfekt mit den 3,3V von den ESP32ern. Mit den 72ern hab ich mehrere Lavalampen gebastelt wo die verschiedenen Modi die Farben durchgehend ändern, da sind null Fehler zu sehen. BTF ist aber auch nicht nur ein Händler sondern stellt seine 2812er selbst her. Bei anderen Herstellern / Händlern unbedingt Pegelwandler dazwischen, klare Sache :)
:
Bearbeitet durch User
Hans M. schrieb: > Sprich statt dem Modul kann ich ja dann an einem ESP zwei Eingangspins > und einen dazugehörigen Ausgangspin definieren und den Task der das Oder > auswertet entsprechend hoch priorisieren.. Hans M. schrieb: > Daher verstehe ich natürlich was du meinst, habe aber auch meine Gründe > hier auf die Kanonen-Lösung zu setzen :) Ein Grund, den du in deine Überlegung mit einbeziehen solltest, ist die Spezifikation für den physical Layer des Datenprotokolls für die Steuerung der LED-Controller. Die Zeiten von unter einer Mikrosekunde mit Toleranzen von 150ns wirst du wohl kaum per Soft-ODER-Gatter umgesetzt kriegen.
Wolfgang schrieb: > Die Zeiten von unter einer Mikrosekunde > mit Toleranzen von 150ns wirst du wohl kaum per Soft-ODER-Gatter > umgesetzt kriegen. MacGyver würde sich davon nicht aufhalten lassen.
Wolfgang schrieb: > Ein Grund, den du in deine Überlegung mit einbeziehen solltest, ist die > Spezifikation für den physical Layer des Datenprotokolls für die > Steuerung der LED-Controller. Die Zeiten von unter einer Mikrosekunde > mit Toleranzen von 150ns wirst du wohl kaum per Soft-ODER-Gatter > umgesetzt kriegen. Guter Hinweis, dann wird der Arduino das Absenden über die FastLED übernehmen und ich schaufel nur die Arrays zu ihm rüber, das ist ja fix eingebaut. Danke dir.
Falk B. schrieb: > Früher (tm) hätte man einen einfachen Wechselschalter genommen. Die > Logikvariante ohne Mechanik heißt Multiplexer, z.B. 74HC153. Für einen > Kanal kann man das auch aus einem 74HC00 basteln. Denn dann ist > GARANTIERT immer nur eine Datenquelle am Ausgang aktiv, egal was die > andere macht! Ein ODER-Gatter ist Unfug. Gute Idee! Wieder was gelernt. Danke.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.