- 3D-Druck Einstieg und Tipps         
Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 31

Thema: Arduino AD-Wandler abgleichen

  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    2.387
    Blog-Einträge
    25

    Arduino AD-Wandler abgleichen

    Anzeige

    Praxistest und DIY Projekte
    Hallo!

    Ich habe bisher nie die Genauigkeit benötigt. Da ich jetzt aber die Spannung einzelner LiPo-Zellen messen will, frage ich mich wie ich das am Gescheitesten anstelle, da die Spannungsteiler minimal unterschiedlich und schon verbaut sind. Ich kann mir einen ziemlich neuen LiPo hernehmen, die Zellenspannung mit einem Multimeter messen, die Werte notieren, den LiPo an meiner Platine anschließen und dann die AD-Werte ermitteln. In der Annahme, dass alle Zellen sich in den ersten Minuten gleichmäßig entladen (denn das wird unweigerlich passieren, wenn ich den LiPo an die Platine anschließe). So könnte ich die zuvor mit dem Multimeter gemessenen Werte mit den dann etwas später ermittelten Digitalwerten in Beziehung setzen, um unter dem Strich möglichst genaue Messwerte der einzelnen Zellen zu erhalten. Wäre das so brauchbar oder am Ende doch zu ungenau, da ich ja doch schon gerne 0.1V oder sogar, noch besser, 0.01V Genaugkeit haben möchte?

    MfG

    - - - Aktualisiert - - -

    PS: Spannungsteiler mit Metallfilm-Widerständen

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.12.2018
    Beiträge
    315
    Wenn du (verstehe ich das richtig) deine AD-Wandler kalibrieren willst, warum machst du das nicht mit einer unabhängigen Referenzspannung? Der Akku wird je nach Belastung, Ladezustand, Temperatur usw. keine verlässlichen Kalibrierwerte liefern. Nimm doch ein Labornetzteil, stell konstante Spannungen ein und gleiche die ADC daran ab. Notfalls tut es wahrscheinlich schon sowas.

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    2.387
    Blog-Einträge
    25
    warum machst du das nicht mit einer unabhängigen Referenzspannung?
    Weil die Platine fertig ist.

    Auf jeden Fall, danke für Link!

    Ich hätte auch die Möglichkeit, an den eingelöteten Widerständen ein Multimeter anzuschließen und zu messen, während ich den Wert vom AD-Wandler auslese. Wahrscheinlich besser.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.12.2018
    Beiträge
    315
    Du musst doch nur die Referenzspannung da anschließen, wo sonst der Lipo ist. Das Problem verstehe ich nicht...

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    2.387
    Blog-Einträge
    25
    Durch vielfältige Überlegungen stand ich mir selber im Weg, bzw. auf dem Schlauch irgendwie.

    Ich habe ja einen Stecker, wo alle Anschlüsse der einzelnen Zellen zusammenkommen.
    Dort an diesen Stecker gehe ich auf der Platine dran, mit Spannungsteilern, damit ich es per
    AD-Wandler messen kann. Ein LiPo besteht aus drei Zellen, so dass ich drei Anschlüsse messen
    will, die aus dem LiPo raus führen. Wenn ich den LiPo angestöpselt habe, kann ich ja an den
    einzelnen Anschlüssen messen, sind dann nur zwei Widerstände dazwischen gegen GND,
    (vom Spannungsteiler) ca. 12kOhm.
    Geändert von Moppi (06.10.2020 um 14:26 Uhr)

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    25.12.2018
    Beiträge
    315
    Ich nehme an, die drei Zellen sind in Reihe geschaltet, um ~10 V zu erhalten.
    Wieso willst du die einzelnen Zellen messen? Beim Laden hältst du doch die Spannung sicher über einen Balancer an allen drei Zellen gleich.

    Willst du einfach nur wissen, wie hoch die Spannung jeder Zelle ist, um ungleichmäßige Entladung (wegen Alterung usw.) zu erkennen?

    Wie auch immer - da wo deine Platine misst, kannst du doch auch die Referenzspannung anklemmen.

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.04.2015
    Beiträge
    736
    Du kannst Dir auch mithilfe eines einstellbaren Netzteiles und drei niederohmigen Widerständen in Reihe (100R) einen Akkusimulator bauen.
    Da muss man dann zwar immer noch manuell messen (die Mesteiler auf Deiner Platine ziehen aufgrund der unterschiedlichen Spannungslage alle unterschiedliche Ströme), aber man kann so recht gut die beiden relevanten Spannungen (Ladeschluss/Entladeschluss) testen.

    Wenn Du die drei Zellspannungen misst, kommst Du ja mit 10 Bit nicht auf 10mV Auflösung. Dazu gibt's ne Softwarelösung: http://ww1.microchip.com/downloads/e...es/doc8003.pdf
    Das hat dann zwar nix mit mehr Genauigkeit zu tun, aber man sieht z.B. beim Laden besser und schneller Tendenzen.

    Ansonsten: Wenn Du beim Laden/Entladen etwas von den Nominalgrenzen wegbleibst, brauchst Du es nicht so ganz genau und es verlängert die Lebenszeit Deiner Akkus.

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.291
    Zitat Zitat von Moppi Beitrag anzeigen
    Arduino AD-Wandler abgleichen
    Hi Moppi,

    na der Titel ist wohl irreführend. Du willst nicht den AD-Wandler abgleichen sondern den Spannungswandler ausmessen - nicht wahr? (Abgleichen setzt ja immer Variationsmöglichkeit/en voraus).

    Der AD-Wandler sitzt bei meinen Platinen immer im Controller, zu dem gibts das Datenblatt und darin steht das "Übersetzungsverhältnis" - jedenfalls die Gleichung nach der man aus dem digitalen Output einer AD-Wandlung den am AD-Wandler anstehenden Spannungwert ermitteln kann. Ein Abgleich ist dafür nicht möglich. Voraussetzung ist auch, dass man sich auf die Controller-Versorgungsspannung der Platine verlassen kann - zumindest wenn man als Spannungsreferenz AREF nimmt. Bei Wandlungen mit der controllerinternen Spannungsreferenz ist das etwas anders.

    Du willst den Spannungsteiler genau ausmessen. Dazu reicht eine (später zu messende) Stromzelle oder ähnliche kleine Stromquelle, ein Poti, > 5k , z.B. ein Steckbrett, ein DMM, Papier und Bleistift. Poti auf Steckbrett, Stromquelle zwischen die beiden Potienden und Abgriff vom Poti auf den ADC-Eingang. Oder was am arduino so genannt wird. WENN zwischen Arduinoplatine und Arduinochip kein Bauteil hängt, dann kann man mit dem DMM direkt am Platineneingang messen, andernfalls am Controllerpinn des betrachteten ADC.

    Jetzt noch schnell ein Miniprogramm das den ADC-Wert ausliest (am Besten ein paarmal, die letze Messung gilt) und z.B. über UART ausgibt. Alles ein, leicht am Poti drehen bis die vermutet maximale Eingangsspannung ansteht und ADC auslesen. Notiere Spannung und ADC-Wert. (Eigentlich reicht das schon). Dann weit runter drehen bis etwa vermutet minimale Eingangsspannung ansteht und ADC auslesen. Notiere Spannung und ADC-Wert.

    Der Rest ist einfache Rechnerei, die Kennlinie des ADC ist wohl linear (bis auf die Toleranzen). Die ADC-Toleranzen stehen im Datenblatt - nach Umrechnung auf Spannung hast Du Deine möglichen Abweichungen.

    Wenn Du Deine Spannungsteiler nicht genau kennst machst Du das Gleiche für alle Spannungsteiler.
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Moppi
    Registriert seit
    18.03.2018
    Beiträge
    2.387
    Blog-Einträge
    25
    Natürlich nicht den ADC auf dem Chip abgleichen.
    Abgleichen mit einer externen Spannung ist schon gemeint.

    Ich habe gerade mal etwas gerechnet. Das gibt bei meinen R-Werten eine Spannung am AD-Eingang zwischen 2.25V und 2.29V, je nach Toleranz der Widerstände, des Spannungsteilers. Würde ich das nicht irgendwie ausmessen, müsste ich in Kauf nehmen, dass ich pro Zelle 0.1V daneben liege. Weiß jetzt nicht, ob das sooo schlimm wäre. Ich meine, ich habe ja irgendwo eine Schwelle nach unten, ob die jetzt pro Zelle bei 3.5, 3.6 oder 3.8V liegt, wäre ja gar nicht mal so sehr wichtig. Wichtiger wäre es nach oben, bis 3.9V oder 4V würde ich jede Zelle schon laden wollen. Problematischer ist, glaub ich, dass ich die Spannung einer Zelle nur berechnen kann, indem ich die drei Anschlüsse messe. Dann könnten sich im schlimmsten Fall die Fehler summieren und es wäre noch ungenauer.

    Jetzt sind die Widerstände eingelötet auf der Platine. Wie ist es denn, wenn ich die nochmal einzeln ausmesse, kann ja den ATmega328P-PU aus dem Sockel ziehen, dann kann ich doch die Widerstände einzeln ausmessen? Dann rechne ich mit den gemessenen Widerstandswerten die Spannung aus, die am ADC anliegt, wenn ich eine Max-Spannung voraussetze (i.R. 12.6V). Laut Datenblatt haut das mit der Linearität des ADC halbwegs hin.
    Das mit dem Poti ist keine schlechte Idee, ich habe da noch ein paar Spindeltrimmer, da kann ich mir sicher was bauen, was die Spannung der drei Zellen imitiert. Ich denke drüber nach, wie. Ich muss im Grunde ja nur 4.2V am ersten Abgriff/Spannungsteiler einstellen, 8.4V am Zweiten und 12.6V am Dritten. Und dann unten rum genau dasselbe, angefangen mit 3.5V oder 3.7V. Dazwischen (3.7 und 4.2) wäre mir halbwegs egal.

    MfG

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.266
    Schliess anstatt der Akkus ein Labornetzteil an, miss dessen Spannung mit einem Multimeter und laß dir den ADC-Wert ausgeben. Das machst du bei mehreren Spannungen. Wenn dein Compiler eine sog. LookUp-Tabelle unterstützt, nur noch eine eben solche mit den ermittelten Werten erzeugen und verwenden. Fertig.
    Aus eigener Erfahrung ..... 10Bit sind zu wenig und linear ist es nicht. Akkuspannungen habe ich bisher entweder mit einem externen ADC gemessen oder einen XMega mit 12Bit verwendet.
    Ich programmiere mit AVRCo

Seite 1 von 4 123 ... 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
  •