Stromfluss erkennen

TommyB

Team Bitschubse
17. Mai 2010
2.151
80
48
40
127.0.0.1 ;)
Sprachen
  1. C#
  2. VB.Net
  3. LunaAVR
  4. Assembler
  5. Python
Hiho,

es geht um meinen Akkutester. Der ist hier ja schon öfters vertreten.
Um den Akku zu testen muss er natürlich voll sein. Ich lade den mit dem MAX1811. Mache ich auch schon 1 Jahr lang ohne Probleme. Aber es gibt da jetzt ein kleines Problem. Der MAX1811 hat einen TTL Ausgang ob er noch am laden ist oder nicht. So dachte ich zumindest. Das Signal gibt nur an ob die Ladeschlussspannung erreicht ist oder nicht. Aber auch dann fließt noch weiter Strom in den Akku bis er "wirklich" voll ist.

Der MAX frisst bis zu 500mA (gehen wir vorsichtshalber von 600 aus). Großer Spannungsfall darf natürlich nicht sein, Uin ist 5V, bei 4,2V Schlussspannung darf da nicht viel verloren gehen.
Ich bräuchte auch wieder ein TTL Signal. Der exakte Schwellenwert ist jetzt nicht so wichtig, 20-50mA sollten schätz ich ok sein. Ich mess das aber mal nach wenn ich wieder einen (wirklich) vollen Akku habe.

Ich bräuchte also eine minimalistische Schaltung um den Strombedarf des MAX1811 zu messen.
Irgendwelche Ideen?
 
Hmm... 'n kleinen (geeigneten) Shunt in die Versorgung des MAX, die abfallende Spannungsdifferenz über'n OPAMP als Differenzverstärker (oder gleich 'n Instrumentenverstärker) ... ähm... verstärken, und zwar so, daß die Schaltschwelle (Controllereingang) eben Deinem gewünschten Strom entspricht...
(alternativ eben auf den ADC)
kann man da eigentlich alles ausrechnen...
Prinzip im wesentlichen klar?

Wir hatten hier in einigen Schaltungen den AD620 im Einsatz... laut Datenblatt soll man sich auch mal den AD8421 bzw AD8422 ansehen...

Der Minimalismus sollte sich dann eigentlich nur auf den Shunt und die Wahl des Verstärkungswiderstandes beschränken... und ein paar Leiterbahnen.
 
Hi,

schon mal an den Stromsensor auf Halleffektbasis aus Dirk seinem Shop gedacht?
Der hat wenig (so gut wie nix) Spannungsabfall und ist sogar noch potentialfrei.
Außerdem ist das IC recht klein (SOIC8).

Die Platine mit dem OPAmp drauf ist allerdings wegen den schlecht einstellbaren Potis nicht notwendig.
Auch mit Spindeltrimmern ist das noch recht frickelig wenn man den Einstellbereich nicht eingrenzt.

Der AC712 kann bis 5A messen. mikrocontroller-praxis.de - ACS712 Breakout
Da er 0-5V am Ausgang liefert könnte man ihn sogar direkt an einen ADC-Eingang des Atmels packen.

Gruß
Dino
 
Das mit dem AD620 schaut gut aus, das könnte ich wohl noch mit rein quetschen. Aber ich hab keine Ahnung wie man das aufbauen könnte und vor allem welche Widerstände. Mit OpAmps hab ich ja noch nie wirklich was gemacht (von fertigen Schaltplänen nachbauen und mal durchklingeln abgesehen).

Einen ADC Pin habe ich nicht mehr frei, daher muss das am Digital I/O Pin gehen. Da fallen die fertigen Module raus. Die wären mir dafür auch etwas zu teuer (sorry). Ich muss ja nichts messen sondern nur grob erkennen ob noch Strom fließt. Ob es nun exakt 10 oder 20mA sind ist hier nicht sooo wichtig.

Ich werd das jetzt eh erstmal mit dem Signal vom MAX belassen, weil ich muss so langsam mal Erfolge sehen, auch wenn die Ergebnisse denn nicht ganz stimmen. Sonst verlier ich noch die Lust :)
Auch wenn die Arbeit daran bisher durchaus erheiternd war (siehe hier).

Aber sobald alles so läuft gehts denn gleich daran.
 
