Forum: Mikrocontroller und Digitale Elektronik LED Cluster dimmen mit Raspberry Pi


von Peter (Gast)


Lesenswert?

Hallo zusammen,

ich hoffe ich bin im richtigen Forum gelandet. Gleich vorneweg ich habe 
eigentlich nicht viel mit Elektronik am Hut und bin daher auch nicht 
übermäßig bewandert, weshalb ich hier Hilfe suche.

Meine Projekt: Ich würde gerne High Power LEDs über einen Raspberry Pi 
steuern. Dabei habe ich 4 LED cluster mit je max. 4 LED. Insgesamt 
werden es nicht mehr als 12 - 15 LEDs werden. Die Stromaufnahme je LED 
beträgt max. ca. 750mA bei 2,3V. Die Aufgabe besteht darin diese LED 
Cluster mit dem Raspberry zu dimmen. D.h. ich brauche 4 Kanäle, die je 
ein Cluster ansprechen.

Soweit ich gelesen habe, ist die eleganteste Methode zum Dimmen von 
LEDs, die Stromaufnahme zu limitieren. In dem Zusammenhang fällt der 
Begriff Konstantstromquelle sehr häufig (Quelle: 
http://www.elektronikpraxis.vogel.de/themen/hardwareentwicklung/powermanagement/stromversorgung/articles/377381/index2.html).

Jetzt habe ich mir angeschaut, was der Raspberry an Ausgängen bietet. 
An/Aus Ausgänge fallen aus. Dann habe ich gesehen, dass es einen PWM 
Ausgang. Aber da es ja nur einer ist, nützt es relativ wenig. Insofern 
scheint der I2C recht interessant.

Jetzt fallen mir folgende Ideen ein. Entweder ich habe 4 Schaltungen, 
die über ein Signal des I2C Buses mir einen bestimmten Maximalstrom zur 
Verfügung stellen, um die LED zu dimmen. Oder falls das so nicht 
funktioniert, könnte man doch über den I2C Bus einen IC ansprechen der 
ein bestimmtes PWM Signal erzeugt aus dem dann wieder über einen 
weiteren IC/Schaltung ein bestimmter Strom generiert wird.

Fragen:
1. Sind meine Gedankengänge überhaupt so richtig?
2. Wenn ja, was haltet ihr von meinen Vorschlägen zu Realisierung? Macht 
das überhaupt so Sinn?
3. Geht es vielleicht einfacher?
4. Wo kann ich konkrete Beispiele finden, um meine Idee umzusetzen?

Vielen Dank für eure Hilfe!

Peter

von Holger (Gast)


Lesenswert?

Peter schrieb:
> 3. Geht es vielleicht einfacher?

Raspberry Pi weglassen und ein Kommerzielles Steuergerät einsetzen.

von Ich selber (Gast)


Lesenswert?

Peter schrieb:
> 4. Wo kann ich konkrete Beispiele finden, um meine Idee umzusetzen?

Vor knapp 2 Jahren gab es bei ELV mal ein Modul für 16 LED über I2C
Ausgangsleitung war geringer, kann man jedoch zusammenfassen.

Module anderer Leistung:--> Datenblatt des Herstellers auf dem Modul.
Oder Internet: PWM,I2C LED .....

von Lukas P. (fuzzhead) Benutzerseite


Lesenswert?

Hallo,

wie bastelig soll/darf es denn sein? Willst Du ein fertiges Modul, oder 
hast Du Lust, selbst was zu bauen?

Arbeite grade an einem änlichen Projekt: per I²C gesteuerte 
Konstantstromquellen für LED-Leisten. Als Grundlage möchte ich Step-Down 
Spannungsregler Module von ebay verwenden und eine externe 
Stromstärkenbegrenzungsregelung dranbauen, deren Soll mit einem 
Mikrocontroller eingestellt wird.

Das könntest Du für Dein Projekt auch verwenden. Hat bestimmt schonmal 
jemand so gemacht - evtl. hat ja jemand einen Link zu einem ähnlichen 
Projekt. Ich stelle meine Ergebnisse auf jeden Fall hier im Forum vor, 
wenn sie dann vorliegen.

Lukas

von Peter (Gast)


Angehängte Dateien:

Lesenswert?

Puh...das waren jetzt schon allerhand Antworten.

@Holger: Kannst du denn ein kommerzielles Produkt empfehlen? Ich möchte 
ja eine Software schreiben, die die Dimmung in Abhängigkeit 
verschiedener Faktoren (z.B. Tageszeit) vornimmt. Ich kann mir nur 
schwer vorstellen, dass man einen freiprogrammierbaren LED Dimmer kaufen 
kann.

@Ich selber: Hast du einen Link dafür?

@Lukas P.: Ich hätte schon Lust auch etwas selber zu bauen. Würde mich 
freuen, wenn du dein Projekt online stellt, sodass man es sich anschauen 
kann.

Ich habe im Netz jetzt eine Schaltung gefunden, die ein PWM Signal in 
einen Konstantstrom umwandeln kann. Sowas wäre ja schon mal ein Ansatz. 
Ich habe die Schaltung als Bild angehangen. Leider habe ich sie noch 
nicht ganz verstanden. Soweit ich es laienhaft einschätzen kann, würde 
ich sagen, dass es sich um einen Impendanzwandler (OPV1) mit 
angeschlossenen Integrier (OPV2) handelt. Je länger die PWM Impulse 
desto höher die Spannung am MOSFET je mehr Strom kann fließen.

Ist dieser Gedanke richtig?

Warum sind am Eingang der Schaltung Widerstände und Kondensatoren? Sieht 
für mich aus wie 2 Tiefpässe.

Welche Rolle spielen R7, R8 und R10?

von Peter (Gast)


Lesenswert?

Oh...und für was ist dieser Impedanzwandler überhaupt da?

von Lukas P. (fuzzhead) Benutzerseite


Lesenswert?

Peter schrieb:
> Soweit ich es laienhaft einschätzen kann, würde
> ich sagen, dass es sich um einen Impendanzwandler (OPV1) mit
> angeschlossenen Integrier (OPV2) handelt. Je länger die PWM Impulse
> desto höher die Spannung am MOSFET je mehr Strom kann fließen.

Richtig erkannt sind die beiden RC-Glieder am Anfang Tiefpässe, die 
machen aus der PWM-Spannung eine fast konstante Gleichspannung. Der 
Impedanzwandler danach ist dafür da, dass der Spannungsteiler aus R9, 
R11 und R13 die mit der PWM und den Tiefpässen erzeugte Spannungsquelle 
nicht so sehr belastet. Die Widerstände R5, R6 sind zusammen 100kOhm, 
der Spannungsteiler zusammen 410kOhm. D.h., ohne den OpAmp IC2b als 
Puffer, könnte am Ausgang des Spannungsteilers nur 410/(200+410)=2/3 der 
Spannung erzeugt werden.

R10 ist ein Shunt; er wird verwendet, um den Strom durch die LED zu 
messen. Nach dem Ohmschen Gesetz: wenn über den Widerstand R10 ein Strom 
Iled fließt, fällt über ihn eine Spannung Ushunt = R10 * Iled ab. Bei 
750mA sind das Ushunt = 0.2Ohm * 750mA = 150mV. Der OpAmp IC2a 
vergleicht diese Spannung mit der per PWM und Tiefpass erzeugten und 
durch den Spannungsteiler reduzierten Spannung (Sollspannung). Liegt sie 
höher, reduziert er die Spannung am Ausgang und damit die Leitfähigkeit 
des MOSFETs, bis der Strom soweit sinkt, dass die Spannung, die über R10 
abfällt, wieder der Sollspannung entspricht. Ohne den Spannungsteiler 
könntest Du nicht die volle Auflösung des PWM-Ausgangs nutzen, z.B. 
5V-0V in 256 Schritten, sondern müsstest Spannungen von 0.15V-0V 
erzeugen, das entspräche nur ~8 Schritten. Du hättest also anstatt 256 
nur 8 Helligkeitsstufen zur Verfügung.

R7 sorgt dafür, dass nicht jedes kleine Zittern am Ausgang von IC2a den 
Mosfet in Aufruhr versetzt. R8 tut das gleiche, nur für Shuntspannung -> 
+-Eingang von IC2a.

So zumindest verstehe ich die Schaltung. Korrigiert mich, wenn ich 
falsch liege.

Mein Ansatz ist Ähnlich: ich würde, statt mit dem MOSFET Leistung zu 
Verbraten, direkt die Spannungsquelle (Buck-Regler) drosseln. Außerdem 
würde ich glaube ich auf IC2b verzichten und die Tiefpässe niederohmiger 
dimensionieren. Über ~500kOhm Spannungsteiler fließen bei 5V 
Ausgangsspannung nur 0.1mA, das kann der PWM-Ausgang von jedem 
Controller problemlos liefern. Der OpAmp-Eingang schluckt maximal 
0.001mA, sollte also den Spannungsteiler auch nicht zu sehr belasten.

Wie eilig hast Du es denn? Meinen Ansatz testen und die richtigen 
Bauteilwerte ermitteln kann ich frühestens in zwei Wochen, muss noch auf 
eine Bestellung warten.

Lukas

von Draco (Gast)


Lesenswert?

Und mal so am Rande: Der Raspberry bringt KEIN Hardwarebasierenden PWM 
mit sich. Die die verfügbar sind, werden für das Soundmodul auf dem 
Raspi verwendet - es ist kein PWM Kanal auf die GPIO ausgeführt. Eine 
Softwarelösung dürfte aber rein theoretisch für deinen Anspruch, ein 
paar LEDs zu dimmen, ausreichen.

Halt falsch... gelogen: GPIO18 scheint wohl ein HW PWM Chanel 
enthalten.. doof nur das er da auch den SCL CLK führt.

von Lukas P. (fuzzhead) Benutzerseite


Lesenswert?

> doof nur das er da auch den SCL CLK führt.

Ist kein Problem. Peter möchte ohnehin mehr als einen Kanal betreiben, 
also muss er die PWM extern generieren.

von Peter (Gast)


Lesenswert?

Lukas P. schrieb:
> Ist kein Problem. Peter möchte ohnehin mehr als einen Kanal betreiben,
> also muss er die PWM extern generieren.

Korrekt.

Ich habe es eigentlich überhaupt nicht eilig. Mich interessiert nur das 
Thema gerade. Es ist mehr die Neugierde die mich antreibt als der Drang 
das Projekt sofort umzusetzen. Deswegen bin ich dann auch auf deine 
Ergebnisse gespannt;)

