- fchao-Sinus-Wechselrichter AliExpress         
Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 68

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

  1. #41
    HaWe
    Gast
    Anzeige

    Praxistest und DIY Projekte
    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 13:02 Uhr)

  2. #42
    Super-Moderator Lebende Robotik Legende Avatar von Manf
    Registriert seit
    30.01.2004
    Ort
    München
    Alter
    71
    Beiträge
    13.075
    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.

  3. #43
    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

  4. #44
    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 06:12 Uhr)

  5. #45
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    899
    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

  6. #46
    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.

  7. #47
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Robotniks
    Registriert seit
    13.10.2007
    Beiträge
    175
    Informatiker am Bahnhof: 0, 1, 2, 3, 4 -> wo ist mein 5. Koffer

  8. #48
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    899
    Zitat Zitat von HaWe Beitrag anzeigen
    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.
    Das hat keine höhere Logik. Das folgt dem einfachen Prinzip von Spannungsteilern und Komparatoren. Ein 1Bit-AD-Wandler hat seine Schaltschwelle zweckmäßigerweise bei VREF/2.
    Wer dort mehr hineininterpretiert und falsch rechnet (oder sogar sagt, der Wert "1" ist gleichbedeutend mit "5V"), handelt sich erhöhte Messfehler ein.

  9. #49
    HaWe
    Gast
    Zitat Zitat von Holomino Beitrag anzeigen
    Das hat keine höhere Logik. Das folgt dem einfachen Prinzip von Spannungsteilern und Komparatoren. Ein 1Bit-AD-Wandler hat seine Schaltschwelle zweckmäßigerweise bei VREF/2.
    Wer dort mehr hineininterpretiert und falsch rechnet (oder sogar sagt, der Wert "1" ist gleichbedeutend mit "5V"), handelt sich erhöhte Messfehler ein.
    es geht nicht um Schaltschwellen, sondern um die Skalierung von Werten.
    Der Dreisatz benutzt immer die niedrigsten möglichen und die höchsten möglichen Grenzwerte als Bezugswerte.
    Eine Funktion hat auch immer nur 1 Funktionswert, niemals mehrere oder einen Bereich, sonst ist es keine Funktion sondern eine Relation.
    In diesem Fall der ADC-zu-Volt-Umrechnung ist es ein definierter Funktionswert ohne größer oder kleiner irgendwas.
    Wer hier die Mathematik neu erfinden will, soll dies für sich tun, aber ohne Anspruch auf Korrektheit: ich kann auch niemanden daran hindern, 5 Koffer von 0 bis 5 zu zählen.
    Die Berechnung von Bereichen oder "Schaltschwellen" um den skalierten Wert herum oder darüber oder darunter gehört keinesfalls zur Aufgabe einer Skalierungs- oder Regressionsfunktion: wer hier statistische oder sonstwelche "Bereiche" um die skalierten Werte herum braucht wie Fehlerbreite, Schaltschwellen, Standardabweichungen oder Konfidenzintervalle, soll sie gesondert berechnen (z.B. ± 1/2 Messschrittbreite etc).

    - - - Aktualisiert - - -

    (sorry, eigentlich wollte ich ja raus sein, aber bestimmte Dummheiten kann ich einfach nicht unwidersprochen stehen lassen -

    aber ab jetzt ....)

  10. #50
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von HaWe Beitrag anzeigen
    (sorry, eigentlich wollte ich ja raus sein, aber bestimmte Dummheiten kann ich einfach nicht unwidersprochen stehen lassen -

    aber ab jetzt ....)
    Schon wieder so eine Diffamierung ... Aber braucht ja keiner mehr eine zu "fürchten". Ich habe ein Experiment durchgeführt, das auch jeder einfach selbst nachbauen kann:

    Ich habe an den 10-Bit ADC eines ATtiny44 ADC ein 10k Poti angeschlossen und AD-Wandlungen durchgeführt. Aref auf Vcc. Dann mit 8-fach rechts shiften einen 2-Bit ADC simuliert. Die 2-Bit ADC-Ausgabe, also die Werte 0, 1, 2, 3 per RS232 auf den PC Bildschirm und parallel mit einem Multimeter am ADC-Eingang die Spannung gemessen.

    Reale Meßwerte: bei Vcc = 5,04V

    DMM 0,00V bis 1,26V , ADC-Ausgabe = 0
    DMM >1,26V bis 2,52V , ADC-Ausgabe = 1
    DMM >2,52V bis 3,78V , ADC-Ausgabe = 2
    DMM >3,78V bis 5,03V , ADC-Ausgabe = 3

    Das Meßgerät ist kein Präzisionsmeßgerät und der Tiny sitzt nur auf dem Steckbrett. Um Meßwertzittern zu vermeiden habe ich vor dem shiften eine 2-Bit SW-Hysterese verwendet. Die Ungenauigkeit dadurch ist 5v*3/256=0,0585V oder 5V*3/255=0,0588V

    Die Meßwerte reichen trotzdem aus um zu entscheiden, ob mit 3 (n-1) oder besser mit 4 (n) gerechnet werden sollte.

    Für die Zuordnung einer Spannung zu einer ADC Ausgabe rechne ich Vref/(4*2)+Vref*ADC/4. Ich rechne also mit n, also der Anzahl der möglichen Ausgabewerte beim ADC. Bei 8-Bit ADC also mit 256 und nicht mit den schlechteren 255.

    - - - Aktualisiert - - -

    Zitat Zitat von Searcher Beitrag anzeigen
    Um Meßwertzittern zu vermeiden habe ich vor dem shiften eine 2-Bit SW-Hysterese verwendet. Die Ungenauigkeit dadurch ist 5v*3/256=0,0585V oder 5V*3/255=0,0588V
    Fehler ist noch kleiner, da es die letzten beiden Bits des 10-Bit Ergebnisses sind:
    5v*3/1024=0,01464V bzw 5v*3/1023=0,01466V für die (n-1) Leute.
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte

Ähnliche Themen

  1. Entscheidungshilfe Schritt oder Getriebemotor
    Von Atmega328 im Forum Motoren
    Antworten: 2
    Letzter Beitrag: 30.04.2014, 17:38
  2. Antworten: 5
    Letzter Beitrag: 09.10.2013, 11: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, 08:28
  4. Schritt- oder Getriebemotor?
    Von logliner im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 22
    Letzter Beitrag: 28.08.2012, 15:47
  5. welchen motor, schritt oder servo?
    Von x3oo im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 23.03.2010, 22:41

Berechtigungen

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

Solar Speicher und Akkus Tests