Vielleicht wäre noch eine Möglichkeit selber einen Opamp als Differenzverstärker einzusetzen, dessen Ausgang an einem Komparatoreingang des Mikrocontrollers angeschlossen ist (oder Komparator nachgeschaltet, falls kein Modul vorhanden). Man müsste halt schauen, ob der Shunt-Widerstand ausreichend klein gewählt werden kann, so dass nicht so viel Spannung abfällt, diese aber noch ausreichend gemessen werden kann.

Dirk :ciao:
 
Sowohl bei den Hall-Sensoren (war ich nicht drauf gekommen - schau ich jetzt aber auch nicht in die Datenblätter), als auch bei den Differenzverstärkern/Instrumentenverstärkern liegt das Ergebnis dann als analoge Spannung vor, die weiterverarbeitet werden muß.

Generell kannst Du natürlich den internen AnalogComperator auf diese kritische Spannung triggern lassen. Wenn Du diese kritische Spannung so wählen/verstärken/einstellen kannst, daß sie zur internen Referenz paßt, kommst Du mit dem AIN1-Pin aus - ansonsten brauchst Du beide AIN-Pins.
Wenn Du allerdings auf'n rein digitalen Pin als Eingang angewiesen bist...
Die digitalen Pins des Controllers sind aber (analog gesehen) mit einer Hysterese behaftet - arbeiten quasi wie ein Schmitt-Trigger.
Du willst hier ja die Zustände Gesamtstromaufnahme des MAX beim Laden/wenn voll abbilden auf nen sicheren low/high-Pegel. Also einerseits auf weniger als 0,3*Vcc auf der einen, und mehr als 0,6*Vcc auf der anderen Seite.
Zu den Hallsensoren kann ich nichts sagen...

Zu den Instrumentenverstärkern:
Diese ICs sind darauf ausgelegt, die Spannungsdifferenz ihrer Eingangspins um einen festen Faktor (Gain) verstärkt auf den Ausgang zu legen.
Die Verstärkung wird durch einen einzigen Widerstand festgelegt. Die Formel steht im entsprechenden Datenblatt.
Beim AD620 kann die Verstärkung von Faktor 1 bis Faktor 10000 eingestellt werden, allerdings müssen positive und negative Versorgungsspannung mindestens 1,6V "außerhalb" der Messeingänge liegen
Der AD8422 ist Rail to Rail - allerdings scheint die Verstärkung hier "nur" bis 1000 zu reichen...

Wir haben bei AD definitiv diverse Samples ordern lassen - allerdings war das für einen Prototypen für das IS2M
(Institut de Sciences des Matériaux de Mulhouse)
 
Hi,

Die digitalen Pins des Controllers sind aber (analog gesehen) mit einer Hysterese behaftet - arbeiten quasi wie ein Schmitt-Trigger.
Du willst hier ja die Zustände Gesamtstromaufnahme des MAX beim Laden/wenn voll abbilden auf nen sicheren low/high-Pegel. Also einerseits auf weniger als 0,3*Vcc auf der einen, und mehr als 0,6*Vcc auf der anderen Seite.

bist du dir sicher das die Digitalen IO-Pins einen SchmittTrigger haben oder eine Hysterese?

Nach meiner Meinung sind die Werte aus dem Datenblatt nur der Bereich in dem ein sicheres High oder Low garantiert wird. Dazwischen kann der Zustand High oder Low sein aber ohne Garantie. Es kann also bei Exemplarstreuungen auch mal nicht so sein. Eben ein undefinierter Bereich.

Gruß
Dino
 
Hmm...
kann natürlich auch wird wahrscheinlich so sein...
sollte sich mit'nem Oszilloskop ja rausfinden lassen (Dreiecksspannung auf einen Eingang legen, und in einem schnellen Programm 'nen anderen Pin schalten lassen. Verzögerung sollte such auf wenige hundert ns bringen lassen...)
Dann könnte man also versuchen, die tatsächliche Triggerschwelle des konkreten Pins zu ermitteln, und die analoge Spannung des Stromsensors (welchen auch immer) darauf abzustimmen.
Meiner Meinung ist es aber trotzdem sicherer, die beiden relevanten Zustände auf sichere Pegel abzubilden/verstärken. Außerhalb des undefinierten Fensters...

(Danke für die Korrektur - hätte mir hier wieder ein falsches Bild gemacht)
 