Ich würde gerne noch ein paar Fragen loswerden. Soweit ich informiert 
bin ändert der Tiefpass nichts an der Frequenz des Eingangsignals (PWM). 
Lediglich die Amplitude verkleinert sich mit ansteigender Frequenz. 
Eventuell entsteht auch noch eine Phasenverschiebung. Mein 
Schaltungsbeispiel ist angeblich für ein 15kHz Signal ausgelegt. Wenn 
ich jetzt von einem 15kHz Rechtecksignal ausgehe, dass zwischen 0 und 5V 
schwingt, komme ich rechnerisch (1/(1+(2*pi*f*R*C)^1)^1/2) für die 
Ausgangsspannung auf ca. 1,7% der Eingangsspannung. Da es zwei Tiefpässe 
hintereinader sind auf sogar nur 0,028% der Eingangsspannung. Für 5V 
würde das eine Amplitude von gerade mal 1mV ergeben. Ist die 
Rechnung/der Gedanke so richtig?

Selbst, wenn sich jetzt die Pulsweite ändert, ändert sich ja die 
Frequenz nicht und damit auch nicht die Spannung nach dem doppelten 
Tiefpass!?

Ich dachte IC2-a ist ein Integrierer, aber deiner Aussage nach gleicht 
er zwei Spannungen an. Woher weißt du das? Wie kann ich das sehen?

