---------------------------------------------------
Akkuspannung / Blinken
> 3,6V ==> 1 x blinken
< 3,6V ==> 2 x blinken
< 3,4V ==> 3 x blinken
< 3,3V ==> 4 mal blinken
< 3,2V ==> Wechselblinker rechts links dauerhaft
< 3,0V ==> alle 3 Sekunden ein kurzer Blitz
---------------------------------------------------
Zusätzliche Infos:
Wenn man sich mal die Schaltung ansieht, fragt man sich sicher wo ist denn da der ADU Eingang ?
Ursprünglich war dafür AN0 vorgesehen, dort wollte ich mit einem Spannungsteiler die Akkuspannung überwachen.
Als ich dann im Datenblatt suchte, wie ich dafür sorgen kann, dass der ADU die interne Referenz
als VREF+ heranzieht, musste ich feststellen das geht garnicht bei diesem PIC.
Vref+ ist IMMER VDD
Ich kann aber die Referenzspannung intern auf den ADU Eingang schalten und so die Referenz konvertieren.
So kam ich auf die Idee, immer die Referenzspannung zu konvertieren,
also gar keinen ADU Pin zu benutzen, denn die Referenzspannung ist ja ein fester Wert
und wenn ich jetzt die Versorgungsspannung ändere (Akkuspannung geht runter),
dann ändert sich der ADU Wert, weil als Referenz zur Konvertierung ja immer die
Versorgungsspannung herangezogen wird.
Das bedeutet der ADU Wert für die feste Referenz 2,048 Volt ändert sich.
Die Kurve hab ich dann mal präzise durchgefahren mit folgendem Ergebnis:
Übrigens die "LF" Variante des PICs kann auch runter bis 1,8 Volt arbeiten,Code:bei +5,500 Volt Versorgung count = 95 maximum PIC Voltage 10F322, ! nicht die "LF" Version bei +5,400 Volt Versorgung count = 97 bei +5,300 Volt Versorgung count = 99 bei +5,200 Volt Versorgung count = 101 bei +5,100 Volt Versorgung count = 103 bei +5,000 Volt Versorgung count = 104 bei +4,900 Volt Versorgung count = 106 bei +4,800 Volt Versorgung count = 109 bei +4,700 Volt Versorgung count = 111 bei +4,600 Volt Versorgung count = 113 bei +4,500 Volt Versorgung count = 116 bei +4,400 Volt Versorgung count = 118 bei +4,300 Volt Versorgung count = 121 bei +4,200 Volt Versorgung count = 124 LiPo voll geladen bei +4,100 Volt Versorgung count = 127 bei +4,000 Volt Versorgung count = 131 bei +3,900 Volt Versorgung count = 134 bei +3,800 Volt Versorgung count = 137 bei +3,700 Volt Versorgung count = 141 bei +3,600 Volt Versorgung count = 146 if( count > 146) ==> < 3,6 Volt 2 mal blinken bei +3,500 Volt Versorgung count = 150 bei +3,400 Volt Versorgung count = 154 if (count > 154) ==> < 3,4 Volt 3 mal Blinken bei +3,300 Volt Versorgung count = 158 if (count > 158) ==> < 3,3 Volt 4 mal Blinken bei +3,200 Volt Versorgung count = 163 if (count > 168) ==> < 3,2 Volt dauerblinken bei +3,100 Volt Versorgung count = 168 bei +3,000 Volt Versorgung count = 174 LiPo absolutes Minimum bei +2,900 Volt Versorgung count = 180 bei +2,800 Volt Versorgung count = 187 bei +2,700 Volt Versorgung count = 194 bei +2,600 Volt Versorgung count = 202 bei +2,500 Volt Versorgung count = 210 bei +2,400 Volt Versorgung count = 218 bei +2,300 Volt Versorgung count = 228 minimum PIC Voltage 10F322 bei +2,200 Volt Versorgung count = 238 bei +2,100 Volt Versorgung count = 250
aber Achtung: maximal dann nur bis 3,6 Volt und das ist in dieser Anwendung zu wenig.
Daher unbedingt den PIC10F322 benutzen, NICHT den PIC12LF322.
Damit ergibt sich folgende Formel:
aduCount = FVR * 256 / Vdd
FVR ist die Fixed Voltage Reference 2,048 Volt
Vdd ist die Versorgungsspannung am PIC, also die Akkuspannung
Die 256 rührt von dem 8 Bit AD Wandler, also 2 hoch 8
Ich berechne alles in Millivolt
aduCount = 2048 * 256 / Vdd
umgekehrt ist die Akkuspannung dann
Vdd = 2048 * 256 / adCount
Ergebnis in mV
--------------------------------------------------------------
Ursprünglich wollte ich noch eine Kalibrierung mit einbauen, aber als ich anfing die Flash Erase, Flash Write usw. zu programmieren war der Speicher plötzlich voll.
Er hat ja nur ein halbes Kilobyte
Mit geschickter Programmierung oder Assmbler ist das sicherlich möglich, aber ehrlich gesagt gibt das nicht wirklich Sinn für diesen Anwendungsfall,
das ist ja kein Meßgerät sondern eine Überwachung / Zustandsanzeige und funktioniert trotzdem sehr genau, da war ich wirklich erstaunt.
-------
Die Programmierung
Ein Problemchen stellt sich noch: wie bekomme ich den Code in den PIC ?
Während der Experimentierphase kann man die 8-Pin DIP Variante fürs Steckbrett benutzen.
Für die SOT-23 Variante habe ich eine Adapterplatine von SOT-23-6 auf DIP-6 genommen.
Als Programmer nehme ich den PicKit 3
Es gibt einen, bzw. sogar zwei spezielle Programmieradapter mit Schnellspannsockel von Microchip für die Gehäuse DFN und SOT-23-6
Leider kosten die knapp 50 Euro pro Stück
Der AC163020 ist für das SOT-23-6 Gehäuse zuständig.
https://www.mouser.de/ProductDetail/...oZGX6agg%3D%3D
Aber Achtung, unbedingt darauf achten wo Pin 1 ist, der befindet sich beim dem Sockel nämlich oben rechts.....
Oder man lötet den PIC zunächst auf eine Adapterplatine, programmiert ihn auf dem Steckbrett und entlötet ihn wieder.
Hier kann man der Kreativität freien Lauf lassen...
so in etwa...
Siro
Lesezeichen