Ja, eine Schmitt-Trigger-Funktion haben die Eingangsstufen nicht. Nach meinen Erfahrungen sind die tatsächlichen Schwellen enger zusammen, ich würde hier aber nicht für einen Controller und für einen Eingangspin diese Schwelle ermitteln und dafür ein analoges Signal (Verstärkung des OpAmp) anpassen. Nichtmal für ein einmaliges Hobby-Bastelprojekt, das fände ich zu aufwändig und unsicher. Wenn man eine Schwelle nicht mit dem Komparatormodul messen kann, weil vielleicht die Pins belegt sind, dann kann man auch vielleicht einfach einen günstigen Komparator (LM393 o.ä um die 15cent) verwenden, der einen normalen IO Pin ansteuert. Eine kleine Hysterese kann man da auch schnell realisieren (Gegenkopplung mit R).

Dirk :ciao:
 
Zusammenfassend:
  1. bei der Verwendung der rein digitalen I/Os sollte man (trotz genauererer Schaltpunkte eines konkreten Pins) ausserhalb des unsicheren [0,3*Vcc..0,6*Vcc]-Fensters bleiben
  2. Thomas wünscht eine "minimalistische" Schaltung, also möglichst einfach/Bauteilarm, aber hinreichend genau und verlustarm. Ausserdem auch "kostenarm" ("Preiswert"?)
  3. als Maximalstrom wird von 0,6A ausgegangen, die Spannung darf dabei durch einen etwaigen Shunt höchstens um ???V einbrechen
fehlt noch:
  • welche Pins stehen nun zur Verfügung?
  • wie hoch ist die maximale Stromaufnahme, wenn das laden abgeschlossen ist?
  • wie hoch die minimale während des Ladens (die Stromaufnahme wird ja bis zur "Erhaltungsladung" oder so abnehmen)

@Dirk: kommt man mit solchen Comperatoren auch hinreichend dicht an die Versorgungsspannung ran? Mit 'ner zusätzlichen Versorgung (zB 'nen MAX232 anzapfen) müßte der Ausgang dann auch wieder begrenzt werden...
 
@Dirk: kommt man mit solchen Comperatoren auch hinreichend dicht an die Versorgungsspannung ran? Mit 'ner zusätzlichen Versorgung (zB 'nen MAX232 anzapfen) müßte der Ausgang dann auch wieder begrenzt werden...

Also beim genannten LM393 zB ist es ein OC Ausgang, den könnte man direkt an einen Input Pin des Mikrocontrollers mit aktiviertem Pullup anschließen. Das wäre somit ideal. Ich würde davor dann einen Opamp als Differenzialverstärker schalten dessen Ausgang an einem Komparatoreingang angeschlossen ist. Eleganter wäre es natürlich, wenn man das Komparatormodul des Mikrocontrollers verwenden könnte.

Dirk :ciao:
 
Also, es sind eigentlich alle Pins belegt. Einzige Ausnahme sind:
PC4 / ADC4 / SDA - und
PC5 / ADC5 / SCL
die ich eigentlich (weil I²C/TWI) gerne reserviert halten würde für eventuelle spätere Basteleien. Wenn alles Andere zu kompliziert werden würde würde ich die aber lieber opfern.
"Frei" wäre auch der PD3 / INT1. Da liegt jetzt das Signal vom Max an.
AIN0 und AIN1 könnte ich umbelegen. Wenn beide belegt werden müssen muss ich halt auf TWI verzichten.

Betriebsspannung sind 5V, der Max braucht mindestens 4.35V (laut Datenblatt), es dürften also maximum 0,65V abfallen.
Gemessen hab ich jetzt:
I Leerlauf (kein Akku eingelegt): 0,9mA
I Last (Akku voll): 14mA
I Last (Akku nahezu leer): 330mA
Ich habe jetzt aber nur einen Akku gemessen.


p.S.: Dirk du bist gemein. Da postest du ne Antwort, man will zurück schreiben und zack: Is nich weil Wartungsarbeiten ^^'


Edit: Ach ja, es ist ein Mega168
 
Hmm...
Vielleicht solltest Du mal die Hosen runterlassen, und uns die komplette Schaltung zeigen. Ich gehe mal davon aus, Du versorgst das mit 5V (wie sauber und stabil?), da hängt dann einerseits der Mikrocontroller (+Display usw) dran, andererseits der LiIo-Laderegler (MAXirgendwas).
Die Ströme beziehen sich auf den MAX.