Btw die PWM Signal kann ich wohl ganz gut mit dem PCA9685 erzeugen. Hat 
16 Kanäle und lässt sich mit I2C ansprechen. Gibt es sogar als Modul zu 
kaufen.

von Alexander S. (esko) Benutzerseite


Lesenswert?

Zum Themenkomplex LED dimmen siehe diesen Artikel, da steht drin, wie es 
geht und wie nicht:
LED-Fading

Peter schrieb:
> Soweit ich informiert bin ändert der Tiefpass nichts
> an der Frequenz des Eingangsignals (PWM).

Korrekt.

> Lediglich die Amplitude verkleinert sich mit ansteigender Frequenz.

Falsch, das Signal wird nur geglättet.
Siehe die Grundlagenartikel:
Pulsweitenmodulation
PWM-Glättung/Digital-Analog-Wandlung mit RC-Tiefpass

Wenn du der Sache wirklich auf den Grund gehen willst, empfehle ich dir 
eine LTspice Simulation.

> Ich dachte IC2-a ist ein Integrierer, aber deiner Aussage nach gleicht
> er zwei Spannungen an.

Um die Schaltung um IC2-a zu verswtehen, lass erstmal R7, R8 und C13 
weg, dann erschließt es sich vielleicht. Dazu auch diesen Artikel 
durcharbeiten:
Operationsverstärker-Grundschaltungen

