-         

Ergebnis 1 bis 9 von 9

Thema: Probleme mit ADC von Mega32

  1. #1

    Probleme mit ADC von Mega32

    Anzeige

    Hallo.
    Bin neu hier, also erstmal hallo!
    Ich beschäftige mich seit kurzen mit uControllern. Hab die Grundschaltungen mit einem Atmega32 aufgebaut und die ersten Led-Taster Programme mit Bascom geschrieben. Soweit läuft alles prächtig.
    Nun hab ich vor eine Spannung zu messen. Dazu hab ich einen Spannungsteiler ( 2x 470 Ohm) aufgebaut und an die 5V Spannungsquelle mit der ich auch den Controller betreibe angeschlossen. Den ADC0 Pin des Controllers hab ich mit der Mitte der beiden Widerständen verbunden. Da die Spannung ja somit 2,5V beträgt will ich die Versorgungsspannung des Controllers als Referenzspannung benutzen.
    Hier ist der Quellcode den ich geschrieben hab. Da ich kein UART und noch kein Display besitze, hab ich mir gedacht eine LED als Anzeige zu verwenden.
    Code:
    $regfile = "m32def.data"
    $crystal = 16000000
    DDRB = &B00000001
    PORTB.0 = 1
    
    Dim W As Word
    Config ADC = Single, Prescaler = Auto, Reference = AVCC
    Do
          W = Getadc(0)
          If W>400 Then      
          PORTB.0 = 0         'LED einschalten
          endif
    loop
    
    end
    Am Controller hab ich an PIN AVCC 5 V angeschlossen, an AREF nichts, da ich ja keine externe Referenzspannung verwenden will.

    Ich hoffe die Frage ist nicht zu banal, hab in der Suche halt nichts gefunden...
    Vielen Dank schonmal!!

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.11.2004
    Ort
    Aachen
    Alter
    32
    Beiträge
    246
    Hallo erstmal!

    Also ansich hast du ja gar keine Frage gestellt?!
    Aber ich gehe einfach mal davon aus, dass es so nicht klappt, wie du es dir vorstellst?
    Dann wäre trotzdem gut zu wissen, was passiert? Geht die LED nicht an?

    Gruß,
    zerush

  3. #3
    Die Led leuchtet. Allerdings sollte sie doch aus sein, da ja die Spannung nicht größer 400 ist. 400 bezieht sich doch auf mV, oder irr ich mich? Ich wollte nur mal generell fragen ob ich was generell falsch gemacht habe. Ist leider sehr schwierig ohne UART bzw Display. Habe ich aber schon bestellt, mal sehen was dann bei rauskommt.
    Also ist schaltungstechnisch soweit alles in Ordnung?

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    An AVCC gehört ein 100n Kondensator wenn die interne Referenz verwendet wird. Die 400 beziehen sich nicht auf mV. Der ADC teilt durch 10bit, also 1024, 2,5V sind also 512.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  5. #5
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Also ist schaltungstechnisch soweit alles in Ordnung?
    Ja, der Spannungsteiler 470/470 Ohm ist ok, allerdings würde man, wenn man eine Spannung dauerhaft messen will, mit viel kleineren Strömen arbeiten.

    Auf meiner Platine überwache ich auch eine 5V-Spannung und habe dafür einen Spannungsteiler 100/100 kOhm. Der hat nur 25 uA als Längsstrom, während dein Spannungsteiler 5,3 mA hat. Das kann wichtig werden z.B. bei Batterie- oder Solarbetrieb.

    Gruß Dirk

  6. #6
    Toll.
    Tausend dank an euch alle!!

  7. #7
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Wenn du deine 5V überwachen willst und sie gleichzeitig als Referenz nimmst, wird das nicht funktionieren da sich Mess- und Referenzspannung im gleichen Maße ändern. Es wäre besser, in dem Fall, die interne Referenz 2,56V zu verwenden da diese doch länger konstant bleibt.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Versorgungsspannung des Controller mißt man am einfachsten indem man AVCC als Referenz nimmt und damit die interne bandgab referenz mißt. Der AD Wert ist dann zwar gerade umgekehrt (hohe Wert bei niedriger Spannung), aber man braucht keinen externen Pin.

  9. #9
    war nur zum generellen ausprobieren. Trotzdem vielen Dank. Funktioniert jetzt alles!

Berechtigungen

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