Theoretisch könntest Du einfach einen geeigneten Shunt (zB Deinen 0,1 Ohm) direkt vor den MAX klemmen, und über einen Spannungsteiler die Spannung hinter dem Shunt auf AIN1 legen. Auf den nicht Invertierenden AC-Eingang wird die interne Referenz (1,1V ?) geschaltet.
Bei 14 mA fallen am 0,1 Ohm-Shunt 1,4mV von Deiner Versorgungsspannung (!!) ab. Also von 5V auf 4,9986V (das wäre Deine Triggerschwelle). Diese 4,9986 V müßte der Teiler auf 1,1V runterteilen.
Wie Du siehst, mußt Du den Teiler also präzise auf die Versorgungsspannung und Referenz einstellen... Rauschen und so noch gar nicht berücksichtigt...

Mit 'nem Differenz- oder Instrumentenverstärker wird der Vergleich selbst von der konkreten Versorgungsspannung unabhängig - eben weil die Differenz vor und hinter dem Shunt verstärkt wird. Allerdings ist mi nicht ganz klar, wie dicht die Eingänge an die Versorgungsspannung des Verstärkers herankönnen. Beim AD620 scheinen da 1,6V Luft in jede Richtung nötig zu sein, bei dem anderen finde ich nix zu...
Aber vielleicht interpretiere ich das eh falsch... (Dino?)
Du kannst den Verstärker natürlich mit 'ner größeren Spannung versorgen. Allerdings ist dann zu berücksichtigen, daß die ausgegebene Verstärkte Spannung dann ggf über die Zzulässige Eingangsspannung des Controllers geht.
Dann müßte man (wie Dirk gesagt hat) einen externen Comperator mit OC-Ausgang dazwischenhängen, ansonsten könnte man die sinnig verstärkte Differenzspannung auf den internen Comperator gegen die interne Bandgap legen.

Sinnig? Nun, 1,4mV sollen auf 1,1V verstärkt werden... das wäre ein Verstärkungsfaktor von ca 786 (Gain).

Sollte sich mit dem AD8422 also realisieren lassen.
Irgendwo hattest Du mal 600mA durch den MAX als extremwert angegeben... dann hätte der Shut einen Voltage-Drop von 60mV. Der Verstärker würde versuchen, auf 47V hochzudrehen, also seine pos. Versorgungsspannung (soweit er das kann) auf den Ausgang legen.

Hast Du jetzt n etwa ein Bild vor Augen?
 
Die Lösung mit der Messung nach dem Shunt über Widerstands Teilung am Komparator Eingang gegenüber der Referenzspannung wird nicht funktionieren, da
  • die Spannungsquelle eine sehr gute Referenzspannungsquelle sein muesste und
  • alle Widerstände so gut wie null Toleranz und Temperaturdrift haben dürften und
  • die interne Referenz dafür nicht gut genug ist und
  • es alles nicht ausreichend emv tolerant wäre.
 
