-         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 16

Thema: Handy Akku spannung messen

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.03.2006
    Beiträge
    48

    Handy Akku spannung messen

    Anzeige

    hallo

    Ich wollte über nen Atmega8 die Spannung (3,6V)eines Handy Akkus an einem Display anzeigen lassen.

    Ich habe diese folgendermaßen angeschloßen

    Akku GND Akku VCC
    | |
    100nf |
    \ /
    \ /
    \ /
    | |
    10k Poti
    |
    |
    Atmega8 Pin PC0(ADC0)

    und hier mal das Prog in Bascom was ich geschrieben habe

    Code:
    '======================================================
    'System-Einstellungen
    '======================================================
    'Definition für Mega 8
    $regfile "m8def.dat"
    
    'Angabe der Taktfrequenz (1Mhz)
    $crystal = 4000000
    
    'Pin Config
    Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.0
    
    '======================================================
    'Konfigurationen
    '======================================================
    'Angabe der Display-Größe
    $hwstack = 32
    $swstack = 40
    $framesize = 32
    
    Config Lcdmode = Port
    Config Lcdbus = 4                                           '4 bit mode
    Config Lcd = 20 * 4
    Initlcd
    
    Config Adc = Single , Prescaler = Auto
    
    'Now give power to the chip
    
    Start Adc
    
    
    
    'With STOP ADC, you can remove the power from the chip
    
    'Stop Adc
    
    
    
    Dim W As Word , Channel As Byte
    
    ' LCD initialisieren und löschen und kurz melden
    Cls
    Cursor Off Noblink                  ' Cursor aus
    Lcd "Jetzt gehts los "              ' kurze Meldung auf Display
    Wait 1                              ' ne Sekunde warten
      Cls
    Channel = 0
    
    'now read A/D value from channel 0
    
    Do
    W = Getadc(0)
    W = W / 284
    Locate 1 , 1
    Lcd "Batterie " ; Channel ;
    Locate 2 , 1
    Lcd "Volt " ; W ;
    Waitms 100
    
    
    Loop
    
    End
    Nur hab ich ein paar probs.
    1 Wird ja nur eine stelle angezeigt sind auch irgendwie kommastellen möglich? Und die anzeige springt nur rum 1-2-3-3-2-1 usw alles durcheinander.

    Hab ich irgendwas falsch gemacht?

    Wäre nett wenn mir einer helfen könnte. Google und die Suche quäle ich schon seit stunden.Danke

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ja,die Forensoft löscht angeblich überflüssige Leerzeichen einfach raus.

    Deswegen der Tip an die Ascii-Zeichnungen in form eines Codes zu machen.

    Also in deinem Beispiel:


    Code:
    Akku GND   Akku VCC
         |               |
      100nf           |
         \              /
           \          /
             \      /
              |    |
                10k Poti
                 |
                 |
    Atmega8 Pin PC0(ADC0)
    so ,sieht man mehr und auch gleich den kleinen Fehler.

    Der Kondensator (100nF) ist falsch.
    Der mach dort keinen Sinn es sei denn du willst nur den Wechselspannungsanteil (Spannungsschwankungen) messen.

    Besser aufgehoben ist er am Eingang des AD-Wandlers.

    Ich mach mal eben ne Zeichnung........Please hold the Line

    Edit:

    So,hier.



    Damit kannst du dann arbeiten obwohl ich dich mal fragen muß mit welcher Spannung der AVR denn Arbeitet wenn du nen Spannungsteiler verwenden willst ?



    Zur Soft:

    Wo ist deine Referenz ?
    Die würde ich auch noch Angeben denn so vermeidet man Irrtümer und Fehler.
    Gruß
    Ratber

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    28.03.2006
    Beiträge
    48
    Hallo

    erstmaldanke für den Tip

    im datenbaltt steht folgendes.

    • Operating Voltages
    – 4.5 - 5.5V (ATmega
    Power Consumption at 4 Mhz, 3V, 25°C

    also denke ich dasd er bis 5,5V vertragen kann.

    Sorry bin aber noch nicht so weit mit Bascom habe mir viel über die Hilfe angeeignet. Wo muss den die Referenz hin ?

    Ist das auch der grund warum meine anzeige immer hin und her springt ?

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Wegen der Spannung hab ich gefragt weil der ADC nicht mehr Messen und vertragen kann wie die eigene Verorgungsspannung.(Is Technishc hier so gegeben)

    Wenn er also zb. mit 2V betrieben wird (Meist die L-Typen die zb. von 1.8-5.5V gehen) dann kann der AD-Wandler auch nur bis 2V messen und würde darüber hinaus schaden nehmen.

    Solange also die akkuspannung innerhalb des Versorgungsspannungsbereiches des AVR liegt kannste dir das Poti zum runterteilen und den Kondensator schenken.
    Die Auflösung reicht da locker aus.
    Allerdings ist es von Vorteil einen Festen Reihenwiderstand und dann den Kondensator (Kann ruhig größer sein) vor den AD-Wandler zu schalten um Kurzfrisitge Spannungseinbrüche auszufiltern die bei der Messung nur stören.

    Wenn du aber den AVR genau mit diesem Akku betreiben willst dann ist der Teiler wieder erforderlich denn dann brauichst du eine Feste Referenzspannung die niedriger als Vcc ist und natürlich auch den Teiler damit die Akkuspannung nicht über der Referenz liegt.

    Kannste folgen ?


    Sorry bin aber noch nicht so weit mit Bascom habe mir viel über die Hilfe angeeignet. Wo muss den die Referenz hin ?
    Das ist einfach.

    Die Option Reference kommt hintendran am Config-Befehl für den AD-Wandler.

    Steht auch in der Hilfe.

    zb.


    Code:
    Config Adc = Single , Prescaler = Auto , Reference = OFF , AREF , AVCC oder INTERNAL
    Gruß
    Ratber

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    28.03.2006
    Beiträge
    48
    hi

    noch nekurze frage.

    Ich habe es jetzt so gemacht

    Config Adc = Single , Prescaler = Auto , Reference = AVCC

    Den Minus Pol des Akkus hab ich auf PC0 gelegt und den Plus Pol auf AVCC.

    Kommt dasso hin ?

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ähh,was machst du ?

    Gib mal ne info was du mit der Schaltung machen willst bzw. welches Problem du jetzt lösen willst.
    Das du die Spannung vom Akku messen willst ist mir schon klar.

    Woher soll der Controller seinen saft bekommen ?
    Gruß
    Ratber

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    28.03.2006
    Beiträge
    48
    also der AVR bekommt seinen saft inmoment über eine Stabilisierte 5V-Spannungsversorgung( Später über nen 9 V Block ). Ich möchte die spannung meines akkus auslesen und auf dem Display als Volt Ausgeben. Also wieviel Volt der akku noch hat.

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Ok dann legst du die 5V vom Regler auf Vcc "und" Avcc
    Beide GND werden auch belegt.
    Desweiteren wird der "minus" vom Akku mit Gnd verbunden damit ein gemeinsames Bezugspotentiial vorhanden ist.

    Den Rest machste wie in der Schaltung die ich oben gepostet habe.

    Die Bascomzeile bleibt so wie se ist (Reference = Avcc)

    So sollteat du brauchbare Werte bekommen.
    Gruß
    Ratber

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    28.03.2006
    Beiträge
    48
    jo danke scheint zu funktionieren. habe den Poti soweit runtergedreht das nur noch 2 Volt ankommen mein display zeigt jetzt nen Wert von 615. Jetzt muß ich mir nur noch den wert umrechnen das da dann 3,6V steht.

    Danke für dein supi Hilfe TOP

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    28.03.2006
    Beiträge
    48
    Hi

    Vielleicht kannst du mir ja nochmal kurz helfen

    Ich versuche gerade den Wert auf meinem LCD mit Komma stellen anzuzeigen. Hab mich dabei an die Bascom Hilfe gehalten.

    Hier mal einen auszug aus meinem Code.

    Code:
    Dim W As Word
    Dim X As Word
    Dim Y As Word
    Dim Z1 As String * 10
    .......
    'Wert anzeige berechnen
    W = Akku_rc
    X = W * 5
    Y = X / 1023
    Z1 = Format(y , "0.0")
    Ich bekomm aber immer die Fehlermeldung

    " Source Variable does not match the Target variable [6]" Bezieht sich darauf "Z1 = Format(y , "0.0")"

    Vielleicht hast du ja nen Tip für mich

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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