- LiFePO4 Speicher Test         
Ergebnis 1 bis 1 von 1

Thema: Batterie schonende Spannungsmessung über AD-Port

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Administrator Robotik Visionär Avatar von Frank
    Registriert seit
    30.10.2003
    Beiträge
    5.116
    Blog-Einträge
    1

    Idee Batterie schonende Spannungsmessung über AD-Port

    Hi.
    da ich gerade eine kleine Schaltung bastele die sehr wenig Strom benötigen soll, da sie weit über 1 Jahr mit Batterie auskommen soll, hab ich mal kurz eine Tests mit hochohmigen Spannungsteilern gemacht. Der Grund ist die Aussage in den AVR-Datenblättern, das bei der Messung die Spannungsquelle nicht hochohmiger als 10KOhm sein sollte da es darüber zu Ungenauigkeiten kommt.

    Ein Spannungsteiler in diesem Wertebereich würde allerdings viel zu viel Strom für nix verbrauchen, das wäre bei meinem Vorhaben völlig ungeeignet.
    In einigen Foren basteln User wirklich aufwendige Transistor-Konstrukte um den Spannungsteiler abzuschalten, ich hab mich gefragt ob das wirklich nötig ist! Also hab ich einfach mal mit ein paar vorhanden Widerstandswerten das ganze gecheckt. Das Ergebnis war, das für die Batteriemessung durchaus auch sehr hohe Spannungsteiler gut funktionieren. Ich habe mal einen 900k und 100k Widerstand bei 1,1V interne Referenzspannung genutzt. Die Spannung wurde ohne Probleme im Sekundentakt gemessen. Die Abweichungen gegenüber einem 10k und 1K Spannungsteiler waren kleiner als 0,05V, wobei diese Abweichung vermutlich sogar durch die Widerstandstoleranz hervorgerufen wurde. Also ein 1 MegaOhm Spannungsteiler macht bei einer Batteriespannungsmessung durchaus Sinn, zumal diese Messungen ja nicht 100 mal in der Sekunde vorgenommen werden müssen. Haben die Messungen einen kleinen zeitlichen Abstand von ca. 1 Sekunde, dann ist die Genauigkeit für die meisten Anwendungen sicher völlig ausreichend. Der Strombedarf liegt dann bei ein paar Mikroampere, das ist meistens vertretbar!

    Übrigens bei den Messungen habe ich sicherheitshalber noch ein 47nF von Masse nach PA0 eingebaut, damit jederzeit für die ADC-Messung etwas Strom da ist. Aber mit den gegebenen Werten hätte es auch noch ohne diesen Kondensator geklappt.

    Für Einsteiger hab ich bei der Gelegenheit das kleine Messprogramm für RN-AVR Universal gepostet. Es kann natürlich fast unverändert auch auf RN-Control usw. genutzt werden.
    Es zeigt wie man Spannung aufgrund der Widerstände und UREF umrechnet und zeigt auch gleich Strombedarf an (über Rs232/USB).


    Code:
    '##############################################################
    'SpannungMessen1.bas
    '
    'Ein kleines Testprogramm für RN-AVR UNIVERSAL bzw. ATMega644
    '
    'Das programm demonstriert wie man die Spannung an einem
    'analogem Port messen kann. Es wird auch genau gezeigt wie
    'man Spannungsteiler und Spannung berechnet.
    'Die verwendeten Widerstandswerte für den Spannungsteiler
    'können einfach den Variablen R1 und R2 zugewiesen werden
    'Das Programm demonstriert auch, das auch sehr hochhohmige
    'Widerstände am Spannungsteiler durchaus gute Ergebnisse liefern
    'wenn keine blitzschnellen Messungen (mehrere pro Sekunde nötig sind).
    'Das Programm zeigt auch den benötigten Strom pro Spannungsteiler an.
    ' (c) Frank Brall 2013
    'Software und RN-AVR UNIVERSAL Bezug über www.robotikhardware.de DVD
    'Weitere Beispiele auf DVD von robotikhardware.de
    'oder im www.Roboternetz.de und rn-wissen.de
    
    
    '######################################################################
    
    
    'Portbelegung:
    'Spannungsteiler aus R1 und R2 an PA0
    'Werteausgabe über RS232/USB
    
    
    
    
    
    
    $programmer = 12                    'MCS USB  (Zeile weglassen wenn anderer Programmer)
    $prog &HFF , &HFF , &HD9 , &HFE      'Fusebits richtig programmieren (Quarz ein,Jtag aus)
    
    
    $regfile = "m644pdef.dat" ' oder $regfile = "m644def.dat"
    $framesize = 64
    $swstack = 64
    $hwstack = 64
    
    
    $crystal = 8000000                                          'Quarzfrequenz
    
    
    
    
    Config Pind.6 = Output                                      'LED
    Led1 Alias Portd.6
    
    
    
    
    Config Pina.0 = Input
    BattAdc Alias Pina.0
    Config Adc = Single , Prescaler = 128 , Reference = INTERNAL_1.1
    
    
    
    
    dim adcbattwert as integer
    dim r1 as  single
    dim r2 as  single
    dim rg as  single
    dim uref as single
    dim udigit as single
    dim vh as single
    dim spannung as single
    dim strom as single
    
    
    Start Adc
    Do
        Toggle Led1
    
    
    
    
        r1=900 'Spannungsteiler Widerstand 1 in kOhm
        r2=100 'Spannungsteiler Widerstand 2 in kOhm
        uref=1100 'Referenzspannung im mV 1,1V =1100mV
        vh=r1/r2 'Verhältnis ausrechnen
        udigit=uref/1024
        adcbattwert=Getadc(0)
        spannung= adcbattwert*udigit
        spannung=spannung*vh
        spannung=spannung/1000 'In Volt umrechnen
        rg=r1+r2
        strom= spannung/ rg
        print "ADC-Wert:"; adcbattwert
        print "Spannung V:"; Fusing(spannung , "#.##") ; "  Strombedarf Spannungsteiler in mA: "; Fusing(strom , "#.###")
    
    
        Wait 1
    Loop
    Geändert von Frank (01.02.2013 um 16:42 Uhr)
    Mit bestem Gruß
    Frank

    Admin Roboternetz.de - RN-Wissen.de - Elektronik-Blog
    Überzeugter und begeisterter Elektroauto Fahrer seit 2018

Ähnliche Themen

  1. Batterie über M32 Control auslesen
    Von carlitoco im Forum Robby RP6
    Antworten: 1
    Letzter Beitrag: 30.11.2008, 22:32
  2. batterie programm nun über das controlboard
    Von carlitoco im Forum Robby RP6
    Antworten: 7
    Letzter Beitrag: 10.06.2008, 17:42
  3. Antworten: 7
    Letzter Beitrag: 20.11.2007, 21:38
  4. Spannungsmessung über ATmega8L / Analogeingangsgrößen?
    Von melfjasper im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 3
    Letzter Beitrag: 01.02.2007, 16:02
  5. Probleme beim Betrieb eines AVRs über Batterie
    Von popi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 17
    Letzter Beitrag: 03.12.2005, 01:39

Stichworte

Berechtigungen

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

LiFePO4 Speicher Test