Deswegen hatte ich ja auch "theoretisch" geschrieben, und hinterher versucht anzudeuten, daß dieser Weg (unmöglich) hohe Anforderungen an die Präzision der Eingangsspannung, der Widerstandswerte und die interne Referenz stellen würde.
Was meinst Du mit "Referenz nicht gut genug"? die Präzision und Stabilität, oder was? (Rechnerisch könnte man mit einem Teiler die 4,9986V auf 1V1 runterteilen - daß es praktisch wegen der gesagten Gründe aber nicht machbar ist, ist klar.

Bleibt, wie gesagt, die am Shunt abfallende Spannung über einen Verstärker (Differenz- oder Instrumenten-) zu verstärken, und dann mittels Comperator in den Controller. Inwiefern da jetzt der interne reicht (minimalistisch), oder ein externer verwendet werden muß, ist noch nicht entschieden. Immerhin hat Thomas bereits einen AIN angeboten...

Ich würde an Thomas Stelle einfach mal versuchen, den RtoR-Instrumentenverstärker als Sample zu ordern, und das über den internen AC angehen.
Hmm... Dein Oszi hatte leider nur einen Kanal, oder?
 
Was meinst Du mit "Referenz nicht gut genug"? die Präzision und Stabilität, oder was? (Rechnerisch könnte man mit einem Teiler die 4,9986V auf 1V1 runterteilen - daß es praktisch wegen der gesagten Gründe aber nicht machbar ist, ist klar.

Man müsste ja im Bereich 1mV messen, die Toleranz ist viel zu groß (+-0,1V?). Soweit ich weiß, liegt die Abweichung der Bandgap Referenz in Abhängigkeit von der Temperatur über den zulässigen Bereich bei knapp 10mV. Es würde also nichts nutzen einmal bei 25°C die Widerstände zu kalibrieren. Ist aber eigentlich auch egal, man bräuchte hier auch eine Betriebsspannung von 5,000V und das ganze wäre viel zu empfindlich.
 
Ich hab echt den Schaltplan vergessen 0.o
Hätt fast schwören können dass der hier noch rum fliegt...

Also, das ist der aktuelle Plan:
liio_check.png

Betriebsspannung ist so eine Sache. Versorgung erfolgt über USB oder halt USB Netzteil. Kommt halt drauf an was die ausgeben. War ja definiert als "irgendwas zwischen 4,5 und 5,5V". Die interne Referenz scheint es auch nicht so genau zu nehmen:

Betriebsspannung vs. gemessene Akkuspannung (auf 5V "geeicht"), 64 Messungen nacheinander gegen 1.1V intern, umgerechnet:
4,49V -- 3,681V
5,01V -- 3,687V
5,50V -- 3.695V

Zugegeben die Abweichung ist nur minimal und die Netzteile die ich verwenden geben auch recht genaue 5V aus. Aber unter Garantie nicht bis auf die 4. Stelle hinterm Komma.

Puuh, ihr habt so viel geschrieben, auf jeden Fall schon mal ein dickes Danke! Ich hoffe mal ich übersehe nichts.

Auf jeden Fall muss ich mich noch schlau lesen über diese Themen. Meine Hoffnung war ja dass es in einfach und klein geht. Ok, mit einem fertigem Modul, ja. Wenn ich das hetzt richtig verstanden habe:
Analog Comperator = Vergleich von 2 Spannungen, logischer Ausgang wenn 1 höher/niedriger ist als 2.
Dieser OpAmp = Vergleich von 2 Spannungen, Differenz mit variabler Verstärkung als Ausgang.
Sprich der AC wäre quasi wie der OpA nur mit "unendlicher" Verstärkung?


Was ich jetzt komplett vergessen hatte, ich hatte mir vor längerer Zeit weil Reichelt den MAX1811 nicht mehr hatte mal bei FastTech LiIO Lader bestellt. Für unter 1€/Stück 2-3x billiger als allein der MAX. An die hab ich grad erst gedacht als mir eine von denen sprichwörtlich entgegen geflogen ist. Vielleicht ist das Signal ja besser, sprich wenn der Akku wirklich voll ist. Das werd ich mal überprüfen sobald ich wieder einen leeren Akku habe. Weil es ist ja so, you get what you pay for. Ob die wirklich was taugen...
Diese Module schalten übrigens (laut Datenblatt, TP4056) bei ~100mA ab, macht 10% des eingestellten Ladestroms, wenn ich das richtig interpretiere.
 
Bei den SMD-Versionen hättest Du noch 2 ADC-Kanäle mehr...
Zu dem anderen Lader mach ich mir erstmal keine Gedanken...

Ja, so'n Comperator ist quasi 'n OPAMP mit (möglichst) unendlicher Verstärkung. Entsprechend kommt es hier nicht auf die Linearität der Verstärkung an, sondern eher auf die Schaltgeschwindigkeit und so, Außerdem gibt es hier welche mit OC-Ausgang.

Ein Instrumentenverstärker ist eine Erweiterung der Verschaltung eines Opamps als Differenzverstärker. Das ganze besteht aus 3 OPAMPs, und den nötigen Widerständen in einem integrierten (und abgestimmten) Schaltkreis. Ein IC eben. Lediglich ein Widerstand ist extern festzulegen/anzuschließen, der eben den Verstärkungsfaktor festlegt. Schau mal hier.
 
Ich habe jetzt mal den anderen Lader auf Herz und Nieren getestet.
Der läuft überraschenderweise sehr gut!
Das "Ich habe fertig" Signal geht wirklich erst an wenn der Ladeschluss-Strom erreicht worden ist, anders als beim MAX1811 wo nur der Wechsel von CC/CV angezeigt wird. Außerdem schaltet der MAX das Laden nicht ab, schiebt also ständig weiter Strom in den Akku rein (auch wenn es nur ein paar mA sind, gut ist es ja nicht).

Ich werde wohl den MAX raus nehmen und die andere Schaltung verwenden. Das hätte auch noch einen weiteren Vorteil: Ich kann den Strom frei einstellen über einen Widerstand (ok ich müsst den Alten erst ablöten, aber was macht man nicht alles...). Ähnliches hab ich ja auch bei der Entladeschaltung wo es möglicherweise möglich ist den Strom per Poti zu verändern. Da würde sich ja ein 2x digital Poti anbieten. Hmmm...
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)