- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 68

Thema: Ein ADC Schritt Ref/n oder Ref/(n-1)

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Zitat Zitat von HaWe Beitrag anzeigen
    nein, bei 0 bis 255 gibt es 255 Bereiche (Quantisierungsintervalle, steps), nicht 256 !!

    wenn z.B. nur die ADC-Werte 0,1,2,3 möglich wären (2-bit ADC, 2²=4) , entspräche
    0 -> 0 V
    1 -> 1,67 V
    2- > 3,33 V
    3 -> 5 V

    das sind 4 Werte, aber nur 3 Schritte, jeder Schritt 1/3 von 5V. Capisce?
    Kannst Du das mal bitte für einen 1Bit-Wandler auf 5V vorrechnen?

  2. #2
    HaWe
    Gast
    Zitat Zitat von Holomino Beitrag anzeigen
    Kannst Du das mal bitte für einen 1Bit-Wandler auf 5V vorrechnen?
    habe ich oben schon getan, und wo ist das Problem? Es rechnet sich ganz genau so: probier's selber aus!

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Weil Deine Werte nicht stimmen.
    Das Ergebnis einer AD-Wandlung gibt das Intervall zurück. Die Intervalle sitzen nicht zwischen den quantisierten Messwerten, sondern um die Messwerte herum. Insofern ist der Vergleich mit dem Zaunlattenprinzip hanebüchender Unsinn.

    Bei der 2Bit-Wandlung ergibt sich:
    0 U<1,25V
    1 1,25V<=U<2,5V
    2 2,5V<=U<3,75V
    3 3,75V<=U

    Genau das gibt der von Siro zitierte Satz aus dem DB wieder.
    … and the maximum value represents the voltage on the AREF pin minus 1 LSB.

    Sprich: 0x3FF sind beim AVR de facto nicht 5V. Nicht in der Theorie und auch nicht in der Praxis.

    Eigentlich hatte ich gehofft, Dich durch die Rückführung auf das einfachst mögliche Beispiel noch einmal mit der Nase drauf zu stoßen.

    Aber nein, HaWe weiß es besser!
    Geändert von Holomino (07.02.2020 um 11:49 Uhr)

  4. #4
    HaWe
    Gast
    nein, es geht um die Abbildung des 0...1 ADC-Intervalls (edit: oder des entspr. höher auflösenden ADC-Bereichs) auf das Volt-Intervall 0...5V, und diese Funktion ist weder bijektiv noch umkehrbar noch stetig.
    Es wird also der kleinste ADC-Wert auf den kleinsten Volt-Wert und der größte ADC-Wert auf den größten Volt-Wert abgebildet,
    und gibt es ADC-Werte dazwischen, dann nach Dreisatz wie gezeigt
    a/aMax=v/vMax

    Es geht also insb. auch nicht um die Umkehrfunktion Volt -> ADC.

    1bit => 2 hoch 1 mögliche Werte = 2,
    max ADC Wert (2 hoch 1) -1 = 1
    a/aMax=v/vMax
    <=> v=(a/aMax)*vMax
    a=0 => v=0*5=0
    a=1 => v=1*5=5

    0 -> 0V
    1 -> 5V

    es werden keine Intervalle zurückgegeben, sondern mathematisch linear korrelierte Werte.
    Aber nein, Holomino weiß es besser!
    Geändert von HaWe (07.02.2020 um 12:02 Uhr)

  5. #5
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    72
    Beiträge
    13.138
    Vielleicht hilft es in der Klärung wenn man am Beispiel D/A Wandler mit PWM benennt, welcher der 2 hoch n Werte nicht erreicht wird.

    Im Beispiel n = 8 sind grundsätzlich die Werte 0, 1, 2, ... 254, 255 erreichbar, das wären schon 256 Werte.

  6. #6
    HaWe
    Gast
    der höchste erreichbare Wert bei 8-bittern ist 255, und nur der geht in den Dreisatz mit ein, und der entspricht der Anzahl der Einzel-Mess-Schritte.
    Es ist auch nicht eindeutig klar, was du jetzt eigentlich aussagen willst, wenn du dich auf "256 Werte" beziehst, das ist sehr unklar formuliert.
    Ich denke nicht, dass du damit meinen könntest, man soll durch 256 teilen, denn das wäre mathematischer Unsinn, und auch bei pwm ist ja 255 der höchstmögliche Wert, wenn man diese Analogie bemühen möchte

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Ich habe im Datenblatt vom 328P gelesen und tatsächlich noch etwas gefunden:

    28.7. ADC Conversion Result


    After the conversion is complete (ADCSRA.ADIF is set), the conversion result can be found in the ADC
    Result Registers (ADCL, ADCH).


    For single ended conversion, the result is
    ADC = Vin x 1024 / Vref


    where VIN is the voltage on the selected input pin, and VREF the selected voltage reference (see also
    descriptions of ADMUX.REFSn and ADMUX.MUX). 0x000 represents analog ground, and 0x3FF
    represents the selected reference voltage minus one LSB.

    Und ich habe für mich nachgerechnet
    Code:
    Schritt 1:
    ----------
    geg: Vin = Vref = 5V
    
    
    5V / 1024 = 0,0048828125V
    5V - 0,0048828125 = 4,9951171875V
    
    
    Schritt 2:
    ----------
    geg: Vin = 4,9951171875V
          Vref = 5V
           
    ADC = 4,9951171875V x 1024 / 5V
    ADC = 1023
    
    Probe:
    1023 x 5V / 1024 = 4,9951171875V
    
    
    Ergo
    -----
    ADC x 5V / 1024 = Vin
    
    bzw.
    
    
    Vin = ADC x Vref / 1024
    


    Nachtrag:

    Datenblatt unter: ADC Conversion Result (Abschnitt 28.7 - ATmega328P, 26.7 - ATmega640-1280-1281-2560-2561).
    Beim ATmega640 ... gibt es noch eine Tabelle "Correlation Between Input Voltage and Output Codes".
    Geändert von Moppi (09.02.2020 um 05:12 Uhr)

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    903
    Zitat Zitat von HaWe Beitrag anzeigen
    der höchste erreichbare Wert bei 8-bittern ist 255, und nur der geht in den Dreisatz mit ein, und der entspricht der Anzahl der Einzel-Mess-Schritte.
    Es ist auch nicht eindeutig klar, was du jetzt eigentlich aussagen willst, wenn du dich auf "256 Werte" beziehst, das ist sehr unklar formuliert.
    Ich denke nicht, dass du damit meinen könntest, man soll durch 256 teilen, denn das wäre mathematischer Unsinn, und auch bei pwm ist ja 255 der höchstmögliche Wert, wenn man diese Analogie bemühen möchte
    Doch, genau das tut man. Man teilt VREF durch die Größe des Wertebereiches, also 256. VRef gibt's in der Ergebnismenge nicht. Der Wert springt bei 255*VRef/256 auf 0xFF.

    Bei VRef = 5V bleibt also als einzige korrekte Interpretation des Wertes 0xFF in der Anzeige:

    U>4,980V

  9. #9
    HaWe
    Gast
    Zitat Zitat von Holomino Beitrag anzeigen
    Doch, genau das tut man. Man teilt VREF durch die Größe des Wertebereiches, also 256. VRef gibt's in der Ergebnismenge nicht. Der Wert springt bei 255*VRef/256 auf 0xFF.

    Bei VRef = 5V bleibt also als einzige korrekte Interpretation des Wertes 0xFF in der Anzeige:

    U>4,980V
    wer das so tut und partout falsch rechnen will, soll es meinetwegen tun.
    Wer genug Verstand besitzt, sollte hingegen inzwischen wissen, wie und warum man es richtig machen kann und soll, indem man durch (n-1) dividiert.
    Es wurde aber inzwischen von mir alles gesagt und gezeigt, was nötig war, und ich muss auch niemanden überzeugen, der sich logischen Argumenten verschließt - daher bin ich jetzt hier raus.

Ähnliche Themen

  1. Entscheidungshilfe Schritt oder Getriebemotor
    Von Atmega328 im Forum Motoren
    Antworten: 2
    Letzter Beitrag: 30.04.2014, 16:38
  2. Antworten: 5
    Letzter Beitrag: 09.10.2013, 10:50
  3. Suche Drehtisch/Schwenkkopf für Kamera (Schritt oder Servo)
    Von MasterFX im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 5
    Letzter Beitrag: 13.07.2013, 07:28
  4. Schritt- oder Getriebemotor?
    Von logliner im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 22
    Letzter Beitrag: 28.08.2012, 14:47
  5. welchen motor, schritt oder servo?
    Von x3oo im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 23.03.2010, 21:41

Berechtigungen

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

Labornetzteil AliExpress