www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Helligkeit schwankender Anzahls LEDs einstellen


Autor: Nick (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: ligthninglord (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Nick (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welcher Prozessor?

Autor: Nick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es wird wohl auf einen ATmega48 oder was verglechbares hinauslaufen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Nick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na das klingt ja gra nicht mal sooo tragisch ;)

Danke sehr!

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.