mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Adc Widerstandsmessung


Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich habe eine Schaltung, welche zwischen 2 Pins AD0 und AD1 einen 
Widerstand messen soll, der sich im Bereich von 4 bis 800 Ohm bewegen 
soll. Ich nutze einen Atmega8535.

Beide Adc-Eingänge sind mit 150 Ohm Pullups versehen. Im Programm setze 
ich dann den einen ADC-Eingang auf LOW und messe mit dem anderen 
Adc-Pin.

HAbe  ich also zwischen den beiden ADC-Pins ebenfalls 150 Ohm, so müsste 
ich einen ADC von ca. 512 haben. Bei einem Kurzschluss müsstE die 
gesamte Spannung über den 150 Ohm Pullup abfallen und ich müsste 0 
messen.

Leider habe ich bei einem Kurzschluss den ADC Wert 269.  Nur wieso?

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Macht man sowas nicht eigentlich mit einem Referenzwiderstand im 
Spannungsteiler? Wenn es genauer sein soll mit einer Wheatstone 
Messbrücke.

Thomas

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der 150 Ohm Pullup in der Schaltung ist doch nichts anderes. Er hat eine 
Genauigkeit von 1%. Dadurch dass der andere Pin des ADCs LOW ausgibt 
habe ich doch meinen Stromkreis

+5V - 150R - unbek. widerstand - GND

zusammen, oder?

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
150 Ohm sind viel zu wenig!

Der auf Low geschaltete Ausgang müsste bei VCC=5V 33mA saugen um die
Spannung auf 0V herunterzuziehen. Probier mal den 100fachen
Widerstandswert, also bspw. 15 kOhm.

Warum nimmst du überhaupt einen Portpin als GND-Signal? Schließ doch
einfach das eine Ende des unbekannten Widerstands direkt an GND an.

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil dies leider nicht zu vermeiden geht, da an betreffender Leitung ein 
Lautsprecher angeschlossen wird, der teilweise auch symetrisch betrieben 
wird.

bei 15kOhm wäre das Messergebnis alles andere als genau... Welche 
Alternativen gäbe es noch?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benny wrote:
> Genauigkeit von 1%. Dadurch dass der andere Pin des ADCs LOW ausgibt
> habe ich doch meinen Stromkreis
>
> +5V - 150R - unbek. widerstand - GND
>
> zusammen, oder?

Ich würde mal eher sagen, dein Stromkreis sieht so aus:

+5V - 150R - unbek. widerstand - Widerstand am ADC-Pin des Proz. - GND

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Benny:
Mir ist zwar völlig unklar, was du damit genau bezwecken möchtest
(Vielleicht postest du mal einen Schaltplan mit ein paar Worten zur
Erläuterung), trotzdem noch ein Tipp:

Vielleicht hilft es weiter, wenn an beiden Analogeingängen die
Spannung misst, also auch an dem, der auf Low gesetzt wird. Die
Differenz ist dann die tatsächlich an dem unbekannten Widerstand
anliegende Pannung, unabhängig von der "Stärke" des Low-Ausgangs.

Ich bin mir zwar nicht ganz sicher, ob man an einem als Ausgang
geschalteten Portpin die Spannung per ADC messen kann, aber vermutlich
geht es. Trotzdem ist die Vorgehensweise schon etwas seltsam.

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm... Der maximale Portstrom beträgt doch 50mA. Da sollte ich 
eigentlivh mit 33mA noch im vertretbaren Raum sein.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann ist die Ausgangsspannung aber garantiert ein ganzes Stück über
0V. Die Controller-Ausgänge haben einen nicht zu vernachlässigenden
Innenwiderstand. Schau mal ins Datenblatt. Da gibt es irgendwo
Diagramme, in denen die Ausgangsspannung über dem Ausgangsstrom
aufgetragen ist.

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Ihr habt recht... auf Seite 282 ist im Diagramm ablesbar, dass bei 33mA 
die 0V nicht erreicht wird. Da ist von ca. 0,7V die Rede. Welche andere 
Möglichkeiten gäbe es? Mein Problem ist: Alle Pins des Atmega 8535 sind 
belegt - damit fällt die Möglichkeit über einen Transistor auf GND zu 
schalten flach... ginge anstelle von Pull-Up Widerständen Pull-Down 
Widerstände zu nehmen (auch 150 Ohm)? Dann müsste man eben am anderen 
ADC-Pin kein GND sondern HIGH setzen... was meint Ihr?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Benny wrote:
> Hallo!
>
> Ihr habt recht... auf Seite 282 ist im Diagramm ablesbar, dass bei 33mA
> die 0V nicht erreicht wird. Da ist von ca. 0,7V die Rede. Welche andere
> Möglichkeiten gäbe es?

