Forum: Mikrocontroller und Digitale Elektronik USB-Lichterkette mit ESP8266 smart machen


von Axel E. (axel_e)


Angehängte Dateien:

Lesenswert?

Tag zusammen,

ich habe recht günstige LED-Lichterketten mit USB-Anschluss ergattert, 
die mit einer IR-Fernbedienung geschaltet werden können. Ich hätte diese 
gerne an die USB-Ausgänge meiner schaltbaren Steckdosen gesteckt, aber 
damit kann ich sie nicht in einem vernünftigen Modus anschalten (der 
zuletzt ausgewählte wird nicht gemerkt). Die Lichterketten haben 120 
LEDs (zur Verschaltung siehe unten).

Um sie dennoch in die Heimautomation integrieren zu können, würde ich 
sie gerne mit einem ESP8266 schalten (davon liegen genügend rum, und mit 
esphome kann ich sie gut in meinen Home Assistant integrieren). Da sie 
mit einem USB-Stecker betrieben werden, war meine Vermutung, dass sie 
auch am ESP direkt ohne Schalttransistoren betrieben werden können - es 
scheint sich um ultra low power LEDs zu handeln, wobei weder Verpackung 
noch sonst etwas über die Stromaufnahme aussagen (wei gesagt: billig).

Die Lichterketten sind so aufgebaut, dass immer zwei LEDs gegenläufig 
angeordnet sind. Mein Ansatz wäre jetzt gewesen, eine H-Brücke zu bauen 
mit vier Transistoren und diese über zwei GPIO-Pins zu treiben (dazu gab 
es auch schon den Beitrag "Lichterkette Spannung umkehren", 
an dem ich mich orientiert habe). Die 5V Versorgungsspannung würde ich 
vom Vin-Pin der NodeMCU abgreifen wollen, die da ja anliegen, wenn ich 
sie an einem USB-Netzteil betreibe.

Auf dem ESP8266 hängen sie an D5 (GPIO14) und D6 (GPIO12), mit esphome 
sind die als output des Typs esp8266_pwm eingerichtet und als Light 
(platform monochromatic) eingerichtet. Aus dem Home Assistant raus kann 
ich sie schalten und messe dann auch ca. 2.2V an den Ausgängen, je 
nachdem welchen der zwei GPIOs ich schalte (bzw. 0V wenn beide an sind; 
Oszi habe ich keines zur Verfügung).

Leider bleiben die LEDs dunkel. Ich vermute, dass der Strom nicht 
ausreicht, um die LEDs zu treiben. Wie finde ich das denn am schlauesten 
raus?

An dem Original-USB-Adapter mit Schaltung liegen übrigens auch nur 
2.6-2.7V an (hab das vorhin mal gemessen).

Und ja, ich bin totaler N00b, will mir das ja aber grad anhand von 
meinen Ideen beibringen...

Schaltplan hängt an.

: Bearbeitet durch User
von Daniel D. (danielduese)


Lesenswert?

Kürzester Programmcode:
Du nimmst 6 Servomotoren, die du mit dem ESP ansteuerst und drückst 
damit auf der Fernbedienung rum. :-)

von Axel E. (axel_e)


Lesenswert?

Daniel D. schrieb:
> Kürzester Programmcode:
> Du nimmst 6 Servomotoren, die du mit dem ESP ansteuerst und drückst
> damit auf der Fernbedienung rum. :-)

Dafür würde einer reichen, mit dem ich den Taster an der originalen 
Steuerung durchzykle ;-) Aber... äh, nein. :-D

von Daniel D. (danielduese)


Lesenswert?

Axel E. schrieb:
> Die 5V Versorgungsspannung würde ich vom Vin-Pin der NodeMCU abgreifen
> wollen, die da ja anliegen, wenn ich sie an einem USB-Netzteil betreibe.

