Für mein aktuelles Projekt, ein XXVIw benötigte ich eine Spannungsüberwachung der Fahrakkus. Ich habe für das Boot LiFePo4 Akkus in einer 6s2p Anordnung verwendet, das ergibt eine Fahrspannung von ca 20 Volt. In früheren Booten habe ich einen speziellen Chip von Maxim verwendet, der ging allerdings nicht so hoch in der Betriebsspannung, sodass ich da was anderes nehmen musste. In der Quadrokopterszene ist eine kleine Schaltung namens LipoBlitzer bekannt. Diese Schaltung baut auf einem kleinen Attiny auf und gibt Blinkimpulse ab welcher in der Anzahl je nach Spannungslage variieren. Die originale Schaltung ist hier zu finden [1]. Da ich gerne mit PICAXE arbeite und das auch selber versuchen wollte, habe ich ein kleines Programm um einen PICAXE herum geschrieben, welches die Funktion des Lipoblitzers bis auf die Anlernprozedur nachbildet. Die habe ich mir gespart, denn die Anzahl und Art der Akkus ändert sich ja nicht im Boot.
Nachbau
Der Aufbau des Lipoblitzers ist recht simpel. Ein abgleichbarer Spannungsteiler (R7, R3 und R4) misst die Versorgungsspannung des Akkus. Kleine Schwankungen werden mit einem Kondensator C2 weggebügelt.Eine Signal LED wird über einen Transistor plus Widerstand angesteuert. Natürlich ist ein Programmierstecker auf der Schaltung. Die Versorgungsspannung des PICAXE beziehe ich aus der Bordspannung, sie wird mit zwei Kondensatoren geglättet. Für die beiden Widerstände des Spannungsteilers bieten sich etwas bessere Metallfilmwiderstände an. Das Poti darf gerne ein Spindeltrimmer sein.
Abgleich
Um das Ganze abzugleichen, muss man das Programm in den PICAXE übertragen und vorher den im Programm auskommentierten debug Modus einschalten. Ich habe zum testen zwei Lipo Akkus in Reihe geschaltet und so eine Prüfspannung von ca. 23V erhalten. Mit einem einfachen Poti R6 als Spannungsteiler erhält man eine einfache variable Spannungsquelle. Die wird nun anstatt der richtigen Eingangsspannung zusammen mit einem Spannungsmessgerät an den Lipoblitzer angeschlossen.Es lässt sich mit dem Poti R6 die Spannung zwischen Null und voller Akkuspannung einstellen, dies soll den in der Spannung zusammenbrechenden Akku repräsentieren. Nun wird die "Akku"Spannung auf 20 Volt eingestellt und der Wert der Variable "Akku" im Debug Fenster beobachtet. Mit dem kleinen Spindeltrimmer R7 auf der Schaltung wird die Variable "Akku" solange angepasst, bis dort ein Wert von 400 steht. Dieser Wert ist um den Faktor 20 grösser als die Eingangsspannung, somit lassen sich andere Abschaltspannungen einfach einstellen und kontrollieren. Aber Achtung, im Programm ist bei Spannungen unter 15V Schluss (Entladeschlussspannung der 6S LiFePo4 Akkus). Dann springt das Programm in ein Unterprogramm wo die LED dauerhaft eingeschaltet wird und endet dort. Der debug Befehl wird dann nicht mehr aktualisiert.
[1] http://jreise.de/LipoBlitzer/
;spannungsteiler: plus akku -> 50k spindelpoti -> 68k metall -> c.1 -> 10k metall -> masse
sertxd ("spannungsueberwachung",cr,lf)
#picaxe08m2
symbol zaehler = b0
symbol lop = b1
symbol akku = w1
symbol akkukum = w2
symbol eing = c.1
symbol ausg = c.2
low ausg
start:
akkukum = 0
for zaehler = 1 to 10 ;10x
readadc10 eing, akku ;spannung lesen
akkukum = akkukum + akku
next zaehler
akku = akkukum / 10 ;mittelwert bilden
; debug Befehl nur beim justieren einkommentieren
;debug
select case akku
case 380 to 500 ;spannung zwischen 19,0 und 25,0v?
lop = 1 ;einmal blinken
gosub blink
case 360 to 379 ;spannung zwischen 18,0 und 18,9v?
lop = 2 ;zweimal blinken
gosub blink
case 320 to 359 ;spannung zwischen 16,0 und 17,9v?
lop = 3 ;dreimal blinken
gosub blink
case 300 to 319 ;spannung zwischen 15 und 15,9v?
lop = 4 ;viermal blinken
gosub blink
case 0 to 299 ;UNTERSPANNUNG!
goto daueran
endselect
goto start
blink:
for zaehler =1 to lop
high ausg ;led an
pause 100 ;kurzer impuls
low ausg ;led aus
pause 400 ;kurze pause
next zaehler
pause 2000 ;laengere pause
return
daueran:
high ausg ;led dauernd an bis zum ausschalten
end