- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 7 von 7

Thema: Anfängerfrage 2 - ADC des AtMega

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    51
    Beiträge
    169

    Anfängerfrage 2 - ADC des AtMega

    Anzeige

    Praxistest und DIY Projekte
    Hallo,

    ich versuche mich grade an dem ADC des ATMega8, doch irgendwie scheitert es an der Berechnung (Denkfehler?) ...

    Da der höchste Wert den ich messen möchte 5V ist, muss ja die Referenzspannung ebenfalls VCC betragen, so hab ich das gelesen.
    Die Frequenz beträgt 16MHz. Der Scalefaktor muss 128 sein damit ich
    in dem Bereich zwischen 50kHz und 200kHz bleibe (gelesen).
    Die Auflösung liegt bei 10bit.

    Wenn jetzt z.B. 2,0 Volt am Eingang liegen soll ein Port auf 1 geschaltet werden.

    1024bit / 5V * 2.0V = 409.6 digitaler Wert (?)

    D.h. wenn ich jetzt eine Abfrage starte mit:

    Config Adc = Single , Prescaler = 128
    Start Adc
    Dim W As Word
    Do

    W = Getadc(1)
    If W=409 then portb=&B11111111
    Else PortB=&B00000000
    End if

    Loop
    End

    Würde das so funktionieren ?

    Außerdem: MUSS man einen ATMega (16MHz Typ) auch mit 16MHz betreiben oder ist das nur das max. mögliche ?

    So, ich hlffe ich langweile euch nicht zu sehr mit meinen fragen

    Blue

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

    Du hast dir alles richtig angelesen, grobe Fehler kann ich nicht erkennen. Einzig die Prüfung auf "if w=409" ist etwas kritisch weil der ADC ein paar Digits Messfehler aufweist. (Datenblatt Seite 248, Table 103)

    Der Mega8 läuft auch mit anderen Takten, er wird z.B. mit internen 1MHz ausgeliefert:
    The device is shipped with CKSEL = “0001” and SUT = “10” (1 MHz Internal RC Oscillator, slowly rising power).
    (Datenblatt Seite 26)

    Gruß

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

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    50
    Beiträge
    63
    Hallo Blue
    ich kann mich radbruch nur anschließen
    Ich würde diese zeile

    If W=409 then portb=&B11111111

    auf kleiner gleich ändern .

    If W<=409 then portb=&B11111111

    Gruß Becki

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.07.2008
    Ort
    NRW
    Alter
    51
    Beiträge
    169
    Hallo, vielen Dank für die Infos. Wenn ich aber <= verwende dann wird der Port aber doch auch bei z.B. 200 aktiv oder ?
    Den Messfehler könnte man ja quasi mit einer Range umgehen (400-420).
    Die internen 1MHz wollte ich nicht nutzen da ich gelesen habe das dieser nicht genau genug wäre wenn man den ADC nutzt.

    Gruß
    Jens

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    07.03.2008
    Ort
    Bremen
    Alter
    50
    Beiträge
    63
    Hallo ,
    Ich habe das kleiner gleich benutzt weil ich wollte
    das er Abschaltet wenn die Spannung
    unter einen bestimmten Wert fällt .

    Bestimmt ist es auch möglich einen Berreich anzugeben .
    Da wüßte ich aber nicht wie
    habe ich bis jetzt noch nicht gebraucht .

    Gruß Holger

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

    Die internen 1MHz wollte ich nicht nutzen da ich gelesen habe das dieser nicht genau genug wäre wenn man den ADC nutzt.
    Das war nur ein Beispiel für andere mögliche Takte. Die Ungenauigkeiten der internen Taktquellen wirken sich beim ADC meiner Meinung nach nicht aus.

    Gruß

    mic
    Bild hier  
    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 Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.653
    Zitat Zitat von radbruch
    ... Die Ungenauigkeiten der internen Taktquellen wirken sich beim ADC meiner Meinung nach nicht aus ...
    Stimmt, soweit ich es beurteilen kann, wirkt sich die Taktfrequenz nicht aus, solange der Takt lang genug für eine sinnvolle Wandlung dauert - dazu im Datenblatt des µC nachlesen (für mega8 vgl. doc S 196: • 13 - 260 μs Conversion Time). Ich betreibe einen ADC am mega168 mit stark unterschiedlichen Takten. Er soll den Ausgang eines GP2D120 erfassen und nach Millimeter Entfernung umrechnen. Den Wert brauche ich nicht häufig. Hatte als Quelle 4,88 kHz mit prescaler /32, auch mit prescaler /64, hab den jetzt mit 1,22 kHz und prescaler /32, also langsame 75 Hz für die Wandlung bzw. die ISR - - - und finde, dass die Messung weder besser noch schlechter noch stabiler wird.
    Ciao sagt der JoeamBerg

Berechtigungen

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

12V Akku bauen