Du könntest aus deiner Messung den realen Innenwiderstand des
Pins ausrechnen und den in deinen Formeln berücksichtigen.

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn dieser bei allen ADC-Pins gleich ist dann ja - ich messe nicht nur 
1 gegen 2 sondern bspw. auch 7 gegen 1 etc. Da die Schaltung irgendwann 
in größeren Stückzahlen gebaut wird müsste man wahrscheinlich bei allen 
AVRs seperate Programme bereitstellen...

Autor: Benny (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
so ich war euch noch ein Schaltbild schuldig...

Zum Verständnis: Mit dem ADC sollen Lautsprecher ohmisch durchgemessen 
werden. Alle nutzen die gleichen Steckverbindungen. Es gibt LS von 4 Ohm 
bis (mit Vorwiderstand) 800 Ohm. Dieser Bereich sollte der ADC messen 
können. Dabei soll der µC selbstständig anzeigen, ob der Lautsprecher 
symetrisch, unsym1 oder unsym2 betrieben wird.

Leider stehe ich vor dem Problem, dass bei kleinen ohmschen Werten der 
2te Pullup das Ganze mit bis zu 75 Ohm belastet (im Falle eines 
Kurzschlusses).

Damit sinken die 5V auf 3,7V ab. Bei 150 Ohm Last (ohne LS) erreiche ich 
4,3V.

Welchen anderen Weg könnte helfen das Problem zu lösen? Die Spannung ist 
ja nicht stabil aufgrund der Last...

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
<<Welchen anderen Weg könnte helfen das Problem zu lösen? Die Spannung 
ist
<<ja nicht stabil aufgrund der Last...

mach sie doch lastunabhängig
schau mal im tutorial unter opv grundschaltungen (Impedanzwandler)
da erfolgt im prinzip eine "trennung" zur last da beim impedanzwandler 
der eingang sehr hochohmig ist und somit den spannungsteiler den du 
nehmen solltest nicht so stark belastet

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was passiert mit den Lautsprechern, wenn sie mit einem OPV durchgemessen 
werden... ist immerhin Gleichspannung und könnte bei höheren Strömen die 
Membrane beschädigen...

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie bekomme ich meine 5V wieder an den ADC wenn ein OPV 
dahinterhängt? Ich muss ja um herauszufinden wie der LS angeschlossen 
ist

LS1 gegen LS2
LS1 gegen GND
LS2 gegen GND

messen können. Wenn ich beide LS-Leitungen mit einem OP als 
Impedanzwandler versehe habe ich keine Möglichkeit LS1 gegen LS2 zu 
messen, da der OP keine Rückkopplung auf den Eingang macht.

Evtl. reichen meine Elektronikkentnisse dazu auch nicht aus ;)

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch jemand Ideen, wie man das mit OPs und Rückopplung machen könnte? 
Evtl mit Analog Switches?

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was passiert mit den Lautsprechern, wenn sie mit einem OPV durchgemessen
> werden... ist immerhin Gleichspannung und könnte bei höheren Strömen die
> Membrane beschädigen...

Du meinst bei deiner Lösung währe es besser?
Lass einen sehr kleinen Konstanten Strom durch den Lautsprecher fließen 
und miß die Spannung an LS1 und LS2 gleichzeitig.

Autor: 3351 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lautsprecher... 4 Ohm ? Haben sie aber nur bei 1000Hz, und nicht bei DC.

Autor: Benny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau da ist mein schaltungstechnisches Problem... ich muss manchmal 
zwischen Pin 1 und 2 messen, manchmal zwischen Pin 1 und 3 und manchmal 
zwischen Pin 2 und 3 messen... je nachdem welche Sorte Lautsprecher 
angeschlossen wird. Bedeutet: kein Pin ist wirklich fest wo man den 
konstanten Strom durchjagen könnte.

Autor: Thilo M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du könntest einen Analogschalter wie den 4052 benutzen.
Damit schaltest du immer ein Schalterpaar zu, alle deine angegeben 
Varianten.
Der eine Schalter schaltet den Konstantstrom, der andere die 
Messpannung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.