Forum: Mikrocontroller und Digitale Elektronik 4 Kanal PWM für RGBW-LED Strip mit nodemcu Dev-Board (ESP-8266)


von Alex C. (Gast)


Lesenswert?

Hallo,
ich habe vor kurzem das auf einem ESP8266 (ESP-12) basierende nodemcu 
Dev Board entdeckt und möchte damit einen RGBW-LED Strip über PWM in der 
Helligkeit steuern.
Meine Fragen dazu sind:
* Ich habe gelesen, dass der ESP8266 genau einen PWM-Pin hat, in der 
nodemcu Doku ist aber die Rede von maximal 3 Pins, die so verwendet 
werden können. Ist das dann eine Software PWM oder verstehe ich da was 
falsch?
* Ich brauche für die RGBW-LEDs vier PWM-Kanäle. Daher würden selbst die 
evtl. vorhandenen 3 nicht ausreichen. Was kann ich machen, um einen 
einzelnen vierten Kanal zu realisieren?

Ich hoffe, ich habe mich verständlich ausgedrückt, ich fange gerade erst 
an, mich mit dem Thema zu beschäftigen.

Danke an alle Helfer!

von dummy (Gast)


Lesenswert?

>Was kann ich machen, um einen
>einzelnen vierten Kanal zu realisieren?

Das erste Mal in deinem Leben selber ein Programm schreiben?

von Paul A. (wandkletterer)


Lesenswert?

Oder WS2812B bzw APA102 nehmen

von Alex C. (Gast)


Lesenswert?

> Das erste Mal in deinem Leben selber ein Programm schreiben?

Die Antwort verstehe ich nicht. Meine Frage war ja gerade, ob die 
vorhandenen PWM Pins im Board auch software-gesteuert sind. Ich kenne 
mich nun nicht so aus aber ich habe beim Recherchieren über diverse 
Probleme bei diesen Software-Lösungen gelesen.
Ich würde mir schon zutrauen sowas selber zu schreiben, wenn das 
unproblematisch ist.

> Oder WS2812B bzw APA102 nehmen

Wenn ich das richtig sehe dann sind das ja schon LEDs oder? Ich hatte 
eigentlich überlegt ob man einfach einen externen PWM-Controller dafür 
über den I2C Bus steuern kann. Gibt es sowas? Zum Dimmen der LEDs 
bräuchte man ja vielleicht was um die 150Hz.

Danke euch...

von M. V. (-_-)


Lesenswert?

Alexander C. schrieb:
> * Ich habe gelesen, dass der ESP8266 genau einen PWM-Pin hat, in der
> nodemcu Doku ist aber die Rede von maximal 3 Pins, die so verwendet
> werden können. Ist das dann eine Software PWM oder verstehe ich da was
> falsch?

Die Doku lügt. Lies die Sources, die Beschränkung auf drei gibt es 
nicht, es sind tatsächlich 6.

Und ja, das "Datenblatt" lügt auch, das ist keine Hardwarepwm.

-mv

von Alex C. (Gast)


Lesenswert?

> Die Doku lügt. Lies die Sources, die Beschränkung auf drei gibt es
> nicht, es sind tatsächlich 6.

Kannst du mir einen Link geben? Ich habe dazu bisher nichts gefunden.
Danke im Voraus!

von M. V. (-_-)


Lesenswert?

Alexander C. schrieb:
> Kannst du mir einen Link geben? Ich habe dazu bisher nichts gefunden.
> Danke im Voraus!

Repository clonen und fröhlich mit ack-grep o.ä. durchforsten macht sich 
gut. Fraglich beispielsweise hier:

https://github.com/nodemcu/nodemcu-firmware/blob/master/app/driver/pwm.c

Das Header-File dazu ist auch interessant, da sieht man, dass es wohl 
tatsächlich mal 3 waren, auskommentiert. (jedenfalls in der Version, die 
ich hier noch ausgecheckt habe)

-mv

von Frank K. (fchk)


Lesenswert?

Alexander C. schrieb:

> Wenn ich das richtig sehe dann sind das ja schon LEDs oder? Ich hatte
> eigentlich überlegt ob man einfach einen externen PWM-Controller dafür
> über den I2C Bus steuern kann. Gibt es sowas? Zum Dimmen der LEDs
> bräuchte man ja vielleicht was um die 150Hz.

Dir kann geholfen werden:

http://cache.nxp.com/documents/data_sheet/PCA9632.pdf

fchk

von Thomas (Gast)


Lesenswert?

Alex C. schrieb:
> einen externen PWM-Controller dafür
> über den I2C Bus steuern kann. Gibt es sowas? Zum Dimmen der LEDs
> bräuchte man ja vielleicht was um die 150Hz.

Moin moin,

ich habe mit einem 16 Kanal 12-Bit PWM Servomotor Treiber IIC Modul am 
Arduino RGB-LED´s betrieben. Mit entsprechender Leistungselektronik 
dahinter kein Problem. Am ESP bisher nicht getestet.

Link:
https://www.amazon.de/Demarkt-PCA9685-Servomotor-Treiber-Roboter-Schnittstelle-Blue/dp/B07BDB2992/ref=sr_1_1?ie=UTF8&qid=1529010625&sr=8-1&keywords=16+channel+pwm

Zurück zu deiner Ursprungsfrage: Wie viele PWM Ausgänge?
Du schreibst, du hast einen:
>ESP8266 (ESP-12)
Da habe ich direkt nichts gefunden. Die meisten Typen haben hinter der 
12  noch einen Buchstaben z.B. (ESP-12E). Mit dem kompletten Typ nach 
pinout gegoogelt sollte aufschluss geben ;-)

LG aus dem Norden,
Thomas

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.