- LiTime Speicher und Akkus         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 31

Thema: Arduino AD-Wandler abgleichen

  1. #11
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.187
    Anzeige

    Praxistest und DIY Projekte
    10Bit sind zu wenig und linear ist es nicht. Akkuspannungen habe ich bisher entweder mit einem externen ADC gemessen oder einen XMega mit 12Bit
    Genau das gleiche hätte Ich auch geantwortet.
    Ich würde sogar so weit gehen und auf einen externen 16Bit A/D wandler setzen.
    Wenn die Messung nicht gerade superschnell gehen muss sind die Teile auch bezahlbar - Beispielsweise mal den schnell mal Gegoogelten ADS1115 ( Hatte Ich aber selber noch nicht im Einsatz! ).
    Bei 15V und 10 Bit bedeutet ein Bit 15mV ohne die Fehler, die der A/D ohnehin noch zusätzlich macht.

  2. #12
    HaWe
    Gast
    Ich habe mehrere davon, am Raspi und am esp8266, und auch der ads1115 braucht eine absolut zuverlässige, stabile Vref., sonst misst der auch Mist.
    Nimmt man für ihn als Vref die, die der µC-Pin bietet (5V/3v3 am Arduino oder 3v3 beim Raspi) führen schon kleine Schwankungen, die der DC/DC Wandler per Versorgungs-Netzteil oder USB produziert, zu unsauberen Werten - ansonsten wäre er OK.
    ads1115 geht also, braucht dann aber eine andere, externe, saubere, superstabile Vref, plus eine Eichtabelle.
    Geändert von HaWe (07.10.2020 um 09:59 Uhr)

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    865
    Ein BMS ist keine Audioanwendung. Die einzigen relevanten Spannungen sind Ladeschluss und Entladeschluss. Die kann man bei drei Zellen auch mit 10 Bit gut mit zwei Punkten kalibrieren. Was dazwischen abläuft, interessiert eigentlich niemanden (Ober- und Unterhalb erst recht nicht, weil dann ist der Akku kaputt). In den Randbereichen verliert man durch den Quantisierungsfehler <20mV (vor dem Spannungsteiler) vielleicht 1% der nutzbaren Akkukapazität. Aber wenn man mit einem handelsüblichen 3,5-stelligen DMM kalibriert, kommt man in der Regel auch nicht weiter als 11..12 Bit (je nach Ausführung schalten die bei 2.048V oder 4.096V den Bereich um). Und man schont den Akku, wenn man von den Grenzen wegbleibt.

    Aber mal eine ganz andere Frage:
    Moppi, bleiben die 12k Spannungsteiler im Dauerbetrieb an den Akkus? Dann achte mal darauf, ob die oberen Zellen nach einiger Zeit anfangen, zu balancieren.
    (Ich kann's nur vermuten, den Fehler hab ich auch bei meinem ersten BMS gemacht. Das lässt sich aber relativ einfach kompensieren.)
    Geändert von Holomino (07.10.2020 um 10:31 Uhr)

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Ja, die Spannungsteiler bleiben immer dran. Ich habe mir mit den Zellen untereinander da bis jetzt
    keine Gedanken gemacht, dass die über die Widerstände miteinander verbunden sind.
    Daher habe ich keine Idee, wie sich das auswirkt. Ebenso, wie die zu einer dauernden Entladung,
    von einigen Milliampere, führen. Aber da habe ich mich diesmal vom Datenblatt leiten lassen und bin
    an die 10k-Ohm-Grenze gegangen (wegen dem ADC), sonst habe ich 10fach größere Werte verwendet.
    Kann natürlich sein, dass die Widerstände den Ladevorgang stören. Weiß ich noch nicht, hoffe ich nicht.

    Also ich habe ja - wenn - dann ein automatisches Ladegerät, dass ich anschließen will, nur will ich
    den Akku nicht so stark belasten, bzw. will ich den lange erhalten, deshalb die Überwachung der
    einzelnen Zellen. Habe ich noch nie gemacht, mein erstes Mal.

    Meine Erkennung am unteren Ende soll bei 3.4 bis 3.7V liegen, oder etwas höher: 3.8V wären auch
    kein Problem, nur niedriger wäre ein Problem, wegen Tiefentladung. Die untere Schwelle würde ich
    bei 3.7V ansetzen wollen. Mit einem Fehler von 0.2V käme ich im schlimmsten Fall bei 3.5V raus,
    die die erste Zelle hätte, wenn ich 3.7V als Digitalwert ermittelt hätte. Das würde gerade passen,
    ungenauer sollte es nicht sein. Falls es doch ungenauer wäre, müsste ich die untere Schwelle nach
    oben verschieben. Dann 3.8V, dann nach 3.9V und irgendwann ergibt das dann keinen Sinn mehr.


    Ein Überladen der Zelle ist praktisch ausgeschlossen, weil ich einen Automatiklader mit Balancer anschließe.
    Ziel ist aber, den Balancer möglichst nicht zu nutzen. Nur dann, wenn die Zellen zu weit auseinander
    liegen, in ihrer Spannung. Das heißt ich würde etwa bei 4.0V pro Zelle die Ladung abbrechen. Sobald
    also eine Zelle die 4.0V erreicht hätte. Liegen die Zellen zu weit auseinander, würde ich länger laden
    wollen, so dass die Zellen angeglichen werden. Würde eine Zelle die 3.7V erreichen, würde ich nachladen
    wollen.


    Ich habe ein Testprogramm laufen lassen, um zu sehen, was der A/D-Wandler für Werte ausgibt.
    Die Werte schwanken +/-5.

    Nachtrag:
    -----------

    Ich habe eine Funktion nachgeschaltet, welche die Werte nochmals stabilisiert. Jetzt habe ich
    bei den ausgegebenen Werten keine Schwankungen mehr. Allerdings habe ich dazu die Funktion
    auf Schwankungswerte +/-7.5 umgestellt. +/-5 waren noch was zu wenig.

    Auf der zweiten Nachkommastelle, wenn ich den Wert per Taschenrechner umrechne, sehe ich,
    dass es nicht linear ist, was da gemessen wird. Da gibt es noch Kompensationsrechnungen
    (s. Datenblatt), die ich aber nicht anwende, weil mir sind die zu kompliziert für den Zweck.
    Aber die erste Nachkommastelle, der ausgerechneten Spannung, ist sehr zuverlässig.
    Da bin ich schon mal froh. Einen zuverlässigen oberen und unteren Punkt zu ermitteln und
    stabile Werte zu messen, die diese Punkte der Ladezustände repräsentieren,
    sollte damit nun kein Problem sein.

    Im Anhang, mein Traffic-Log, unter ASCII die Werte, die 12.xxV entsprechen.
    Die Werte sinken, weil die Akkuspannung sinkt.

    trafficlog.txt
    Geändert von Moppi (07.10.2020 um 16:36 Uhr)

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    865
    Ok, die Sache mit dem Ungleichgewicht über die Messteiler sieht folgendermaßen aus:

    Die Ströme über die Spannungsteiler kann man sich errechnen über I=U/R. Da aber der Strom des höchsten Spannungsteilers über alle Zellen fließt (er fließt ja wieder gegen Masse), führt das zu einem Ungleichgewicht in Deinen Zellen. Ich hab Dir das mal im Bild aufgemalt.
    Klicke auf die Grafik für eine größere Ansicht

Name:	Fehlstrom.jpg
Hits:	8
Größe:	34,9 KB
ID:	35248
    Das Ungleichgewicht von 675µA zwischen unterster und oberster Zelle scheint nicht viel, summiert sich aber auf 16,2mAh/Tag oder 113mAh/Woche auf. Langfristig ist also die unterste Zelle immer leerer, als die anderen Zellen.

    Man kann das durch einen passenden Widerstand parallel jeweils zu den oberen Zellen kompensieren (ich konnte das damals nachträglich beheben, indem ich direkt an den Stecker auf der Platine zwischen die Lötpads die passenden Widerstände gepatcht habe). Auf dem Bild findest Du R7 als Beispiel. Die Berechnung folgt aus der Annahme, dass ich die erhöhte Stromentnahme von 1350µA in der untersten Zelle nicht verhindern kann (das Kind ist ja bereits in den Brunnen gefallen) aber zumindest dafür sorgen kann, dass der gleiche Strom auch von der obersten Zelle entnommen wird, damit sich das Akkupack nicht gravierend debalanciert. Also
    3,7V/(1350µA - 675µA)*** = 5,5kOhm. Dieser Widerstand bewirkt, dass auch aus der obersten Zelle (grob) 1375µA dauerhaft entnommen werden.

    Das Gleiche kannst/musst Du auch für die mittlere Zelle machen, bei der untersten Zelle erübrigt sich der parallele Widerstand ja.
    Geändert von Holomino (07.10.2020 um 16:43 Uhr) Grund: ***Da Stand ursprünglich Blödsinn

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Danke, für Deine ausführliche Erklärung!
    So ähnliche Gedanken sind mir auch schon gekommen, aber ich war - zugegeben - zu bequem, das aufzumalen.
    Die Frage, die auftaucht ist, inwiefern sich das auf die Unterschiede der Ladezustände auswirkt, also wie groß
    der Unterschied am Ende wirklich ist, wenn die erste Zelle 3.7V z.B. erreicht. Wieviel Volt hat dann die Letzte?
    Dann müsste ich u.U. bei jedem Laden die Zellen balancieren, was entgegen meiner Vorstellung wäre.
    Einen Ausgleichswiderstand einzusetzen könnte dann wirklich das Ladegerät stören, wenn die andern Widerstände
    das noch nicht tun. Weil der ist ja dann rel. klein, gegenüber den anderen.
    Eventuell stört es auch das Ladegerät, wenn die Zellen auf diese Weise zu unterschiedlich entladen sind. Dann
    streikt das vielleicht.
    Ich glaube, ich muss jetzt mal eine Balancerbuchse auf die Platine auflöten, um den Akku dort dran zu stecken
    und diese Fragen zu klären.

    Nachtrag:
    ----------

    Ich komme mit den Zahlen noch nicht zurecht.
    Ich habe gerechnet, bei 12V und 12.2kOhm:


    0.0009836A für die erste Zelle, die am stärksten, durch alle Spannungsteiler, belastet ist.
    Wenn aus einer Zelle 1Ah entnommen werden können, dann sind das 1000h, bis die erste Zelle
    3.7V oder 3,5V erreicht hätte. Das entspräche th. 41 Tagen. Dann wäre die erste Zelle entladen
    und die dritte Zelle fast noch voll. Wird der Unterschied der Zellen zu groß, könnte das
    Ladegerät streiken. Dann müsste ich drauf achten, dass die Zellen nicht mehr als 0.2V
    auseinander liegen (k.A., ob der Wert realistisach ist oder noch mehr geht).
    Wenn die erste Zelle bei 4V wäre (z.B.) müsste ich den gesamten Akku nachladen, inkl.
    Balancer am Schluss. Ich habe grob gerechnet: bis die 4V erreicht wären, wenn das Gerät
    ungenutzt bleibt, könnten realistische 2 bis 5 Tage vergehen. In den Abständen müsste dann
    geladen werden. Wenn das Gerät nicht ungenutzt bleibt, sondern was tut (staubsaugen bspw.) wäre
    der Akku in 20min bis 1h leer und müsste geladen werden. In dem Fall würde der geringe
    Entladestrom, über die Spannungsteiler, nicht ins Gewicht fallen, die Zellen würden nahezu
    gleich entladen?


    Ich habe keine Widerstandswerte, welche ich einsetzen könnte, für die Parallelwiderstände.
    Ich bräuchte wohl 6,1k und 12.2k. Die Schaltung zu verkomplizieren, dass ich die
    Spannungsteiler wegschalten kann, wenn nicht gemessen wird, habe ich nicht wirklich vor.


    Die letzte Sache wäre, zwei Spannungsteiler auszubauen und nur die Gesamtspannung am
    Akku zu messen. Dann könnte ich nicht beurteilen, wie voll jede Zelle wirklich ist, sondern
    nur erkennen, ob der Akku eine Macke hat (weil sich die Ladezeit verlängert).


    Diese Möglichkeiten habe ich.

    Vielleicht denke ich irgendwo falsch, dann würde ich mich über Aufklärung freuen!

    MfG
    Geändert von Moppi (07.10.2020 um 18:51 Uhr)

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    865
    Mit Deinen Werten gerechnet: Nur durch Deine Spannungsteiler bewirkt fließen durch:
    - die oberste Zelle I3=12V/12,2k= 0,98mA
    - die mittlere Zelle I2= 8V/12,2k + I3 = 0,66mA+0,98mA = 1,64mA
    - die unterste Zelle I1 = 4V/12,2k+I2 = 0,33mA + 1,64mA = 1,97mA

    Alle Messteiler liegen gegen Masse, d.h.
    - I3 fließt durch die Zellen 1,2 und drei
    - Durch Zelle 2 fließen 0,66mA in den dort angeschlossenen Spannungsteiler UND zusätzlich I3 zu Zelle3 (da muss man die Ströme addieren)
    - Durch Zelle 1 fließen 0,33mA in den Spannungsteiler und alles, was durch Zelle 2 fließt

    Sprich: Alleine wegen der Messteiler fließen unterschiedliche Ströme in den einzelnen Zellen. Das summiert sich bei 24/7 Anschluss und wirkt wesentlich mehr auf das Zellungleichgewicht, als natürliche Effekte, für die ein Balancieren normalerweise gedacht ist.
    Bezogen auf Dein Beispiel mit 1Ah ist die unterste Zelle Deines Akkus nach ca. 500h leergesaugt, die oberste Zelle aber noch halb voll.
    Um die Zeit bis zum Leersaugen zu verlängern, kannst Du höherohmige Messteiler (z.B. 120k) einbauen. Dadurch verschwindet aber dieser Effekt der unterschiedlichen Ladezustände nicht. Wenn die unterste Zelle erst nach 5000h leer ist, wird die oberste Zelle immer noch halbvoll sein.

    Man kann durch regelmäßiges Balancen dagegenhalten, aber das Zellungleichgewicht ist systematisch durch den permanenten Anschluss der Spannungsteiler bedingt. Das kann man, wie oben beschrieben, durch zwei zusätzliche Widerstände kompensieren.

    Die Einzelmessungen ausbauen würde ich nicht. Auch ohne 100% Genauigkeit hat man zumindest ein Monitoring und für den Notfall auch eine Abschaltinformation.

    Wegen dem Gewackel der Messwerte (das bekommt man bestimmt besser hin):
    Hast Du die Messpannung an den ADC-Eingängen gesiebt (einfach einen Kondensator 10..100nF parallel zum unteren Teilerwiderstand)? (Kann man bei SMD wunderbar auf den Widerstand drauflöten)
    Hast Du mal eine Mittelwertbildung über mehrere Messungen probiert (16 mal aufaddieren und anschließend durch 16 teilen)?

  8. #18
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Zitat Zitat von Holomino Beitrag anzeigen
    Man kann durch regelmäßiges Balancen dagegenhalten, aber das Zellungleichgewicht ist systematisch durch den permanenten Anschluss der Spannungsteiler bedingt.
    Das ist mir klar geworden. Bloß, ich denke, das ändert nichts an der Sache, dass ich alle 2 bis 5 Tage diese 0.2V an der untersten Zelle verliere. Und dass, wenn viel Strom fließt und die Zellen schnell geleert werden,
    diese Ministröme weniger ins Gewicht fallen. Trotzdem altert dann die unterste Zelle am schnellsten, weil die mehr belastet wird. Wenn ich zwei Spannungsteiler weg lasse, habe ich dieses Problem nicht.
    Es ist ja durchaus üblich, bei LiPos, mit mehreren Zellen, nur die Gesamtspannung zu messen. Was ist besser? Ausgleichswiderstände sehe ich nicht, wie ich an diese Werte kommen soll, um die nachzurüsten.

    Wenn das Ladegerät mit den Spannungsteilern nicht zurecht kommt, werde ich zwei ausbauen. Ich muss das ausprobieren...



    Zitat Zitat von Holomino Beitrag anzeigen
    Wegen dem Gewackel der Messwerte (das bekommt man bestimmt besser hin):
    ...
    Hast Du mal eine Mittelwertbildung über mehrere Messungen probiert (16 mal aufaddieren und anschließend durch 16 teilen)?
    Antwort:

    Zitat Zitat von Moppi Beitrag anzeigen

    Nachtrag:
    -----------

    Ich habe eine Funktion nachgeschaltet, welche die Werte nochmals stabilisiert. Jetzt habe ich
    bei den ausgegebenen Werten keine Schwankungen mehr.
    Noch eine kurze Erklärung dazu:

    Ich mache sowas ähnliches, wie Du mit dem Kondensator außen, Holomino.
    Bloß in der Software eben. Ich betrachte nicht einen einzelnen Messwert,
    ich addiere auch nicht mehrere Messungen. Da der verrauschte Bereich
    bekannt ist (habe ich mir angesehen), muss ich einen stabilen Wert
    daraus generieren, ich brauche irgendeinen Filter dafür. Die Verteilung
    der Werte ist recht gleichmäßig, ab und an schlägt ein Wert mehr nach oben
    aus, dann nach unten. Daraus bspw. den Mittelwert zu bilden würde,
    aufgrund der letzten Tatsache, wieder zu Schwankungen führen. Ich nehme
    einen Wert, aus dem verrauschten Bereich, den ich verwerte, die andern Werte
    ignoriere ich. Hinzu füge ich einen Wert, der mir bekannt ist, aber aus den
    Messungen nicht unmittelbar von Anfang an hervor geht (den Wert könnte ich
    th. auch im Betrieb, über eine längere Zeit, ermitteln). Das ist die Spanne, also
    diese +/-5 bzw. +/-7.5, die es um den idealen Messwert schwankt. So erhalte
    ich einen Bereich, in dem sich alle Meßwerte eines kurzen Zeitraums befinden.
    Natürlich ändern sich die Messwerte, weil sich die gemessene Spannung ändert.
    Beim Akkupack aber voraussehbar, nämlich stetig nach oben oder nach unten.
    Aufgrund dessen führe ich meinen berechneten Bereich nach, aus dem ich
    einfach den Mittelwert nehme. Die Nachführung entnehme ich den Grenzwerten
    des Rauschens.



    MfG

    PS:

    Die Werteschwankungen sind bei einfachen Wandlern normal.
    Es mag bessere Wandler geben, die stabilere Werte liefern.
    Ich hatte mal einen 12Bit-Wandler in den 90gern gekauft.
    Funktionierte nach dem Prinzip, wie die in den ATmega328P.
    Der hatte Schwankungen, die sich mindestens über die
    untersten 4 Bit erstreckten. Ich habe das Teil an jemand
    verschickt, der sich das auch angesehen hat. Hat den selbst
    beschaltet. Der kam zu dem gleichen Ergebnis.
    Geändert von Moppi (08.10.2020 um 10:24 Uhr) Grund: Erläuterung Funktion nach ADC

  9. #19
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    865
    Wie gesagt: Für das durch die Messteiler verursachte Ungleichgewicht sind jeweils ein Widerstand parallel zu oberer und mittlerer Zelle eine Lösung. Wenn Du die Widerstände nicht da hast, ist es ja kein akutes Problem, kann man später nachrüsten.

    Zum Flirren in den AD-Werten ist meine Erfahrung, dass alleine durch den Controller (eigentlich ein richtig fettes Schaltwerk, das man da einbaut) so ziemlich alle Eingangs-Pins einen Ripple von etwa 20..30mV abbekommen. Das fällt bei der Verwendung in der Regel erst beim ADC und beim Komparator negativ auf. Mit einem Kondensator parallel zum unteren Widerstand des Teilers und nicht zu weit vom Controller weg bekommt man diesen Ripple recht gut gedämpft. Aber auch das ist eine Sache, die Du bei entsprechender Laune (Lust) einfach mal ausprobieren kannst: Kondensator einlöten, Filter weg und den Hub des AD-Wertes bei konstanter Eingangsspannung beobachten.

    Muss man nicht tun, aber interessant wird's ja vielleicht für die nächste Schaltung.

  10. #20
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.643
    Ich kann ja mal einen Kondensator dran halten, mal sehen, was passiert.

    Habe es versucht:

    Mit einem Kondensator parallel zum unteren Widerstand des Teilers und nicht zu weit vom Controller weg
    Kein besseres Ergebnis, also ohne C. Habe 100nF genommen. Manchmal springen die Werte sogar noch stärker.
    Geändert von Moppi (08.10.2020 um 13:28 Uhr)

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Ähnliche Themen

  1. STM32 contra ARM Cortex M3 (Arduino Due, Teensy): Performance per Arduino vs. nativ C
    Von HaWe im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 14
    Letzter Beitrag: 22.11.2017, 12:53
  2. Antworten: 13
    Letzter Beitrag: 07.11.2015, 02:21
  3. Mit Näherungssensor Drehzahlen abgleichen und anzeigen?
    Von blubb111 im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 12.06.2010, 21:56
  4. 6DOF: Gyro, Beschleunigung, GPS was mit was abgleichen?
    Von reflection im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 03.02.2009, 18:39
  5. I/0 Ports ; A/D Wandler ; D/A Wandler am Laptop?
    Von jojo.glaser im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 31.05.2006, 20:15

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test