Akku-Ladekurve

Inhaltsverzeichnis

IR-Auslöser für Pentax-Kameras
Akku-Ladekurve

Wir bauen uns eine Piepliothek!

Ein Automat ohne delay()

Pimp my Code!

Tipps + Tricks



Akku-Ladekurve

Manchmal ist es hilfreich, den zeitlichen Verlauf eines Pegels zu verfolgen. Zu diesem Zweck zeichnet man auf, was ein Arduino auf der seriellen Schnittstelle ausgibt und benutzt diese Aufzeichnung, um mit GNUplot ein Diagramm daraus zu machen.

Die Homepage von GNUplot befindet sich hier: www.gnuplot.info. Unter www.gnuplot.info/demo befinden sich reichlich Beispiele für das, was man mit GNUplot machen kann.

Da der serielle Monitor der Arduino-IDE das Mitschreiben („Loggen“) der Kommunikation nicht unterstützt – zumindest nicht in der von mir benutzten Version 1.6.5 –, benutze ich hierfür ein sogenanntes Terminalprogramm (minicom).

Wenn man minicom wie folgt startet, wird die Schnittstelle /dev/ttyUSB0 benutzt, die Übertragungsgeschwindigkeit auf 9600 Baud eingestellt und sofort mit dem Loggen in die Datei minicom.cap (cap steht für capture) begonnen:

minicom -D /dev/ttyUSB0 -b 9600 -C minicom.cap

Die Datei /dev/ttyUSB0 wird nach dem Anschließen des Arduinos (Nano) vom System automatisch angelegt. Für einen Uno heißt die Datei /dev/ttyACM0.

Die Logdatei enthält Zeilen wie diese:

...
5, 757
6, 760
7, 763
...

Die so erstellte Logdatei kann mit einem einfachen GNUplot-Script zu einer Postscript-Datei gemacht und diese bei Bedarf mit ps2pdf in das PDF-Format konvertiert werden.

Hardware

Da der von mir benutzte Akku eine Lade-Endspannung von 14,5-14,9 V hat, habe ich ihn über einen Trimmer mit Analogeingang 0 verbunden. Dabei sind die Enden des Trimmers an GND und den Pluspol des Akkus angeschlossen, der Schleifer kommt an den Arduino (Warnung beachten!). Selbstverständlich werden die GND-Anschlüsse von Arduino und Akku miteinander verbunden.

Achtung: Vor dem Verbinden von Schleifer und Arduino unbedingt kontrollieren, dass die Spannung am Schleifer nicht größer als 5 V ist! Anderenfalls riskiert man, den Arduino zu beschädigen.

Einfacher als das Messen der Spannung am Schleifer ist folgendes Vorgehen:
– Den Schleifer des Trimmers bis zum Anschlag in GND-Richtung drehen.
– Den Schleifer an den Arduino anschließen und das unten stehende Programm laufen lassen.
– Nun den Schleifer des Trimmers langsam in Richtung des Endes drehen, das mit dem Pluspol des Akkus verbunden ist. Dabei die Ausgabe im seriellen Monitor beobachten, bis ein passender Wert erreicht ist.
Ich lasse dabei normalerweise reichlich Platz nach oben.

Das „Schaltbild“ sieht so aus:

schaltung.png

Software

Das Programm für den Arduino ist sehr einfach:

// Akkuspannung ueberwachen

byte akkuPin=0; // Analogpin, der die zu ueberwachende Spannung
                // bekommt
void setup()
{
  Serial.begin(9600);
}

void loop()
{
  delay(1000);

  Serial.print  (millis()/1000);
  Serial.print  (", ");
  Serial.println(analogRead(akkuPin));
}

Um aus der damit erzeugten Logdatei ein Diagramm zu machen, habe ich mir folgendes GNUplot-Script geschrieben:

#!/usr/bin/gnuplot

FN = "minicom.cap"

# Ausgabeoptionen
set terminal postscript
set output "/tmp/plot.ps"

# Achsenbeschriftung und Titel
set xlabel "Sekunden"
set ylabel "analogRead()"
set title FN

# Gitter an
set grid

# Bereich
set yrange [750:900]

# Malen
plot FN using 1:2 notitle with lines lt 1 lc rgb "red"

Die damit erzeugte Datei /tmp/plot.ps kann man mit ps2pdf in das PDF-Format konvertieren.

Das Ergebnis

Wenn alles geklappt hat, hat man eine PDF-Datei, die ungefähr so aussieht: plot.pdf

Etwa bei Sekunde 4.000 hat mein Netzteil die Strombegrenzung eingestellt. Und als der Ladestrom nach etwa 11.000 Sekunden nur noch rund 50 mA betrug, habe ich das Laden beendet.

Eine Kurve, die einen Teil eines „Akku-Trainings“ zeigt, befindet sich hier.

Wenn man einen Teil der Kurve näher betrachten möchte, kann man im GNUplot-Script den Bereich angeben, der geplottet werden soll. Beispiel:


# Bereich
set xrange [20000:24000]
set yrange [850:900]

Wer das nur mal schnell testen möchte, findet hier die Logdatei zur Kurve.

Weiter zu: Wir bauen uns eine Piepliothek!


Nach oben Inhaltsverzeichnis

Valid HTML 4.01 Transitional