Forum: Mikrocontroller und Digitale Elektronik LED-Spannungsquelle mit µC steuern,


von Holger S. (alberich)


Lesenswert?

Ein PIC18F45K20 wird mit einer 3V-Knopfzelle versorgt, liest div. 
Sensoren aus & zeigt seine Meinung dazu auf zwei 7-Segment-Anzeigen an.
Die Anzeige wird immer nur für ein paar Minuten benötigt, danach legt 
sich das ganze System wieder schlafen. Die Umgebung ist mal dunkel, mal 
total hell, weshalb die verwendeten 7-Segment-Anzeigen ordentlich hell 
gewählt wurden & einen Strom von 20mA pro LED zulassen. Das verkraften 
auch die Portpins des PIC, und die Knopfzelle schafft das auch eine Zeit 
lang.
Um das Ganze regelbar zu gestalten, wird die LED-Spannung der 
Common-Anode-Displays von einem Low-Drop-Regler erzeugt. Die LED-Kathode 
wird dann vom Portpin direkt auf Masse gezogen (Keine Widerstände).
Mit dem Spannungsregler wird die max. Helligkeit eingestellt (irgendwo 
bei ~2,3V), in dunkler Umgebung wird die Helligkeit dann per PWM 
reduziert.
Das Ganze muss klein sein: Nur SMD, und davon möglichst wenig.

So weit, so gut, ist fertig & funktioniert prima bei voller Knopfzelle.

Lässt die Knopfzelle nach, sinkt auch die LED-Spannung. Um nachregeln zu 
können, muss der PIC die LED-Spannung messen.
Erster Ansatz: LED-Spannung direkt mit ADC messen. Liefert bei 
angeschlagenen Knopfzellen höhere Werte als bei vollen, da mit der 
Versorgungsspannung auch Vref+=Vcc absinkt :-)
Zweiter Ansatz: LED-Spannung mit ADC messen, externe Referenz Vref+ mit 
Widerstand und Zenerdiode auf 2,7V: Blöde Idee, 5mA für die Zenerdiode 
geopfert & festgestellt, dass die Versorgungsspannung auch unter 2,7V 
fallen kann...
Dritter Ansatz: Idee "Halbe LED-Spannung über Spannungteiler mit ADC 
messen, externe Vref+ via Zenerdiode auf 2V" erst mal verworfen & 
beschlossen, das hier mal zur Diskussion zu stellen. Irgendwie 
verzettel' ich mich hier.

Ich hatte gehofft, ohne Treiberchips wie MAX6966ATE+ auszukommen.
Ausserdem habe ich jetzt noch die Option, die LEDs auch mal in Richtung 
"absolute max. Ratings" von 30mA zu betreiben. Und früher oder später 
muss ich sowieso auch was zum Zustand der Batterie sagen können.

Vielleicht hat ja jemand einen Tipp? Muss nicht aus dem Lehrbuch sein, 
eine "und DAS funktioniert wirklich?"-Lösung ist auch ok.

Danke schon mal
Holger

von Pink S. (pinkshell)


Lesenswert?

Mein Kommentar:

a) LED ohne Widerstände an eine Spannungsquwlle ist Mist.
Die mit dem Regler sorgfältig eingestellte Spannung ist nichts wert, 
wenn die LEDs warm werden und ihre Durchlassspannung verändern. Ebenso 
kann es Unterschiede der Durchlassspannungen der einzelnen Segmente 
geben, weswegen die dann unterschiedlich hell leuchten.

b) Du kannst nicht mit einer variablen Referenzspannung eine andere 
Spannung genau messen. Nimm eine interne Referenz des PIC, oder wenn der 
keine hat, eine externe Referenz.

von Holger S. (alberich)


Lesenswert?

Na klar, das ist keine Schulbuchlösung. Aber:
a) Wenn irgendwann mal klar ist, welches Display das geeignete ist, dann 
kann ich das vielleicht mit Widerständen umsetzen und mir den teuren 
Regler sparen. Oder eben mit 8 Konstantstromquellen in einem Chip. Noch 
muss ich allerdings flexibel sein.
b) Das wäre dann mein Ansatz #3... (Der Pic hat keine interne Referenz)

Inzwischen hatte ich noch einen Ansatz #4 mit weniger Bauteilen als #3, 
der gefällt mir gar nicht schlecht:
Vcc als Referenzspannung des ADC verwenden. Mit Widerstand und 
Zenerdiode eine feste Spannung (bsp. 2V) auf den Eingang des ADC legen. 
Misst man nun die bekannte Spannung am ADC, kann man aus dem Ergebnis 
die Referenzspannung und damit Vcc errechnen.

von neuer PIC Freund (Gast)


Lesenswert?

> Der Pic hat keine interne Referenz

Das Teil kostet bei Reichelt über 2€. Würde mich wunder, wenn der eine 
externe Referenz bräuchte.

Schaust du Kapitel 21, Thema FVR. Also klemmst du die Referenzeingänge 
des ADC an Vcc und GND. Dann misst du den FVR Kanal und danach den 
eigentlichen Analogwert ein. Ein bisschen Zahlenmagie und fertig die 
Laube.

Bei einem STM32F051 läuft es ähnlich. Da hast du auch noch einen 
kalibrierten  Wert abgespeichert, mit dem du die Werte ziemlich exakt 
bestimmen kannst.

von Holger S. (alberich)


Lesenswert?

Okay... ich hatte das im Bereich der Konfiguration Vref+ / Vref- 
gesucht.

Aber ok: Man misst eine feste Referenz, danach den eigentlichen Messwert 
& interpretiert diesen dann im Kontext der Referenzmessung. Klingt 
einleuchtend.

Danke für den Tipp!

von Alexander S. (esko) Benutzerseite


Lesenswert?

Die LEDs einfach über Widerstände anschließen, sodass bei fast leerer 
Zelle die 20 mA erreicht werden. Die Helligkeit regelst du über PWM, 
dabei misst du kontinuierlich die Batteriespannung und passt das 
PWM-Verhältnis an, so dass der Strom immer gleich bleibt.

Wenn du die Helligkeit an die Umgebung anpassen willst, kannst du eine 
LED als Photodiode missbrauchen und darüber die Helligkeit der Umgebung 
messen. Dafür muss die LED für einige Millisekunden ausgeschaltet 
werden.

von Holger S. (alberich)


Lesenswert?

Der Tipp mit der Display-LED als Photodiode gefällt mir.
Ich hab dafür bisher LDRs verwendet, und die liessen sich oft nur 
umständlich direkt am Display unterbrigen. Eine Display-LED dafür zu 
missbrauchen ist eine prima Idee.

Danke!

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.