> Woher weißt du das? Wie kann ich das sehen?

Lange Erfahrung.

: Bearbeitet durch User
von Lukas P. (fuzzhead) Benutzerseite


Lesenswert?

Alexander: Der 'LED-Fading'-Artikel berücksichtigt aber in keinster 
Weise, dass die Flussspannung der LED stark mit der Temperatur variiert. 
Mit dem im Artikel gewählten Aufbau werden in der LED (worst case rot) 
maximal ~6mW Wärmeleistung frei (I=~3mA), die kann man aber idR. bei 
36mW (20mA) betreiben. Die Demo wird also in einem sicheren 
Leistungsbereich durchgeführt, deshalb ist der Betrieb bei 
Konstantspannung ok. Peters LEDs hingegen (~750mA, mutmaßlich bei 
Spannungen >10V), werden sich schon deutlich aufheizen. Er will sie 
(denke ich) auch nicht nur bei unter halber Leistung laufen lassen oder 
den Kühlkörper überdimensionieren. Wenns blöd läuft, gehen die LEDs ihm 
mit einer Konstantspannungsquelle thermisch durch und verbraten. Es gibt 
also drei Optionen: ausreichend niedrig gewählte Konstantspannung mit 
Vorwiderstand und dann mit in Serie geschaltetem MOSFET per PWM dimmen, 
eine schnell schaltbare Konstantstromquelle und damit per PWM dimmen, 
oder eben doch eine variierbare Stromquelle. Der Erste Ansatz hat den 
Nachteil, dass bei den Strömen im Vorwiderstand schon deutlich Leistung 
verbraten wird. Je kleiner man ihn wählt, desto mehr variiert der 
LED-Strom mit der Flussspannung. Außerdem braucht man eine 
Konstantspannungsquelle, die die schnellen Leistungssprünge 
ausregulieren kann, oder muss die PWM-Frequenz senken. Den zweiten 
Ansatz werde ich mal in meine Versuchsreihe aufnehmen, den dritten habe 
ich aktuelle in Planung. Wenn meine Ausführungen fehlerhaft sind, 
widersprich mir gerne - habe das nicht studiert.

