Ladungsmessung bei einer 1,2-V-Akkuzelle mit dem Nano-Board

Atmega 328 mit BASCOM und FORTH programmieren
Antworten
Heinrichs
Beiträge: 183
Registriert: Do 21. Okt 2010, 18:31

Ladungsmessung bei einer 1,2-V-Akkuzelle mit dem Nano-Board

Beitrag von Heinrichs » Mi 8. Jan 2020, 16:50

Die maximale Ladungsmenge von Akkuzellen (umgangssprachlich auch als Kapazität bezeichnet) nimmt im Laufe der Zeit ab. Irgendwann weicht der tatsächliche Wert erheblich vom Nennwert ab. Dann ist es Zeit, diese Zelle auszusortieren. In diesem Beitrag möchte ich zeigen, wie man die Ladungsmenge einer (frisch) geladenen Akkuzelle mit einem Nano-Board messen kann. Neben dem Nano-Board benötigen wir noch ein Relais (z. B. das Relais-Modul HL52-S) und einen Widerstand von wenigen Ohm (z. B. zwei 12-Ω-Widerstände, die wir parallel schalten; hierbei ist der Entladestrom etwa 200 mA und die Entladung dauert einige Stunden).

Ladungsmessung_2.jpg
Ladungsmessung_2.jpg (107.92 KiB) 21430 mal betrachtet

Die Idee ist recht einfach: Der (frisch geladene) Akku wird über einen Widerstand entladen, dabei bestimmt der Mikrocontroller die Spannung U und die Stromstärke I: Die Spannung U am Widerstand R wird mit dem ADC gemessen und daraus die Stromstärke über I = U/R berechnet. Die in Δt = 1 min geflossene Ladungsmenge ΔQ bestimmt der Mikrocontroller so: ΔQ = I ⋅ Δt. Der Mikrocontroller protokolliert dann für jedes Zeitintervall die Messwerte, indem er sie über ein Terminalprogramm ausgibt. Dabei addiert er fortwährend die einzelnen Ladungsmengen auf und gibt am Ende die gesamte Ladungsmenge aus. Damit die Akkuzelle dabei nicht tiefentladen wird, wird der Stromkreis der Akkuzelle automatisch über ein Relais unterbrochen, sobald die Spannung der (belasteten) Akkuzelle unter 0,8 V gesunken ist.

Nano-Sketch_Akku_tester_2_Steckplatine_3.jpg
Statt der hier abgebildeten Zweifach-Akku-Halterung muss eine Einfach-Halterung benutzt werden (vgl. Foto)
Nano-Sketch_Akku_tester_2_Steckplatine_3.jpg (101.79 KiB) 21422 mal betrachtet

Mein Programm sieht so aus:

Code: Alles auswählen


$regfile = "m328pdef.dat"                                   'Dadurch wird auch das Pin-Layout bestimmt
$crystal = 16000000
$framesize = 32
$swstack = 32
$hwstack = 64
$baud = 9600

'**********************************************************
'******************* Deklarationen ************************

Dim Messergebnis As Word
Dim Volt As Single
Dim Ampere As Single
Dim Umin As Single
Dim Delta_ladungsmenge As Single
Dim Ladungsmenge As Single
Dim Minutenzaehler As Word

'**********************************************************
'****************** Initialisierung ***********************

Ddrd.2 = 1

Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Umin = 0.8
Minutenzaehler = 0
Ladungsmenge = 0

'**********************************************************
'******************** Hauptprogramm ***********************

Portd.2 = 0                                                 'Akku einschalten; LED bei Relais geht an
Print "Entladung gestartet"
Print "----------------------"
Waitms 100

Do
  Wait 60                                                   '1 Minute
  Minutenzaehler = Minutenzaehler + 1
  Print "U und I nach " ; Minutenzaehler ; " Minuten"
  Messergebnis = Getadc(3)                                  'Test: 14 -> interne Referenzsapnng (1,3 Volt Bandgap), sonst Kanalnummer von 0 bis 7
  Volt = 0.004619 * Messergebnis                            'Ergebnis jetzt in V  (0.004619 <- 4,73/1024)
  Print Volt ; " V"
  Ampere = Volt / 6.0
  Print Ampere ; " A"
  Print "----------------------"
  Delta_ladungsmenge = Ampere / 60                          'in Ah
  Ladungsmenge = Ladungsmenge + Delta_ladungsmenge
Loop Until Volt < Umin

Portd.2 = 1                                                 'Akku ausschalten
Print "Spannung unter 0,8 V"
Print "Entladung abgebrochen"
Print "Zeit: " ; Minutenzaehler ; " min"
Print "Ladungsmenge: " ; Ladungsmenge ; " Ah"

End

So lange der Akku entladen wird, leuchtet die LED am Relais. Bei einem tags zuvor entladenen Akku dauert der Entladevorgang nicht lange. Das Ende des Protokolls sieht z. B. so aus:

Code: Alles auswählen

----------------------
U und I nach 4 Minuten
0.808324989 V
0.128305492 A
----------------------
U und I nach 5 Minuten
0.785229978 V
0.124639628 A
----------------------
Zeit: 5 min
Ladungsmenge: 0.011290843 Ah


Antworten