Du hast Dein Problem vermutlich schon richtig erkannt!
odl:
Erstens fällt an den Kabeln (am Breadboard-Eingang ist schon weniger als an der Batterie) schon Spannung ab und man darf auch wirklich nirgends ankommen.
Die Übergangswiderstände können auf so einem Steckbrett durchaus 10-15 Ohm sein, bei mir selbst getestet. Ob eine LED mit 10mA oder 20mA leuchtet wird keinem auffallen, bei einem Messgerät fällt sowas aber sofort auf. Meine Lösung heißt, wenn ich das gesteckte tatsächlich weiterverwenden will: auf Lochrasterplatte löten, später evtl. auf selbst entwickelter Leiterplatte.
Mit dem Sketch wird das nicht zusammenhängen!
odl:
Kann das jemand nachvollziehen (das Stecken dauert 2min) oder mir zumindest erklären was da läuft? Kann der Widerstand nach der Zeit kaputt gehen und mehr Strom durchlassen.
Hallo nochmal,
VIELLEICHT mach ich das heute abend.
Verwendest Du ne Aufladbare Batterie?
Welche Batterien verwendest Du?
Vielleicht hat das was mit der chemischen zusammensetzung zu tun... keine Ahnung...
Da ich das Projekt ist für mich eh interessant, da ich meinen 'Roboter' mit einer 2 Zellen LiPo (7,4V) betreibe, ein INA219 misst den Strom/Spannung von den Motoren, ich möchte aber auch den gesamt Stromverbrauch ermitteln und das würde ich einen selbstgebauten Spannungsteiler machen.
Ich dachte du verwendest AA, Batterien, ich hab nur einen AA Bat Halterung, ich probiers mal mit einer AA (will nicht löten wenn das keine Ergebnisse bringt, löte ich halt).
Ich werd später vielleicht noch ein Foto oder ein Plan reinstellen, schreib jetzt schnell ein Sketch dafür und meld mich dann wieder.
einfach mit Alu-Folie eine Kugel zusammenpressen und auf der einen Seite in die Halterung, damit kannst Du die AA-Halterung für AAA-Batterien verwenden (Alu ist ein Superleiter, praktisch kein Verlust durch den großen Querschnitt). Ist halt Pfusch und könnte bei sich bewegenden Sachen rausfallen.
Zur Zeit bekomme ich ganz schöne regelmäßige Kurven (schon seit etlichen Stunden).
Werde das mal reinstellen wenn fertig.
odl:
Ist halt Pfusch und könnte bei sich bewegenden Sachen rausfallen.
Genau, aber zu test zwecken kann man das schon machen... So jetzt mal meine Ergebnisse (noch ist die Batt nicht leer) Das entleeren der Batterie messe ich über den A0 und einen INA219, sowie Multimeter messungen.
Ich verwende einen 120Ohm Widerstand, da ich auf die schnell keinen gefunden hab.
Das Sketch ist nur ein copy&paste ding aus dem Beispiel Programm von Adafruit und den BatteryMonitor (ich kanns auf wunsch posten).
So, nun zu den Ergebnissen:
Das Arduino hängt direkt am USB Port:
A0 Spannung: 1.26 V
A0 Strom: 0.01 A
Bus Voltage: 1.24 V
Shunt Voltage: 1.02 mV
Load Voltage: 1.24 V
Current: 10.20 mA
Wenn ich so nen Charger Doctor dazwischen schalte, schauts etwas anders aus:
A0 Spannung: 1.31 V
A0 Strom: 0.01 A
Bus Voltage: 1.24 V
Shunt Voltage: 1.01 mV
Load Voltage: 1.24 V
Current: 10.10 mA
--------------------------
A0 Spannung: 1.32 V
A0 Strom: 0.01 A
Bus Voltage: 1.24 V
Shunt Voltage: 1.01 mV
Load Voltage: 1.24 V
Current: 10.10 mA
Das Multimeter bestätigt die Daten des INA219 (unteren 4 Angaben)
Der Charger Doctor zeigt etwas, zwischen 4,75V und 4,9V an (das ist dann in diesem Moment auch die Betriebsspannung und da die nicht stabil ist kann es zu abweichungen kommen, der Charger Doctor braucht auch Saft und das Arduino selbst auch.
Das Arduino bekommt nun seinen Strom von einem Labor Netzteil(9Volt) -> So bleibt die Betriebsspannung stabil.
A0 Spannung: 1.24 V
A0 Strom: 0.01 A
Bus Voltage: 1.23 V
Shunt Voltage: 1.01 mV
Load Voltage: 1.23 V
Current: 10.10 mA
Jetzt warten wir mal.... bis die Batterie 'fast' leer ist.
Dein Setup schaut ja seht gut aus (vorallem mit dem Labornetzteil, sowas habe ich natürlich nicht)
Hatte gestern sehr schöne Kurven bis es bei 1,42V wieder stundenlang hängenblieb. Beim Nachmessen bin ich wohl an die Kabel gekommen, und dann ist es dann plötzlich auf 1,08V abgesunken. Habe an allen Stellen Nachgemessen und siehe da, das Problem ist wirklich das Kabel oder der Anschluss bei dem AnalogIn Pin A1. Ein bisschen daran gefummelt und dann wieder Werte um 1,38 usw. Der ganze Aufbau mit dem Breadboard usw. ist sehr hakelig. Die Kabelverbindungen sind minderwertig und die Stecker sind nicht gerade zuverlässig, was die ganze Sache erschwert.
Außerdem wundert mich wie lange so eine AAA-Batterie vom Kik doch hält. Hatte gestern nach 8 Stunden immer noch 1,32V drauf. Ich habe einen 10 Ohm Widerstand dran und danach müsste am Widerstand so 150mA verbraucht werden (ist etwas weniger, denn durch die schlechten Kabel usw. kommen am Wiederstand bei 1,5 V nur noch etwa 1,3 an) oder vertue ich mich da?
odl:
Dein Setup schaut ja seht gut aus (vorallem mit dem Labornetzteil, sowas habe ich natürlich nicht)
Danke 8)
So ne AAA Batterie (NiHM) kann bis zu 1000mAh haben aber gehen wir mal von 600-800mAh aus aber die AA haben ca. die dreifache Kapazität (siehe WIKI). Meine Batterie war mind. 1 Jahr in meiner Maus und ist jetzt zu leer für die Maus, also hat die Maus ne Nagel-neue Batterie und die Widerstände fressen die alte Batterie leer
Da ich das ganze selber für meinen 'Roboter' gut gebrauchen kann und neben Dir odl, vielleicht auch noch andere damit was anfangen können, hab ich meinen Aufbau in eine Fritzing Zeihnung gestopft und das aktuelle Sketch gibts oben drauf.
Ich verwende mittlerweile auch 3 Widerstände a 120 Ohm, damit das heute noch was wird...
Das Sketch dazu: (wie gesagt, nur ein aus den Beispielen zusammengewürfelt)
/*
* Ist eine Combination aus dem Beispiel Sketch: ReadBatteryMonitor und dem
* Beispiel Sketch 'getCurrent' aus der Adafruit Lib für den INA219
*/
#include <Wire.h>
#include <Adafruit_INA219.h>
//Adafruit_INA219 ina219;
Adafruit_INA219 ina219(0x41); // Meiner hat die Adresse 0x41
void setup() {
Serial.begin(115200);
while (!Serial) {
delay(1);
}
uint32_t currentFrequency;
Serial.println("Start INA219 und A0 Messung!");
ina219.begin(); // Starte den INA29 Strom und Spannungssensor
// By default the initialization will use the largest range (32V, 2A). However
// you can call a setCalibration function to change this range (see comments).
// To use a slightly lower 32V, 1A range (higher precision on amps):
//ina219.setCalibration_32V_1A();
// Or to use a lower 16V, 400mA range (higher precision on volts and amps):
ina219.setCalibration_16V_400mA(); // Wir nehmen diese Kalibration <- komisch ausgedrückt
}
void loop() {
// Sendoren Auslesen und berrechnen
int sensorValue = analogRead(A0);
float shuntvoltage = ina219.getShuntVoltage_mV();
float busvoltage = ina219.getBusVoltage_V();
float current_mA = ina219.getCurrent_mA();
float loadvoltage = busvoltage + (shuntvoltage / 1000);
float voltage = sensorValue * (4.99 / 1023.0);
float current_a0 = voltage / 40 ; // 3x 120 Ohm parallel = 40 Ohm
// Serielle Ausgabe:
Serial.print("\nVergangene Zeit: ");
Serial.print(millis());
Serial.print("ms\n");
Serial.print("A0 Spannung: "); Serial.print(voltage); Serial.print(" V\n");
Serial.print("A0 Strom: "); Serial.print(current_a0); Serial.print(" A\n\n");
Serial.print("INA219:\n");
Serial.print("Bus Voltage: "); Serial.print(busvoltage); Serial.print(" V\n");
Serial.print("Shunt Voltage: "); Serial.print(shuntvoltage); Serial.print(" mV\n");
Serial.print("Load Voltage: "); Serial.print(loadvoltage); Serial.print(" V\n");
Serial.print("Current: "); Serial.print(current_mA); Serial.print(" mA\n");
Serial.print("----------------------");
delay(500); // in 0,5 sec. Rythmus
}
Ds Multimeter stimmt eher mit den Daten des INA219 überein. Aber mittlerweile zeigt mir das Multimeter: 1,159 Volt.
Vcc (also die Betriebsspannung) schwankt minimal zwischen 4,98 V und 4,99 Volt, deshalb hab ich das im Sketch angepasst.
lg dony
edit:
Die Kabelverbindungen sind minderwertig und die Stecker sind nicht gerade zuverlässig, was die ganze Sache erschwert.
Schlechte oder dünne Kabeln haben einen größeren Widerstand als zB.: ein 230~Volt Kabel. Schlechte Verbindungen und schlechte Kabeln sollten eigentlich vermieden werden, denn wir wollen ja eine genaue Messung und quasi den Punkt finden, wo die Spannung so gering ist (unter 0,8 Volt) um zu schauen was dann wirklich passiert.
Nachdem ich nun fast 100MB log Files generiert hab, zeige ich euch den Interessantesten Ausschnitt:
[Fri Jan 19 11:22:58.011 2018] Vergangene Zeit: 14204331ms
[Fri Jan 19 11:22:58.015 2018] A0 Spannung: 0.02 V
[Fri Jan 19 11:22:58.019 2018] Bus Voltage: 0.01 V
[Fri Jan 19 11:22:58.030 2018] Current: 0.70 mA
[Fri Jan 19 11:22:58.552 2018] ----------------------
[Fri Jan 19 11:23:16.610 2018] Vergangene Zeit: 14222918ms
[Fri Jan 19 11:23:16.614 2018] A0 Spannung: 0.13 V
[Fri Jan 19 11:23:16.618 2018] Bus Voltage: 0.12 V
[Fri Jan 19 11:23:16.622 2018] Current: 3.20 mA
Wie man sieht entleert sich die Batterie bis auf 0,02, 0,01 Volt und ca. 17 min später hat die Bat wieder 0,13 Volt.
edit:Ich denke das hat etwas mit der Chemischen Zusammensetzung der Batterie zu tun. Ich denke mir weiters, würde ich das noch mehrere Tage laufen lassen, geht die Batterie ex. Vielleicht läuft sogar Batterie säure aus.
edit: @odl: Du wolltest ja wissen warum die Spannung von 0,8V auf 1,3Volt springt. -> Das war entweder die schlechte Verkabelung oder ein falsche Formel. Bei mir geht es bis aus 0,01 Volt runter und dann wieder auf 0,13 V rauf, das ist praktisch gesehen so oder so nutzlos. Theoretisch ist es etwas anderes aber ich akzeptiere dieses Ergebniss, da sich nichts neues mehr 'sehen' werde.
Wenn Du wissen willst warum das so ist, frag vielleicht in einem Chemie/Batterie Forum.
edit2: Vollständigkeitshalber möchte ich noch sagen, jetzt ist die Batterie definitiv leer!
Vergangene Zeit: 39926060ms
A0 Spannung: 0.00 V
A0 Strom: 0.00 A
INA219:
Bus Voltage: 0.00 V
Shunt Voltage: -0.02 mV
Load Voltage: -0.00 V
Current: -0.10 mA
lg dony
PS: Wer von der endphase des log Files haben will -> pm oder so.
Also mit einiger Mühe und Not habe ich jetzt einige plausible Kurven bekommen. Der Unterschied zwischen Billig und Markenbatterien ist schon enorm. Der ganze Aufbau ist aber ganz schön anfällig. Einmal auf die Tischplatte gehauen und schon habe ich andere Werte......
Ich poste die Diagramme in nächste Zeit mal.
Hat jemand eine Ahnung wie man die gesamte geflossene Stommenge aus solchen Messungen annähernd ermitteln kann (habe Zeit-Volt Angaben in 20sec Abständen). Die Kurven sind ja nicht linear.
Naja, wenn Du über einen bekannten Widerstand entladen hast, dann hast Du ja auch den Strom, und den hast Du zwar nicht in mAh, sondern in mA(20)s.
Also ausrechnen und aufsummieren.
odl:
Der ganze Aufbau ist aber ganz schön anfällig. Einmal auf die Tischplatte gehauen und schon habe ich andere Werte......
Hallo,
Darauf hab ich die versucht hinzuweißen, das soetwas eigentlich gelötet werden muss, da aber keine Rückmeldungen kamen, hab ichs dann auch lassen. Ich hab ein fast Nagelneues Steckbrett verwendet, gekrimpte Jumper Kabeln und keine Litze, ausser beim Batt Halter, da hab ich aber zumindest nen Stifft dazugesteckt.
Wirklich interressant wird es erst ab 0,1 Volt, da geht die Kurve langsam runter bis 0,01 Volt dann steil nach oben bis 0,1 Volt und wieder langsam runter aber Du willst ja Batterien vergleichern.
Hat jemand eine Ahnung wie man die gesamte geflossene Stommenge aus solchen Messungen annähernd ermitteln
Darüber hab ich auch schon mal nachgedacht aber noch nichts versucht, hab das aber wegen meinen eigenen Projekt sowieso vor. Sobald ich was genaueres weiß, lasse ich es Dich Wissen.
Du musst 'nur' die Fläche unterhalb Deiner Kurve 'wiegen'. schnipp-der-integrator - Strippenstrolch
Mathematisch kannst Du die Fläche zwischen zwei benachbarten Messungen in ein Drei- und ein Viereck aufteilen.
Bei Beide lassen sich einfach die Flächeninhalte ausrechnen - Das sind die Zahlen, Die Du aufaddierst - fertig.
Ok, fast - die so erhaltene Zahl muß dann ggf. noch auf 'mAh' umgemünzt werden.