- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 15

Thema: AAR04 Arexx Arduino Roboter - Batteriespannung ermitteln

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Du kannst auch auf anderem Wege direkt messen, die interne Spannungsreferenz dürfte genauer sein als die 3,3V vom FT232. Dazu musst du ARef auf VCC stellen und den Messkanal Vin auf VBG (interne 1,1V Spannungsreferenz) konfigurieren.

    Die Spannung berechnet sich dann wie folgend (ADC = Wert im ADC-Register nach der Wandlung, VCC = Versorgungsspannung, VBG = interne Referenzspannung):
    ADC = Vin / ARef * 1024 = VBG / VCC * 1024
    Nach Umformung: VCC = 1024 / ADC * VBG

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    13.09.2006
    Beiträge
    8
    ich habe selbst gerade feststellen müssen, dass die 3,3V vom FT232 völlig ungeeignet ist. Mit einem Multimeter gemessen beträgt diese 4,1 V im USB-Betrieb, bei Batteriebetrieb nochmals deutlich darüber. So kann es nicht gehen, ich werde jetzt die Idee von Markus umsetzen, vielen Dank dafür.

    Gruß
    Fraggle

    - - - Aktualisiert - - -

    @Markus: Wenn ich die interne Referenzspannung verwende, habe ich doch nur die Möglichkeiten a) Betriebsspannung als Referenz oder b) intern bereitgestellte Spannung (1,1V) als Referenz zu verwenden. Deinen Satz: "Dazu musst du ARef auf VCC stellen und den Messkanal Vin auf VBG (interne 1,1V Spannungsreferenz) konfigurieren" verstehe ich nicht. Wie geht das?

  3. #3
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Ein interessantes Thema. Schau mal ins Datenblatt unter "Table 24-4. Input Channel Selections" Um die internen 1.1V zu messen muss der Kanal 14 (0b1110) ausgewählt werden.

    Zur Formel: Ich würde es so ausrechnen:

    Vcc(=VREF)/1023 = 1.1V/ADC-Wert.

    Ich glaube, der R29 (1k) muss entfernt werden und REFS1:0 muss 0:1 sein: "AVCC with external capacitor at AREF pin"

    Gruß

    mic
    Geändert von radbruch (31.12.2012 um 16:42 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    mic hat recht. Bei anderen AVRs gibt es noch AVCC ohne Entkoppelkondensator, es gibt dann keine Verbindung zum Pin AREF.

    Edit: mic, dir ist die 1023 bei der Umformung abhanden gekommen. 2,2V VCC ergäben ADC 511 oder 512, du würdest da einen seeeeehr kleinen Wert ermitteln.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    13.09.2006
    Beiträge
    8
    ja, die Tabelle 24-4 im Datenblatt habe ich auch schon betrachtet. Ich verstehe nur nicht, woher der Controller dann weis, dass er eigentlich die Spannung an Kanal 2 bestimmen soll und was meinst du mit "Um die internen 1.1V zu messen ...". Die 1,1V sind doch fest. Klar ist "AVCC with external capacitor at AREF pin" bezieht sich auf VCC als Referenzspannung. Nur die möchte ich ja gerade bestimmen. Das R29 entfernt werden muss glaube ich nicht, da die Liniensensoren mit VCC als Referenzspannung tadellos funktionieren. Ich muss jetzt noch etwas fürs Raclette vorbereiten. Morgen (oder Übermorgen) denke ich noch mal darüber nach. Guten Rutsch! Fraggle

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    Für mich ist das auch Neuland, ich hatte bisher immer die 2,56V-Referenz verwendet.

    Hier muss man rückwärts denken: Welche Vcc müßte als Referenz anliegen damit die internen 1.1V als der vom ADC eingelesene Wert erscheint? Hier ein Rechnenbeispiel für 5V als Vcc (nach meiner Formel oben):

    Vcc = 1.1V*1023/ADC

    1023/5V = ADC/1.1V oder adc=1023/5V*1.1V

    Der ADC würde ca. 225 einlesen.

    Gegenprobe: Die Batteriespannung, und damit auch die Referenzspannung, sinkt und deshalb steigt der eingelesene Wert für die internen 1.1V (im Vergleich zu Vcc/VREF). Bei eingelesenen 250 würde die Batteriespannung auf 1.1V*1023/250 oder 4,5V abgesunken sein.

    Der R29 verbindet die externe Referenz mit 3.3V, Wir wollen aber Vcc als Referenz verwenden, deshalb muss diese Verbindung über R29 verschwinden. Dann bleibt nur noch C9 als "external capacitor at AREF pin".

    Was mich verwirrt: In dem von dir verlinkten Schaltplan ist ein Mega168-AU eingezeichnet, dessen Pinout ist unterschiedlich zu deinem 328P!

    Gruß

    mic
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    13.09.2006
    Beiträge
    8
    Frohes Neues,

    endlich habe ich es auch verstanden! Ich war die ganze Zeit so auf den Spannungsteiler aus R31 und R32 und damit auf Kanal 2 des AD-Wandlers fixiert, dass ich alles andere ausgeblendet habe. Es funktioniert mit der sogenannten Bandgap-Referenz des AVRs. Dazu
    - den Pin AVCC auf VCC legen (ist hardwaremäßig schon vorgegeben).
    - AVCC als Referenzspannung festlegen.
    - Kanal 14 als Eingangskanal (VBG) festlegen.
    - Berechnung vom aktuellem VCC-Wert wie von Markus beschrieben.
    Funktioniert bestens, vielen Dank für die Tipps!
    @radbruch: Laut Datenblatt sind die AVRs ATmega168A und ATmega328P doch Pinkompatibel. Finde den Schaltplan allgemein sehr unübersichtlich, insbesondere wenn man den Roboter in C und nicht im Arduino-Dialekt programmieren möchte.

    Gruß
    Fraggle
    Geändert von Fraggle (01.01.2013 um 13:26 Uhr)

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Fraggle: Korrekt, aber wie mic schon festgestellt hat, müsstest du eigentlich R29 entfernen, da dieser AREF mit den 3,3V vom FT232 verbindet. Irgendwie ist die Verschaltung aber kompletter murks, der FT232 ist keine zuverlässige Referenzspannungsquelle. Gleichzeitig erfolgen alle analogen Messungen relativ zu VCC, es wäre also eigentlich sinnvoll VCC als AREF zu verwenden ...

    Ach ja, wie man sich die Spannungsmessung wohl eigentlich gedacht hatte: Externes AREF (3,3V) verwenden und damit Kanal 2 (Spannungsteiler) ausmessen. Der halbiert den Pegel in etwa und passt damit in das Intervall 0-3,3V rein.

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

Ähnliche Themen

  1. AAR04 Arexx Arduino Roboter - Erste Eindrücke
    Von m.a.r.v.i.n im Forum Asuro
    Antworten: 26
    Letzter Beitrag: 17.12.2014, 20:51
  2. Antworten: 6
    Letzter Beitrag: 30.12.2012, 20:38
  3. Lüfterdrehzahl ermitteln, Arduino...
    Von Steglo2 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 2
    Letzter Beitrag: 22.12.2012, 16:56
  4. Arduino Roboter
    Von hammerhai im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 8
    Letzter Beitrag: 20.03.2012, 13:18
  5. Ronnie - Arduino Roboter!
    Von Torrentula im Forum Arduino -Plattform
    Antworten: 14
    Letzter Beitrag: 30.10.2011, 17:38

Stichworte

Berechtigungen

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

Solar Speicher und Akkus Tests