-         

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

Thema: Spannung mit ADC-Port messen

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.04.2004
    Ort
    Gronau
    Beiträge
    155

    Spannung mit ADC-Port messen

    Anzeige

    Hallo,

    ich messe über einen Spannungsteiler von 1500 und 750 Ohm am
    ADC(0)-Port des M128 einen Wert von 510. Es wird die interne
    Ref-Spannung von 2,56V verwendet.

    Welcher Gesamtspannung entspricht das nun?

    Wenn ich rechne:

    510 * (2,56/1023) * (1500+750)/750 komme ich auf 3,825 Volt am
    ADC-Port. Mal Faktor 3 entspricht das also 11,475 Volt bei gemessenen
    12 Volt. Also knapp 0,6 Volt zu wenig.

    Bei gemessenen 15 Volt habe ich jedoch einen ADC-Wert von 518,
    bzw. bei 9 Volt von 498. Und das kann nicht stimmen ... <grübel>

    Danke: - Reinhard -

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo Reinhard,

    wo kommt der 2. Faktor 3 her?

    Ciao,
    Werner

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.04.2004
    Ort
    Gronau
    Beiträge
    155
    Hallo Werner,

    Zitat Zitat von Werner_Just
    wo kommt der 2. Faktor 3 her?
    gute Frage .

    Lt. meiner Meinung (die muss nicht korrekt sein): (1500+750)/750 = 3

    Ich hab gestern das "ganze" Internet danach abgesucht, aber kein
    einziges Berechnungsbeispiel gefunden, welches aus einem ADC-Wert
    auf die Gesamtspannung schliesst und den Weg dorthin genau erklärt.

    Danke für Deine Mühe: - Reinhard -

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo Reinhard,

    Du schließt aus dem Messwert und der Reference-Spg auf Deinen ADC-Eingangsspannungswert und rechnest zurück, welche Spannung an Deinem Schaltungseingang anliegt.

    Bei 2.56V Reference, Messwert 510 und einem vorgeschalteten Spannungsteiler 15k/750R, komm ich auf 3,82 V am Schaltungseingang.

    Das das fast 12V ist, wenn man den Wert mit 3 multiplizert stimmt zwar, aber das ist wohl eher Zufall, weil der ADC bei 12 V Eingangspannung völlig
    übersteuert und evt. dabei auch abgeraucht ist.

    Mit 2.56V Ref und dem Spannungsteiler kannst Du nur Spannungen von 0.- 7,18V messen.

    Ciao,
    Werner

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.04.2004
    Ort
    Gronau
    Beiträge
    155
    Hallo Werner,

    ich rechne mal ein wenig:

    Der Spannungsteiler besteht aus 1,5K (nicht 15k) und 750R
    (bestehend aus 2x 1,5k parallel).

    Bei einer Spannung von 12V: -> I=U/R -> 12/(1500+750) = 0,005333A
    für ADC fallen ab -> U=R*I -> 0,005333A * 750 = 3,99975 Volt

    Bei einer Spannung von 15V: -> I=U/R -> 15/(1500+750) = 0,006666A
    für ADC fallen ab -> U=R*I -> 0,006666A * 750 = 4,9995 Volt

    Ich könnte also max. 15 Volt messen ...

    x. Teil am ADC: (1500+750)/750 = 3 -> Gesamtspannung ist also 3x
    so hoch.

    Gesamtspannung: 3 * 3,99975V = 11,99925 Volt (wäre ja richtig)


    Mein Problem ist jetzt der ADC-Wert. Bei 15 Volt müsste ich 1023 haben,
    bei 12 Volt entsprechend weniger.

    ADC-Wert * Ref: 510 * (2,56/1023) = 1,2762

    Und wie gehts dann weiter ...?


    Gruß: - Reinhard -

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo Reinhard,

    > Ich könnte also max. 15 Volt messen ...
    nur wenn Deine ReferenceSpannung 5V beträge.
    Du kannst aber nur von Gnd bis Aref (am ADC Pin) messen. Also entweder eine externe 5V Referencespannung verwenden oder den Spannungsteiler anpassen.

    > Mein Problem ist jetzt der ADC-Wert. Bei 15 Volt müsste ich 1023 haben,
    > bei 12 Volt entsprechend weniger.
    > ADC-Wert * Ref: 510 * (2,56/1023) = 1,2762
    > Und wie gehts dann weiter ...?

    ... den Spannungsteiler rausrechnen
    1.2762 / (750/2250) = 3,829 V

    Das Stimmt aber nur, solange Dein Messwert korrekt ist und das ist nicht der Fall, da Deine Spannung am ADC Pin größer als Aref ist. Eigentlich sollte Dein Messwert also 1023 betragen sobald die Spannung größer als 7,68 V wird. Vorrausgesetzt Du betreibst den ADC im 10 bit Modus.

    Warum Du einen kleineren Wert misst kann ich nur vermuten. Die wahrscheinlichste Variante ist imo, Du hast den ADC inzwischen geschossen.

    Es kann aber noch andere Gründe haben.
    - Uref nicht mit einem Kondensator am Aref-Anschluß stabilisiert.
    - Du liest im Programm den ADC zu schnell aus.
    - Du liest ihn nur einmal aus. (Der erste ADC Wert nach dem Start einem Messung war früher häufig falsch. Der M128 ist aber so neu, da sollte der Bug inzwischen ausgemerzt sein. )

    Ciao,
    Werner

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.04.2004
    Ort
    Gronau
    Beiträge
    155
    Hallo Werner,

    Zitat Zitat von Werner_Just
    Es kann aber noch andere Gründe haben.
    - Uref nicht mit einem Kondensator am Aref-Anschluß stabilisiert.
    - Du liest im Programm den ADC zu schnell aus.
    - Du liest ihn nur einmal aus.)
    kurz noch zu diesen Punkten:

    Punkt 1 muss ich prüfen (Hardware ist fertig, ich schreib nur die Soft).

    Den ADC habe ich ausgelesen und danach diverse andere Aktionen
    ausgeführt. Ca. alle 2 Sekunden wird der ADC ausgelesen. Ist das
    zu schnell? Ist nur ein Testprogramm, könnte die Zeit also noch
    strecken ...

    Was mir dabei aufgefallen ist: 10-maliges Auslesen bringt meist
    verschiedene Werte: 515, 514, 513 ... 510.

    Und wie ist eigentlich die richtige Reihenfolge:

    Code:
    Start Adc
    Do
      Print Adc(0)
      Wait 2
    Loop
    Stop Adc
    oder

    Code:
    Do
      Start Adc
      Print Adc(0)
      Stop Adc
      Wait 2
    Loop

    Gruß: - Reinhard -

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    02.09.2004
    Beiträge
    124
    Hallo Reinhard,

    2 sec sind mit Sicherheit nicht zu schnell.

    Zur Reihenfolge, das hängt davon ab wie Du den ADC konfiguriert hast, und ob Du Strom sparen willst oder nicht.

    Wie hast Du den ADC konfiguriert?
    'Start ADC' schaltet erstmal nur die Hardware im AVR ein.
    'Stop ADC' schaltet sie aus.

    Einen Messwert holt man normalerweise mit 'GetADC' und legt das Ergebnis in einer Wordvariable ab.

    Ob das direkte Auslesen mit 'Print ADC(0)' korrekt funktioniert kann ich nicht sagen, habs nie ausprobiert. Wenn, dann geht das nur wenn der ADC als 'Free' konfiguriert ist.

    Ciao,
    Werner

  9. #9
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.04.2004
    Ort
    Gronau
    Beiträge
    155
    Hallo Werner,

    die Konfiguration des ADC ist so, wie in der Bascom-Hilfe
    beschrieben (Config Adc = Single , Prescaler = Auto,
    Reference = Internal)

    Mein Hardware-Spezi sagt mir gerade, das wenn URef intern
    zugeschaltet wird, lt. Atmel kein externer CRef nötig wäre.

    Und, man könnte per Software 5 oder 2,56 Volt als Ref
    wählen (muss ich noch nachlesen). Der Spannungsteiler
    wäre so ausgelegt, das bei einer Spannung von 15 Volt am
    ADC 5 Volt anliegen würde.

    Ob ich nun mit Print Word-Variable oder direkt mit Print arbeite,
    dürfte doch keinen Unterschied machen. Zumindest hatte ich
    das gestern noch gemacht und die Werte waren identisch (falsch).

    Gruß: - Reinhard -

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.04.2004
    Ort
    Gronau
    Beiträge
    155
    @Werner,

    Mit Config Adc=Single, Prescaler = Auto, Reference = AVCC
    kann ich bei meiner Hardware 5V als Ref wählen.

    Die Werte sind aber immer noch nicht korrekt.
    Fazit: der ADC ist Schrott.

    Gruß: - Reinhard -

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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