- SF800 Solar Speicher Tutorial         
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
    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)

  2. #2
    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

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    13.09.2006
    Beiträge
    8
    Externes AREF (3,3V) zu verwenden war ja auch meine ursprüngliche Idee, bis ich feststellen musste, dass die 3,3V vom FT232, abhängig von der Betriebsspannung, viel zu ungenau sind. Kaum vorzustellen, dass die Entwickler bei AREXX solchen Murks verzapfen und den auch noch in Serienfertigung geben.
    Immerhin scheinen die 3,3V an AREF die AD-Wandlung nicht zu beeinflussen.

    Gruß
    Fraggle

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Zitat Zitat von Fraggle Beitrag anzeigen
    Immerhin scheinen die 3,3V an AREF die AD-Wandlung nicht zu beeinflussen.
    Was vermutlich daran liegt, dass die interne Verbindung im AVR mehr Strom liefern kann als durch den Widerstand zum FT232 abfließt. Dadurch hält man sich (mit nicht ganz sauberen Mitteln) die Möglichkeit offen, sowohl VCC als auch 3,3V als Referenzspannung zu verwenden. Einen Schönheitspreis gewinnt man damit aber nicht. Besser wäre der Verzicht auf R29 gewesen, den Spannungsteiler hätte man ganz streichen können und damit noch einen zusätzlichen freien Kanal gewonnen.

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

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Zitat Zitat von kkkk Beitrag anzeigen
    Die ausgegeben Werte sind jedoch konstant.
    Fehlt da nicht noch ein paar Klammern? Spannung_Batterie() vielleicht? Der Code sollte so nicht compilieren ...

    Davon abgesehen bekommst du Schwierigkeiten mit der Rundung, bzw. dem Wertebereich. 1024 * 1100 ist zu groß für einen (u)int16, die Rechnung muss mit einem 32-Bit-Datentyp erfolgen.

    Rein aus Neugierde: Welcher Wert wird denn ausgegeben?

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

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    37
    Beiträge
    1.225
    Das dürfte durch die Rundung verursacht sein. Ich schätze Mal, dass GCC zuerst die 1024 / ADCW berechnet, das ergibt dann für einen relativ großen Wertebereich (256 - 341) einfach nur 3. Und damit kommst du auf die 3300mV. Formuliere die Gleichung Mal so um, dass du explizit nur eine Division einer Konstanten hast: 1024 * 1100 / ADC

    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