www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik Adc Widerstandsmessung

Autor: Benny (Gast)
Datum: 07.05.2008 12:41

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: 07.05.2008 12:55

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: 07.05.2008 13:00

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: 07.05.2008 13:16

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: 07.05.2008 14:13

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 Buchegger (kbuchegg) (Moderator)
Datum: 07.05.2008 14:16

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: 07.05.2008 14:32

@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: 07.05.2008 15:10

Hmm... Der maximale Portstrom beträgt doch 50mA. Da sollte ich
eigentlivh mit 33mA noch im vertretbaren Raum sein.
Autor: yalu (Gast)
Datum: 07.05.2008 15:16

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: 07.05.2008 17:26

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 Buchegger (kbuchegg) (Moderator)
Datum: 07.05.2008 17:34

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: 07.05.2008 17:57

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: 07.05.2008 19:27
Dateianhang: adc.gif (17,7 KB, 56 Downloads)
preview image for adc.gif

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: 07.05.2008 19:39

<<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: 07.05.2008 19:48

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: 07.05.2008 19:59

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: 09.05.2008 06:15

noch jemand Ideen, wie man das mit OPs und Rückopplung machen könnte?
Evtl mit Analog Switches?
Autor: Gast (Gast)
Datum: 09.05.2008 07:25

> 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: 09.05.2008 08:10

Lautsprecher... 4 Ohm ? Haben sie aber nur bei 1000Hz, und nicht bei DC.
Autor: Benny (Gast)
Datum: 09.05.2008 15:02

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. (power)
Datum: 09.05.2008 16:14

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 Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
  • Aussagekräftigen Betreff wählen
  • Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
  • JPEG-Dateien (.jpg) nur für Fotos verwenden, Schaltpläne, Screenshots usw. als PNG oder GIF anhängen

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel






webmaster@mikrocontroller.netImpressumWerbung auf Mikrocontroller.net