Kategorie: Elektronik mit PICAXE und Arduino
Zugriffe: 3133

SPANNUNGSÜBERWACHUNG MIT PICAXE

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/  

BILDER

DAS PROGRAMM

;spannungsteiler: plus akku -> 50k spindelpoti -> 68k metall -> c.1 -> 10k metall -> masse 

sertxd ("spannungsueberwachung",cr,lf)

 

#picaxe 08m2

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