Peter: die Dämpfung durch den Tiefpass ist, wie Du schon gesagt hast, 
frequenzabhängig. Stell Dir das Prozedere einfach so vor: Der 
PWM-Ausgang vom IC lädt (Ausgang high) und entlädt (ausgang low) den 
Kondensator durch den Widerstand. Der Widerstand begrenzt die maximale 
Lade-/Entladegeschwindigkeit. Es fließt umso mehr Lade/Entladestrom, je 
größer die die Differenz zwischen der Spannung am Kondensator und der 
des PWM-Ausgangs ist (siehe Ohmsches Gesetz). Dadurch bewegt sich die 
Kondensatorspannung in jedem PWM-Taktzyklus etwas näher an den 
Mittelwert der Spannung am PWM-Ausgang. Wenn Du das nicht verstehst, 
überlege Dir mal für verschiedene Extremfälle, wie Lade- und 
Entladestrom wären. Z.B. Kondensator a) komplett entladen, b) auf Vhigh 
geladen, c) auf Vhigh/2 geladen, jeweils das PWM-on/off-Verhältnis bei 
50/50. Wie groß (qualitativ) ist der Ladestrom jeweils im on-Abschnitt, 
wie groß der Entladestrom im off-Abschnitt. Wie ist das Verhältnis der 
Ströme? Lädt oder entlädt der Kondensator unterm Strich?

>> Woher weißt du das? Wie kann ich das sehen?
> Lange Erfahrung.
Naja ... :) Habe vor ein paar Tagen ähnliche Schaltungen aus Shunt, 
OpAmp und 'Leistungsdrossler' gesehen, bei denen der Leistungsdrossler 
nicht mit einem MOSSFET, sondern mit einem Schaltnetzteil realisiert 
wurde. Habe nur interpretiert, dass hier das gleiche Prinzip umgesetzt 
worden ist. Was genau die Aufgabe des Kondensators ist, bin ich mir 
nicht sicher. Ich vermute, er soll die Steuerspannung des MOSFET 
stabilisieren. EDIT: Wobei, dann hätte man ihn mit dem anderen Beinchen 
an Masse gelegt. Hat also schon was mit Rückkopplung zu tun. Hm ...

: Bearbeitet durch User
von Alexander S. (esko) Benutzerseite


Lesenswert?

Lukas P. schrieb:
> Alexander: Der 'LED-Fading'-Artikel berücksichtigt aber in keinster
> Weise, dass die Flussspannung der LED stark mit der Temperatur variiert.
> [...] deshalb ist der Betrieb bei Konstantspannung ok.

Das muss er auch nicht, dort wird die LED exemplarisch über einen 
Vorwiderstand betrieben, nicht mit einer Konstantspannung wie du 
schreibst.
>> eine LED mittels Vorwiderstand von ca. 1 kΩ an Pin D5 anschliessen

Bei größeren Leistungen würde man eine Konstantstromquelle verwenden und 
diese per PWM takten.

> Es gibt also drei Optionen: [...]

Korrekt.

> Der Erste Ansatz hat den Nachteil, dass bei den Strömen im
> Vorwiderstand schon deutlich Leistung verbraten wird. Je kleiner man
> ihn wählt, desto mehr variiert der LED-Strom mit der Flussspannung.

Richtig.

> Wenn meine Ausführungen fehlerhaft sind, widersprich mir

Das stimmt so schon.
Auch deine Ausführungen zum Tiefpass sind schön anschaulich und korrekt.

von -.- (Gast)


Lesenswert?

Mein Plan wäre es grade das:

http://www.aliexpress.com/item/16-Channel-12-bit-PWM-Servo-shield-I2C-interface-PCA9685-Adafruit-Compatible-new/32230165641.html

mit denen zu kombinieren:

http://www.ebay.de/itm/161668576454

leider lässt der chinese mit dem i2c pwm modul noch auf sich warten...

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.