Forum: Mikrocontroller und Digitale Elektronik Daten-Logger mit AVR


von Andreas Baum (Gast)


Lesenswert?

Hallo Leute,

ich brauche mal einen Tipp von euch, wie ich mit einem AVR am besten 
einen Spannungsverlauf loggen kann.

Genauer geht es darum, dass ich ein KFZ-Batterie-Ladegerät habe und 
gerne nachvollziehen möchte, was das Ding denn so treibt, wenn man es an 
die Batterie anschließt. Wie ich die Spannung in den AVR bekomme, ist 
kein Problem, mir geht es momentan nur um das Speichern der Messdaten.

Und zwar habe ich mir folgendes überlegt:
Die Batterie kann zwischen 11 und 14,9V haben. Das bedeutet, dass ich 
einen Spannungsteiler verwende, um die Spannung zu messen, 
wahrscheinlich 1 zu 5. Nach dem ich die Spannung gemessen habe, 
multipliziere ich den Wert wieder mit 5 und bekomme die reale Spannung. 
Dann ziehe ich 11V davon ab, damit werden die Zahlen schon mal kleiner.

Dann habe ich noch 0, 1, 2, 3 (11-14V) als mögliche Werte. Die kann ich 
in zwei Bits speichern. Für die Nachkommastelle brauche ich vier Bits, 
also insgesammt 6 Bit.

Ich möchte alle 10 Sekunden einen Wert speichern und das über 8 Stunden.
6 (Werte pro Minute) * 60 (Minuten) * 8 Stunden = 2880 Werte in 8 
Stunden.
6 bit  * 2880 = 17.280 bit Speicher. => 2.160 kByte.

Stimmt die Rechnung soweit?

Wenn ich es richtig sehe, dann hat kein AVR gleich 2kByte Speicher 
dabei. Das bedeutet, dass ich einen Speicherbaustein brauche. Kann mir 
da jemand etwas empfehlen? Evtl. etwas, das "leicht" mit einem ATtiny 
benutzt werden kann? Die Werte aus dem Speicher könnte ich mit einem 
Programmer wieder auslesen.

Macht es überhaupt Sinn, die Werte vorher aufzubereiten, oder würde es 
eher Sinn machen, da einfach einen großen Speicherbaustein ranzuklemmen 
und einfach die Real Werte zu speichern?

von trool (Gast)


Lesenswert?

erstens. was soll ein tiny? nimm einen mega16 oder aehnlich. mit den 
tinies spart man nichts.. als speicher wuerd ich zb einen at45db041 
empfehlen. speichern wuerd ich die direkten adc werte, nichts anderes.

von Pete K. (pete77)


Lesenswert?

Nimm ein I2C Eeprom und speichere die Werte dort hinein.

Oder Du machst eine Ausgabe über RS232 (MAX232) auf den PC und loggst 
alles mit z.B. putty mit (in eine Datei schreiben lassen).
Wenn Du Deine Messwerte gleich als CSV-Datensatz aufbereitest kannst Du 
mit Excel die Daten anschließend auswerten.

Dann braucht es auch keinen "Progger" zum Auslesen.

: Bearbeitet durch User
von holger (Gast)


Lesenswert?

>Ich möchte alle 10 Sekunden einen Wert speichern und das über 8 Stunden.
>6 (Werte pro Minute) * 60 (Minuten) * 8 Stunden = 2880 Werte in 8
>Stunden.
>6 bit  * 2880 = 17.280 bit Speicher. => 2.160 kByte.
>
>Stimmt die Rechnung soweit?

Ja, schon, aber ein Akku ändert innerhalb 10s seine Spannung
kaum messbar. Das ist Blödsinn. Es reicht so alle 5Minuten.

von Andreas Baum (Gast)


Lesenswert?

holger schrieb:
> Ja, schon, aber ein Akku ändert innerhalb 10s seine Spannung
> kaum messbar. Das ist Blödsinn. Es reicht so alle 5Minuten.

Das ist nicht richtig. Ich messe ja über dem Ladegerät. Und wenn es 
anfängt zu laden, dann habe ich sehr schnell einen Anstieg von 12,7V auf 
14,7V. Irgendwann erkennt das Ladegerät, dass die Batterie voll ist und 
geht in den Testmodus, wo es etwa eine Stunde den Spannungsabfall 
beobachtet. Anschließend geht es in die Ladungserhaltung und Pulst dann 
nur noch etwas. Dafür sind die 10s Zeitfenster gerade richtig.

Pete K. schrieb:
> Nimm ein I2C Eeprom und speichere die Werte dort hinein

Was hätte ein I2C EEPROM (oder Flash?) denn für Vorteile gegenüber dem 
oben bereits vorgeschlagenen Speicher mit SPI?

Pete K. schrieb:
> Oder Du machst eine Ausgabe über RS232 (MAX232) auf den PC und loggst
> alles mit z.B. putty mit (in eine Datei schreiben lassen).
> Wenn Du Deine Messwerte gleich als CSV-Datensatz aufbereitest kannst Du
> mit Excel die Daten anschließend auswerten.

Das kann / will ich leider nicht machen. Zum einen werde ich tatsächlich 
den Akku im Fahrzeug laden und gerade im Winter bei Schnee möchte ich 
kein Notebook nach draußen nehmen. Alternative wäre ein RPi mit WLAN als 
Empfänger der Daten über RS232 / USB, aber da ist mir die Verbindung zu 
unsicher. Und wenn da etwas schiefgeht, dann kann ich die Werte nicht 
eben schnell wiederherstellen.

von runtastic (Gast)


Lesenswert?

Gibts auch schon fertige Projekte die direkt auf SD schreiben.
Dann sparst Du Dir den Datenabzug.

Ansonsten kannst du das natürlich in den internen oder externen Speicher 
schreiben.
Eine weitere Möglichkeit wäre noch die direkte Ausgabe an einen PC per 
Kabel, Funkmodul oder Bluetooth.

von holger (Gast)


Lesenswert?

>dann habe ich sehr schnell einen Anstieg von 12,7V auf
>14,7V.

Dann ist dein Akku kaputt.

von Wolfgang (Gast)


Lesenswert?

Andreas Baum schrieb:
> Kann mir da jemand etwas empfehlen?
EEPROMS für SPI-Schnittstelle mit 256kBit bekommst du für weniger als 
1,50€. Bei deiner Datenpunktanzahl lohnt da keine Datenkompression.

Und wenn du über ein paar Monate im 1s Takt aufzeichnen möchtest, kannst 
du immer noch auf eine SD-Karte ausweichen - auch über SPI ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.