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
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.
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.
> 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.
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!
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.