-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 27

Thema: NiboBee Spannungsmessung mit Hindernis?

  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.242

    NiboBee Spannungsmessung mit Hindernis?

    Anzeige

    Halöle.
    Nachdem mein Leuchtdioden-Gebastel nun inzwischen ja doch funktioniert, möchte ich wieder mal den Lötkolben schwingen.

    Ich hatte schonmal wo anders deswegen angefragt, wie ich denn bei _meiner_ Biene die Akkuspannung messen kann.
    workwind antwortete darauf, ich solle mir R43/44 mal ansehen und R44 gegen nen 100k austauschen, dann könne man da ganz leicht Spannungen bis 15V messen.
    Toll.
    Erinnern wir uns: meine Biene wird mit einem LiPo gefüttert, es ist ein 2s, der ja 7.4V bereitstellt. Danach kommt ein Spannungsregler,d er bienenverträgliche 5V draus macht, das heisst, die 7.4V kommen _nirgends_ am Board an.
    Dennoch verfehlt das Ganze seinen Zweck, wenn ich an den 5V nun herum messe, denn die habe ich auch dann noch, wenn der LiPo bereits klinisch tot ist. Das passiert deutlich über 5V!
    Nun will ich aber eben das verhindern. Also workwinds Tip mal beiseite genommen, Durchgangsprüfer her, Schaltplan und *grübelgrübel

    Wenn ich alles richtig kapiert habe, dann kann ich folgendes tun (das Bild ist das betreffende Stück aus dem original-Schaltplan mit den Änderungen, die mich meine, vornehmen zu müssen).



    Ist das so richtig?
    Verliere ich dadurch irgendeine andere Funktion? Auf die, die tatsächliche Bordspannung zu ermitteln, kann ich gut verzichten.

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Das würde schon gut hinhauen: 7,4V/147k*100k ergibt ca. 5,03V. Aber (war ja klar werden die Lipos nicht bis weit über 8V geladen? Das wäre dann nämlich übel, denn soweit ich weiß, darf die Spannung am ADC-Pin die Versorgungsspannung (oder war's die Referenzspannung?) nicht überschreiten. Vorsichtshalber, man kann es ja später noch ändern, würde ich als R44 einen 68k-Widerstand vorschlagen. Das ergäbe bei 8,5V Lipospannung am ADC auch ungefährliche 8,5V/(68+47)*68=5,03V

    Gruß

    mic

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

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.242
    Hab eben bemerkt: ich hab nen Fehler drin:

    Du kannst einfach den R43 auslöten und durch einen 100 kOhm Widerstand ersetzen, den Du direkt an den Akku anschliesst.
    Damit lässt sich eine Spannung von bis zu 15 V messen. Guck Dir einfach mal den Spannungsteiler aus R43 und R44 an ...
    Damit dürfte der Spannungsabfall doch schon grösser sein, richtig?
    Jedenfalls, soweit ich das mit den Spannungsteilern noch irgendwo im Hinterkopf habe.

    Und ja, Ladeschlusspannung bei LiPo`s ist 4.2V pro Zelle.

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Der "Fehler" liegt wohl in der Referenzspannung. Für ein System mit ungeregelter Spannung verwendet man die interne 2,56V-Referenz. Deshalb wird in der orginalen Schaltung die Akkuspannung durch R43/R44 (47k/47k) halbiert.

    Deine Biene kann aber die stabilisierte Spannung des Reglers als Referenz verwenden, deshalb darf der Spannungsteiler auf 5V am ADC-Pin abgestimmt sein. So erklärt sich auch das "Damit lässt sich eine Spannung von bis zu 15 V messen." 15V/147k*47k=4,8V ;)

    Gruß

    mic

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

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.242
    Gut.
    Nun möchte ich das Ganz softwareseitig natürlich auch nutzen.
    Und wie immer: ich hab keinen Plan. [-(

    Vorerst möchte ich es ohne Umbau versuchen, indem ich am entsprechenden Pin einfach die Bordspannung messe.
    Dürfte dann später ja nur ein anderes Ergebnis herauskommen, oder?

    Ich las schon, dass in der NiboBee-Bibliothek dazu was vorhanden sein soll, aber diese Bibliothek ist nach wir vor für mich eins der vielen, böhmischen Dörfer.
    Immerhin habe ich ein Makro gefunden:
    #define AN_VBAT 4
    Fein, da gibts also doch irgendwas.
    Da ich mehr oder weniger im dunklen tappe habe ichs so versucht:

    volt=analog_getValue(AN_VBAT/100); // durch Hundert weil ich sonst immer bei 512 lande

    volt ist uint16_t.
    Nun bekomme ich als Ausgabe eine 171.
    Wusste gar nicht, dass die Biene so hohe Spannungen verträgt...
    Was mache ich immer noch verkehrt?

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Ne, ne, ne, so geht's nun aber nicht :)

    Die Funktion analog_getValue() erwartet als Parameter die Nummer des ADC-Kanals. Die VBAT wird mit Kanal 4 (das ist Pin 36 ADC4 oder PA4) gemessen, deshalb ist AN_VBAT mit 4 definiert. Du übergibst aber als Parameter 4/100...

    Ein prima Grundlagenprojekt von Skroete zur Messung der Batteriespannung bei der Biene findest du hier:
    http://www.roboternetz.de/phpBB2/zei...ag.php?t=51863

    Dort wird auch erklärt, warum man für die Batteriemessung bei Versorgung ohne Spannungsregler die interne Referenz verwenden sollte.

    Gruß

    mic

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

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.242
    Ich wusste dass da was nicht hinaut. [-(

    Wenn ich es richtig mache erhalte ich Werte um die 512, 513, in der Gegend.
    Was auch immer die mir Sagen, die Bordspannung beträgt eiserne (da geregelte) 5V.

    Jetzt habe ich das Programmstück von Skroete auch mal probiert, das liefert mir Werte um die 992 herum zurück.
    Und: ich gebe zu, dass ich _davon_ 80% _nicht_ verstehe.

    Und nu? Irgendwie ist beides nicht ganz das, was ich haben möchte.

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

    Das passt doch gut. Werte um 512 waren mit der Funktion aus der Lib zu erwarten, denn da die zu messende Spannung zugleich die Referenz ist, wird durch R43 und R44 die halbe Bordspannung gemessen. Natürlich unabhänig von Ladezustand der Akkus...

    Das Programm von Skroete verwendet die interne 2,56V-Referenz. Bei 992 beträgt die gemessene Spannung 2,56V/1023*992=2,48V Da dies die halbe Bordspannung ist liefert dein Regler 4,96V, inklusive der Toleranz von R43/44.

    Für deine Anwendung würde aber die Funktion der Lib ausreichen, da bei dir der Kontroller ja am Spannungsregler hängt und deshalb die Referenz ziemlich genau 5V beträgt. Für deine zwei Lipos würde sich dann auch der schon oben berechnete 68k-Widerstand als Ersatz für R44 anbieten. Lipo bitte erst anschliesen wenn der Widerstand angepasst wurde!

    Gruß

    mic

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

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Rabenauge
    Registriert seit
    13.10.2007
    Ort
    Osterzgebirge
    Alter
    49
    Beiträge
    1.242
    Hm, klingt gut (probiere ich _nach_ dem aufstehen erst).
    Was mich noch interessiert ist, woher diese Formel (2,56V/1023*992=2,48V ) eigentlich kommt . Sie halbe Spannung wegen den Widerständen?

    Es geht mir echt weniger drum, irgendeine _fertige, funktionierende_ Lösung zu haben, sondern ich möchte echt verstehen, wie`s gemacht wird.
    Dadurch,dass ich nun aber funktionierende Lösungen habe, kann ich dann mit meiner Eigenkreation vergleichen.
    Schlussendlich will ich in jedem Programm ein Unterprogramm einbauen, dass von Zeit zu Zeit den Akku mal checkt und rechtzeitig Alarm schlägt, wenn er zur Neige geht. Durch die Spannungsstabilisierung und die Tatsache, dass _meine_ LiPos (SLS ZX) eine durchgehend recht hohe Spannungslage haben, merke ich im Betrieb nämlich nix, wenn er anfängt, nachzulassen.
    Und wenn man mal munter am spielen ist, ist die Biene schonmal etliche Stunden am Stück an.

  10. #10
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Die Formel kommt so zustande:

    Der ADC hat eine Auflösung von 10 Bit, er kann eine Spannung in 1023 Schritten digitalisieren. Wenn die gemessene Spannung gleich der Referenzspannung ist, erhält man als Messwert 1023, der Rest ist Dreisatz:

    Referenz/1023 ist gleich gesuchte Spannung/gemessener Wert oder
    Referenz/1023*Messwert=gesuchte Spannung

    Die Widerstände bilden einen Spannungsteiler und sind so ausgewähkt, dass am Messeingang nie eine Spannung anliegt die größer als die Referenz ist:
    http://www.rn-wissen.de/index.php/AD...ferenzspannung
    http://www.mikrocontroller.net/articles/AVR_Tutorial:_ADC

    Gruß

    mic

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

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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