Damit schrottest du den MC. Die Lichterkette braucht die 5V aus einem 
Netzteil. Wenn die Strom aus dem USB Stecker zieht dann vermutlich <= 2A
Wie die einzelnen LEDs angesteuert werden hängt von den bebauten ICs ab. 
Da wir nichts über deine Lichterkette wissen (Hersteller, Typ...) kann 
man natürlich keine Aussage machen.
Ist der Empfänger in der LED integriert oder steckt die Lichterkette 
Mittels USB im Empfänger?

: Bearbeitet durch User
von Axel E. (axel_e)


Lesenswert?

Daniel D. schrieb:
> Ist der Empfänger in der LED integriert oder steckt die Lichterkette
> Mittels USB im Empfänger?

Die Lichterkette ist direkt an den Empfänger angelötet, ebenso wie der 
USB-Stecker. Im Prinzip handelt es sich um diese hier: 
https://www.amazon.de/Fotoclips-Lichterkette-Schlafzimmer-Geburtstag-Dekoration/dp/B09GG6JQDY 
(Bezeichnung an der Kette ist Oreunik Model: USB-120LED-WH, aber dazu 
findet man nichts mehr).

Warum schrotte ich den MC damit? Zieht das zuviel Last? Ich dachte, die 
5V liegen direkt vom USB an und gehen nicht über den µC, der wird ja 
über einen Spannungswandler mit 3.3V versorgt, oder?

von Wolfgang H. (eierschale)


Lesenswert?

> Auf dem ESP8266 hängen sie an D5 (GPIO14) und D6 (GPIO12), mit esphome
> sind die als output des Typs esp8266_pwm eingerichtet und als Light
> (platform monochromatic) eingerichtet. Aus dem Home Assistant raus kann
> ich sie schalten und messe dann auch ca. 2.2V an den Ausgängen, je
> nachdem welchen der zwei GPIOs ich schalte (bzw. 0V wenn beide an sind;
> Oszi habe ich keines zur Verfügung).
>
> Leider bleiben die LEDs dunkel. Ich vermute, dass der Strom nicht
> ausreicht, um die LEDs zu treiben. Wie finde ich das denn am schlauesten
> raus?
Am Plusanschluss kommen 2,2V an. Am Minusanschluss wird etwa 1V 
anliegen, wenn der Port af LOW liegt. Macht eine Differenz von 1,2V. Je 
nach Leuchtfarbe braucht eine LED aber ab 2V (rot) bis über 3V (blau).

von Rainer W. (rawi)


Lesenswert?

Axel E. schrieb:
> Leider bleiben die LEDs dunkel. Ich vermute,

Das ist nicht weiter verwunderlich.
Der BC337 ist ein NPN-BJT. Wenn du dem 3.3V an seine Basis gibst, können 
an seinem Emitter kaum mehr als 2.6V rauskommen (nachmessen). Abzüglich 
der U_CE des LowSide Schalters bleiben dann für die LED um die 2.3V. 
Falls die Lichterkette nicht aus 90er-Jahre roten LEDs besteht, reicht 
das nie und nimmer zum Leuchten.

von Axel E. (axel_e)


Angehängte Dateien:

Lesenswert?

Hier ein Bild vom Empfängermodul. Die Beschriftung auf dem IC ist 
ziemlich unleserlich (Urgh, sorry für das DNG).

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Axel E. schrieb:
> (Urgh, sorry für das DNG).

Warum löscht du den Beitrag dann nicht und postest ihn anschließend neu 
ohne DNG?

von Axel E. (axel_e)


Lesenswert?

hab's versucht, gibt ne DeniedException.

von Axel E. (axel_e)


Lesenswert?

Rainer W. schrieb:
[...]
> Das ist nicht weiter verwunderlich.
> Der BC337 ist ein NPN-BJT. Wenn du dem 3.3V an seine Basis gibst, können
> an seinem Emitter kaum mehr als 2.6V rauskommen (nachmessen). Abzüglich
> der U_CE des LowSide Schalters bleiben dann für die LED um die 2.3V.
> Falls die Lichterkette nicht aus 90er-Jahre roten LEDs besteht, reicht
> das nie und nimmer zum Leuchten.

Hm, danke. Wie könnte ich das lösen? Gibt es andere Transistoren oder 
ist die Grundidee schon falsch?

