Forum: Mikrocontroller und Digitale Elektronik Helligkeit schwankender Anzahls LEDs einstellen


von Nick (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich möchte gern die Helligkeit einer sich ändernden Anzahl von LEDs 
einstellen. Dabei sollen die LEDs weniger hell leuchten, wenns in der 
Umgebung dunkler wird. Das soll soweit gehen, dass die LEDs nur noch 
ganz schwach glimmen, wenn die Umgebung ganz finster ist. Die 
Resthelligkeit soll einstellbar sein.

Ich habe mir folgende Lösungsansätze überlegt:

1. Siehe Schaltplan im Anhang. Die automatische Helligkeitseinstellung 
erfolgt über einen Spannungsteiler mit einem LDR. Damit die LEDs nicht 
ganz ausgehen, wird eine "Grenzspannung" über einen zweiten 
Spannungsteiler eingestellt. Beide Spannungen werden mittels 
Schottky-Dioden verkuppelt und steuern einen MOSFET an.
Die LEDs werden über ein Shift-Register angesteuert. Bei voller 
Helligkeit sollen pro LED ca. 4mA fließen. Durch den MOSFET soll jetzt 
die "Versorgungsspannung" des Shift-Register-LED-Vorwiderstand-Gespann 
geregelt werden.
Ich habe schon mal einen Testaufbau dazu gemacht. Bei reduzierter 
Helligkeit via MOSFET konnte ich dabei beobachten, dass je mehr LEDs 
zugeschaltet wurden, die Helligkeit immer weiter abnahm... War im 
Prinzip zu erwarten, da der MOSFET hier als "Vorwiderstand" für alle 
LEDs wirkt und der Strom mit steigender Anzahl LEDs abnimmt.

2. Über eine Konstantstromquelle die vom Mikrocontroller angesteuert 
wird und somit dem Strom an die Anzahl der aktiven LEDs anpasst. Die 
Helligkeit müsste dann über einen ADC-Eingang des Mikrocontrollers 
eingelesen werden.
Problem wäre ein relativ hoher Sofware-Aufwand und viel Umsachlten, da 
sich die Anzhal der aktiven LEDs jede Sekunde ändern wird.

3. Über PWM. Allerdings kenne ich mich damit nicht aus. Weiterhin weiß 
ich nicht, was die Shift-Register davon halten werden, da der Aufbau des 
Systems Shift-Register-LED-Vorwiderstand eigentlich so bleiben soll.

Jetzt meine Frage: Was würdet ihr empfehlen oder kennt ihr noch eine 
bessere Lösung?

Vielen Dank im Voraus!

von Karl H. (kbuchegg)


Lesenswert?

Nick schrieb:

> 3. Über PWM.

Den Weg würde ich gehen.
Im µC eine PWM generieren und diese auf den G-Eingang der 
Schieberegister legen.

von ligthninglord (Gast)


Lesenswert?

am einfachsten wäre es wenn du das PWM am Output-Enable-Pin des 595 ( 
müsste 13 sein, aber lieber nochmal ins DB geschaut. ) da kannste dann 
deinen PWM unabhänig vom Rest draufgeben.

von Nick (Gast)


Lesenswert?

Danke sehr, hat mir wirklich weitergeholfen. Jetzt muss ich nur noch in 
Erfahrung bringen, wie ich ein schönes PWM-Signal erzeuge und dann kanns 
losgehen ;)

von Karl H. (kbuchegg)


Lesenswert?

Welcher Prozessor?

von Nick (Gast)


Lesenswert?

Es wird wohl auf einen ATmega48 oder was verglechbares hinauslaufen.

von Karl H. (kbuchegg)


Lesenswert?

Nick schrieb:
> Es wird wohl auf einen ATmega48 oder was verglechbares hinauslaufen.

Na, dann reservier doch gleich mal einen Timer für die PWM.
Ein paar Steuerregister richtig setzen und der Proz. erzeugt dir an 
einem bestimmten Pin (Datenblatt nachsehen) die gewünschte PWM. Den 
Tastgrad zu verändern ist dann so simpel wie ein einzelnes Register im 
Proz zu verändern.
Alles in allem ein 5-Zeiler :-)

von Nick (Gast)


Lesenswert?

Na das klingt ja gra nicht mal sooo tragisch ;)

Danke sehr!

von MaWin (Gast)


Lesenswert?

> Ich habe schon mal einen Testaufbau dazu gemacht. Bei reduzierter
> Helligkeit via MOSFET konnte ich dabei beobachten, dass je mehr LEDs
> zugeschaltet wurden, die Helligkeit immer weiter abnahm...

Genau. Deswegen taugt dein Testaufbau nichts.

Du kannst LED-Treiber mit Konstantstromeinstellung nehmen: 
A6275=TB62705, die haben EINEN Anschluss über den man analog den Strom 
für JEDE LED einstellt. Dann ´kommt dein LDR dort dran. Wenn er passt, 
dass brauchst du keine weiteren Beuteile mehr, wenn er nicht passt, 
müsstet du mit zusätzlichen Widerständen und einem OpAmp seine Kennlinie 
eventuell anpassen.

ABER: Da du vorher nicht weisst, ob er passt, willst du vielleicht 
sowieso die Möglichkeit haben, die Helligkeit anzupassen. Dann nimm den 
uC, den du sowieso verwendest, und schliesse den LDR an einen 
Analogeingang an, und ermittle daraus die Helligkeit im Programm, und 
steuere die Helligkeit per PWM (schnellem ein-/ und ausschalten aller 
LEDs).

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.