- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: analoge Messung verfälscht ??

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    74
    Beiträge
    1.175
    Blog-Einträge
    1

    analoge Messung verfälscht ??

    Hallo Freunde!

    Für ein Messverfahren habe ich alle analogen Eingänge, per PullUp-R auf HIGH gelegt : digital.write(Ax, HIGH)
    Soweit so gut, offene Eingänge = 1023, aber werden die Eingänge auf GND gelegt messe ich immer noch 14..15 anstatt NULL.

    Mache ich was falsch oder ist das Normal ?

    Gruss & Dank
    OL
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    ... offene Eingänge = 1023 ... die Eingänge auf GND gelegt messe ich immer noch 14..15 ...
    Wieviel Volt mißt Du mit einem Messgerät am Eingang? Und was meldet der Controller, wenn Du einen bestimmten Messwert - welchen auch immer - am Messgerät hast? Immerhin ist ein "offener Eingang" im Prinzip irgendetwas aus der EMV-Wolke der Umgebung. Oder irre ich mich?
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.02.2013
    Ort
    Graz
    Beiträge
    211
    Aso ... ist das überhaupt garantiert, dass GND dort gleich Masse ist? Vielleicht nur innerhalb der üblichen Logik-Signalgrenzen.

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    74
    Beiträge
    1.175
    Blog-Einträge
    1
    Die Eingänge sind wie oben beschrieben mit internen PullUp-Widerstand an +5V gelegt, also nicht DIREKT OFFEN. Werde nachher gleich mal messen mit dem digitMM

    Nachtrag:

    Nach Einfügen einer CodeZeile :
    int wert = map(sensorReading,0,1023,0,5);
    komme ich sauber auf den Nullwert.

    hat mich aber trotzdem etwas gelernt, der Vorfall.

    Danke Euch für die Mitthilfe !!!
    Geändert von oderlachs (15.04.2013 um 19:53 Uhr)
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  5. #5
    Erfahrener Benutzer Roboter-Spezialist Avatar von erik_wolfram
    Registriert seit
    02.12.2009
    Ort
    Berlin
    Beiträge
    406
    Hallo,

    das Verhalten der Analog-Eingänge ist vollkommen normal wenn man den ADC für die Messung positiver Spannungen initialisiert hat.
    Der Grund: die Masse ist für die Messung von Null Volt nach unten verschoben. Möchte man Null Volt Messen muss man vorher eine Offset-Kompensation durchführen. In den Atmel-Bibliotheken sind hierfür extra Funktionen enthalten. Die Verschiebung steht in Abhängigkeit zur Referenzspannung des ADC's.
    Ansonsten kann man zunächst Null Volt Messen und den gemessenen Wert darf/soll man dann von allen Messergebnissen subtrahieren.

    Möchte man auch negative Spannungen messen und initialisiert den ADC entsprechend sollte die Masse (Null Volt) richtig gemessen werden!
    Die Verschiebung erfolgt nur für die Messung positiver Spannungen.

    Gruß Erik
    Meine Projekte auf Youtube

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    74
    Beiträge
    1.175
    Blog-Einträge
    1
    Hallo Erik !

    Vielen Dank für Deine Infos, ich habe mich mal wieder Chip-intern befasst damit, der Hinweis war gut, ich komme zwar noch nicht so richtig damit klar, aber mal sehen.
    Bei dem ADMUX-Reg. sehe ich noch nicht so ganz durch, was da die Voreinstellung L o. H an MUX3..0 an Bedeutung hat, vor allen was da Temperatursensor bedeutet: MUX3:0 = 1000 ??

    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.02.2013
    Ort
    Graz
    Beiträge
    211
    Zitat Zitat von oderlachs Beitrag anzeigen
    Code:
    int wert = map(sensorReading,0,1023,0,5);
    Irgendwie blick ich da nicht ganz durch. Was macht "map()" schon, das stellt einen Wert aus einer Skala in einer anderen dar, es rechnet 0 bis 1023 in 0V bis 5V um. Das Ding weiß doch nichts über irgendwelche offsets ...

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von oderlachs
    Registriert seit
    17.05.2010
    Ort
    Oderberg
    Alter
    74
    Beiträge
    1.175
    Blog-Einträge
    1
    Hallo ichbinssisyphos,
    ja da gebe ich Dir recht, mir ging es in der Anwendung darum, wenn GND geschaltet, sollte auch Null "gemessen" werden. Die gerundeten "Voltzahlen" sollten in einer Case Anweisung ausgewertet werden...also brauch ich 0,1,2,3,4 u.5.
    Über das andere was noch nebenbei so ans Tageslicht hier in den Beiträgen kam, bin ich auch nicht böse, da lernt man wieder was dazu, wenn man detailliertere Auswertungen vor hat...noch stehe ich vor dem grossen Rätsel mit einem Feuchte- u.Temperatursensor auch negative Temperaturen auswerten zu können, was ich noch nicht begriffen bzw erreicht habe...

    Gruss
    Gerhard
    Arduinos, STK-500(AVR), EasyPIC-40, PICKIT 3 & MPLABX-IDE , Linux Mint

  9. #9
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Zitat Zitat von oderlachs Beitrag anzeigen
    Hallo Freunde!

    Für ein Messverfahren habe ich alle analogen Eingänge, per PullUp-R auf HIGH gelegt : digital.write(Ax, HIGH)
    Soweit so gut, offene Eingänge = 1023, aber werden die Eingänge auf GND gelegt messe ich immer noch 14..15 anstatt NULL.

    Mache ich was falsch oder ist das Normal ?

    Gruss & Dank
    OL
    Analoge Eingänge, wenn sie für den ADC verwendet werden, habe ich noch nie per PullUp auf high gelegt.
    Auch wenn die internen PullUp etwa 50 - 70k haben, verfälschen sie doch das Messergebnis.
    Das auf den Eingängen, ohne PullUp, dann auch was drauf sein muss ist klar, da sie sonst floaten.
    Wenn die Eingänge dann auf GND liegen, ist die ADC-Ausgabe auch 0. Eine sauber AGND-Führung sollte natürlich auch sein.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  10. #10
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.06.2011
    Ort
    Dresden
    Beiträge
    219
    Hallo,

    Zitat: Analoge Eingänge, wenn sie für den ADC verwendet werden, habe ich noch nie per PullUp auf high gelegt. - Ich auch nicht.
    Gerade bei ADC's die den Eingangsstrom über eine Zeit bewerten hängt der entstehende Fehler durch pull-up dann nur noch vom Ausgangs-
    widerstand der Quelle ab, richtig lustig wird's aber erst, wenn dieser nichtmal konstant ist.
    Genausowenig halte ich davon, Fehler (Offsets...) gleich mal wegzurechnen. Erst mal prüfen: Quellwiderstand zu hoch ?, C's (Tantal) an
    Analog VCC und Referenz ?, Masse der C's kurz geführt und an einen Punkt gebracht ? Laufen grössere Digital-Ströme quer durch den
    Analog-Teil ...
    Ist alles bei 10bit sicherlich nicht so präkär, aber eine gute Übung !
    mfg
    Achim

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Analoge Odometrie
    Von radbruch im Forum Asuro
    Antworten: 9
    Letzter Beitrag: 06.07.2007, 15:01
  2. Timer verfälscht LCD?!
    Von TobiasBlome im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 23.05.2007, 15:45
  3. RS232 Problem - Signal verfälscht nach Anschluss
    Von OnkelTobi im Forum AVR Hardwarethemen
    Antworten: 2
    Letzter Beitrag: 21.11.2006, 16:10
  4. Analoge Eingänge
    Von Gerko im Forum Assembler-Programmierung
    Antworten: 2
    Letzter Beitrag: 31.07.2006, 18:54
  5. analoge telephone
    Von slaud im Forum Elektronik
    Antworten: 6
    Letzter Beitrag: 31.05.2005, 12:02

Berechtigungen

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

12V Akku bauen