von Daniel D. (danielduese)


Lesenswert?

Axel E. schrieb:
> Model: USB-120LED-WH

Ich hatte nicht korrekt gelesen, dass du den VIN Pin meintest zum Strom 
ziehen. Ich gehe mal davon aus, dass da die 5V Spannung vom USB dran 
hängen. Ob du da aber die vollen 2A ziehen darfst musst du in der 
Spezifikation lesen. (oder wie viel die LEDs halt brauchen)

So wie ich das verstehe funktioniert die Letzte wie folgt:
-USB dient nur als Stromquelle
-ja die LEDs sind abwechselnd unterschiedlich herum gepolt. Dh. aber 
auch, dass sie alle parallel hängen
-die Helligkeit wird durch pwm Verfahren erzeugt, bei gleichmäßigen 
leuchten aller LEDs bekommen alle 1/2 Zeiteinheit Strom (du kannst also 
mit dem Multimeter nur die halbe Spannung messen die die LEDs beim 
Impuls abbekommen: Modus "alle an" beim Empfänger setzen, mit Multimeter 
Spannung und Strom messen und dabei eine Diode (N..) verwenden. Dann 
misst du die halben Werte)

Ich baue selten H-Brücke ohne fertigen H-Brückentreiber / Motortreiber 
oder zumindest Mosfets. Daher will ich mich in den Schaltplan nicht 
einmischen.
Mir einer einfachen fertigen H-Brücke liegst du jedenfalls auf der 
richtigen Seite.

: Bearbeitet durch User
Beitrag #7532792 wurde vom Autor gelöscht.
von Gerald H. (hase00)


Lesenswert?

Moin, ich habe ein ähnliches (oder das gleiche) Problem:
Ich habe eine LED-Kette, die eine Zweidrahtleitung ist und warme und 
weisse die LEDs 'anti-parallel' geschaltet sind. Das ganze hängt an 
einem US-Stick.
Ich habe mir mit einem Oszi angesehen, was auf der Leitung passiert:
Die warmen LEDs werden 'positiv' per PWM gesteuert, die weissen LEDs mit 
umgekehrter Polarisierung ebenfalls per PWM. Also zwei PWMs.

Das möchte ich wie mein Vorposter mit einem ESP nachbilden, habe aber 
keine Idee, wie zwei unabhängige PWMs gegenpolig auf einen 2-Leiter 
'packen' kann.

Laut Oszi habe ich +6V und -6V auf der Leitung. Keine Ahnung, wie das 
der USB-Stik erzeugt. Der wird ja mit 5V betrieben. Ladungspumpe?

Gerald.

von Daniel D. (danielduese)


Lesenswert?


von Axel E. (axel_e)


Lesenswert?

Daniel D. schrieb:
> 
https://www.mikrocontroller.net/articles/H-Br%C3%BCcken_%C3%9Cbersicht#Integrierte_H-Br%C3%BCcken

Fragen:
- Sehe ich das richtig, wenn ich z.B. einen 
https://www.mikrocontroller.net/part/TC4426 nehme und V_DD mit den 5V 
beschalte, die über USB reinkommen, dann kommen an den Ausgängen auch 
entsprechend die 5V (abzgl. der 0.025V) raus?
- Da der ja bei 2.4V schaltet, sollten die 3.3V des µC dafür ja taugen, 
oder? Trotzdem ein Vorwiderstand?
- V_min ist bei 4.5V, sind die 5V vom USB-Port dann nicht zu nahe an der 
unteren Grenze? Wenn ich am NodeMCUv2 V_in gg. GND messe, sehe ich 
4.58V.

von Rainer W. (rawi)


Lesenswert?

Axel E. schrieb:
> - Sehe ich das richtig, wenn ich z.B. einen
> https://www.mikrocontroller.net/part/TC4426 nehme und V_DD mit den 5V
> beschalte, die über USB reinkommen, dann kommen an den Ausgängen auch
> entsprechend die 5V (abzgl. der 0.025V) raus?

Das kommt auf den Strom an.

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
Noch kein Account? Hier anmelden.