Go Down

Topic: Genauigkeit eines Ohmmeters (Read 4301 times) previous topic - next topic

Fipsi

Hallo zusammen,

für mein Projekt hab ich eine Reihe an Widerständen anhängen, welche gemessen werden müssen. Die Winderstände sind alle gleich groß (120 Ohm). Da die Anzahl der Widerstände Variabel ist, soll der Gesamtwiderstand gemessen werden.
Ich wollte jetzt fragen, wie genau die Ohmmeter (z. B. dieser hier: http://www.elektronik-labor.de/Arduino/Ohmmeter.html) sind. Da das Projekt gedacht ist, auf bis zu 55 dieser Widerstände (6655 Ohm Gesamtwiderstand) ausgelegt zu sein, und da ja dann sehr kleine Ströme fließen (0.75131480090158 mA), bin ich mir jetzt nicht so sicher, ob da ein Mega2560 da so genau messen kann.

Könnte mir das bitte jemand sagen?

Vielen Dank

LG

Fipsi
Funktioniert bei mir was nicht, dann liegt es an dem Teil, den ich sowieso nicht versteh ;)

guntherb

#1
Feb 08, 2014, 12:55 pm Last Edit: Feb 08, 2014, 01:06 pm by guntherb Reason: 1
Im Datenblatt des ATMega steht was von "• ±2 LSB Absolute Accuracy".
Dazu mußt du die Genauigkeit deines Messwiderstandes addieren.(der dürfte den größten Einfluß haben.)
Es wird empfohlen den AD mit einer Quelle  <10k zu betreiben, deine 6.6k sind also ok.

Nachtrag: wenn du einen 1% Messwiderstand hast, der in etwa in der gleichen Größenordnung (ca 6,5k) liegt, dann wirst du bei ca. 2% Genauigkeit rauskommen.
Grüße
Gunther

Fipsi

Okay, das mit dem Datenblatt hab ich übersehen und kann ehrlich gesagt auch noch nicht sooo viel damit anfangen^^.

Ich hatte vor, diese WIderstände (http://www.reichelt.de/1-4W-5-100-Ohm-910-Ohm/1-4W-120/3/index.html?&ACTION=3&LA=2&ARTICLE=1346&GROUPID=3064&artnr=1%2F4W+120) zu verwenden.
Aber wo du gerade das mit der Messungenauigkeit anspricht, kommt mir ein Punkt..:
Das System mit der Variablen Anzahl der Widerstände kommt davon, weil ein Arduino "zählen" soll, wieviele Geräte angehängt sind. Dies wollte ich eben über den Widerstand bestimmen: Für jedes Gerät ein Widerstand, Gesamtwiderstand ermitteln, durch einen Einzelwiderstand und dann die Anzahl der Einzelwiderstände rauskriegen. Funktioniert das mit der Messungenauigkeit? Also ich hab eh vor, jeden Widerstand vor dem einbau zu messen, und bei einer Abweichung mit mehr als 1,5 Ohm  ihn nicht zu verwenden, da ich mit dem Leiterwiderstand (kann auf eine Gesamtlänge von ca. 200 - 300 Meter kommen)  ja eh auch noch Ungenauigkeiten reinbekomme.

Ich hoffe, mein Projekt ist nicht jetzt hier schon zum scheitern verurteilt.

LG

Fipsi
Funktioniert bei mir was nicht, dann liegt es an dem Teil, den ich sowieso nicht versteh ;)

sth77

Bei solchen Längen spielt der Leitungswiderstand schon eine wichtige Rolle. Wenn du 300m mit einer einfachen Litze mit 0,14 mm² Querschnitt erreichen willst, hast du schon 38 Ohm Leitungswiderstand, wenn du noch eine Rückleitung brauchst, verdoppelt sich dieser Wert noch. Auch an die entstehenden Übergangswiderstände zwischen Leitung und Widerstand im Lötpunkt sollte denken.
Aber solange du nicht konkreter wirst oder werden möchtest, kann dir da auch keiner wirklich helfen.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

guntherb

Du nimmst Kohleschichtwiderstände 1/4W, 5%????
Und willst die dann einzeln aussortieren auf 1,25% ????

Das ist aber schon etwas umständllich, oder?

Nimm doch lieber Metallschichtwiderstände mit 1%

Aber das mit Leitungswiderstand wird spannend.
300m Kupferleitung 0,5mm² haben 10 Ohm. Und dann kommen noch die ganzen Übergangswiderstände dazu.
Am besten du rechnest das vorher mal aus.
Grüße
Gunther

Fipsi


Bei solchen Längen spielt der Leitungswiderstand schon eine wichtige Rolle. Wenn du 300m mit einer einfachen Litze mit 0,14 mm² Querschnitt erreichen willst, hast du schon 38 Ohm Leitungswiderstand, wenn du noch eine Rückleitung brauchst, verdoppelt sich dieser Wert noch. Auch an die entstehenden Übergangswiderstände zwischen Leitung und Widerstand im Lötpunkt sollte denken.


Vorerst veranschlagt hab ich 1 mm² Kupfer. Geplant für die ganze Konstruktion hatte ich 7x 1 mm² Steuerleitung, wie sie in der Industrie verwerdet werden. (L, N, RX, TX, GND, Widerstandsleitung hin, Widerstandsleitung zurück). Nach ersten Überschlagungen (ich lern z. Z. Elektroniker), sollte dies ausreichen. An den Übergängen sollten diese RS 232 Stecker (http://www.reichelt.de/SUB-D-Industrieverbinder/D-SUB-ST-09L/3/index.html?&ACTION=3&LA=2&ARTICLE=41093&GROUPID=3205&artnr=D-SUB+ST+09L) und Buchsen (http://www.reichelt.de/SUB-D-Industrieverbinder/D-SUB-BU-09L/3/index.html?&ACTION=3&LA=2&ARTICLE=41096&GROUPID=3205&artnr=D-SUB+BU+09L) verwenden, welche jeweils einen Widerstand von 2,5 mOhm haben.


Aber solange du nicht konkreter wirst oder werden möchtest, kann dir da auch keiner wirklich helfen.


Ich brauch nicht viel zu verheimlichen, das Projekt würde eh niemand wirklich übernehmen wollen, allerdings will ich selbst nur nicht alles gleich auf den Tisch legen, damit ich nicht zum labern anfang und das Zeug erzähl, was niemanden interessiert. Wenn genauere Info's benötigt werden, liefere ich diese gern nach.


Du nimmst Kohleschichtwiderstände 1/4W, 5%????
Und willst die dann einzeln aussortieren auf 1,25% ????

Das ist aber schon etwas umständllich, oder?

Nimm doch lieber Metallschichtwiderstände mit 1%


Ja, darauf kam ich dann auch, als ich nochmal an die 5 % dachte.. bin schon dabei, mich nach anderen umzusehen.


Aber das mit Leitungswiderstand wird spannend.
300m Kupferleitung 0,5mm² haben 10 Ohm. Und dann kommen noch die ganzen Übergangswiderstände dazu.
Am besten du rechnest das vorher mal aus.


Siehe obrige Antwort in diesem Post.
Funktioniert bei mir was nicht, dann liegt es an dem Teil, den ich sowieso nicht versteh ;)

sth77

1 mm² in den Lötkelch eines Sub-D-Steckers bzw. einer entsprechenden Buchse zu löten wird ne sportliche Aufgabe. ;) Wir sind gespannt.
Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Fipsi

*g* Das kommt zwar erst noch in der Ausbildung, aber das werd ich schon hinkriegen^^

Und wenns ein, zwei Drähte zu viel sind, dann probier ich, ob ich die auch abknipsen kann.
Funktioniert bei mir was nicht, dann liegt es an dem Teil, den ich sowieso nicht versteh ;)

Doc_Arduino

Hallo,

wegen Deinem aussortieren. Errechne sämtliche Toleranzbereiche die in Frage kommen, seitens der verwendeten Widerstände und Lötpunkte, Stecker und schau in welchen Bereich sich die Abweichungen im gesamten bewegen. In Ohm. Dann würde ich nochmal überprüfen ob man den verwendeten Widerstandswert ändern sollte um definierte Ohm Abstände zubekommen die man dann sicher mit dem µC erkennen kann. Dann könnte man sich das aussortieren hunderter Widerstände ersparen.

Tschau
Doc Arduino

sschultewolter


1 mm² in den Lötkelch eines Sub-D-Steckers bzw. einer entsprechenden Buchse zu löten wird ne sportliche Aufgabe. ;) Wir sind gespannt.


Wenn du das geschafft hast, schick mir mal ein Exemplar, ich löte aus, und suche die fehlenden Adern die fehlen :P 0,75mm² is so gerade machbar.
Keinen technischen Support über PN!

uwefed

1) ein 5% Widerstand wird durch aussuchen nicht genauer. In die Tolleranzklasse fließt nicht nur die Produktionsungenauigkeit, sondern auch der Temperaturkoefizient, Alterung und Rauschen ein.
2) 230VAC und TTL-serial im gleichen Kabel kann zu Problemen führen.
3)  Wie machst Du daß die Schleife immer geschlossen ist?
Grüße Uwe

sschultewolter


Vorerst veranschlagt hab ich 1 mm² Kupfer. Geplant für die ganze Konstruktion hatte ich 7x 1 mm² Steuerleitung, wie sie in der Industrie verwerdet werden. (L, N, RX, TX, GND, Widerstandsleitung hin, Widerstandsleitung zurück).

Halt STOPP, jetzt schreibe ich ;)

Ich hab mir den Post nun noch einmal genauer durchgelesen, wenn ich das jetzt richtig verstanden haben, dass du über die Widerstandswerte nur die Anzahl der Geräte ermitteln willt. Welche Geräte möchtest du auswerten? Sind das Geräte, die ihr selber baut, oder du baust?

Wie läuft die Kommunikation genau ab zwischen dem Master und den ganzen Slave. Die müssen ja irgendetwas mit Daten versorgen.

Mögliche wäre da zB.
Code: [Select]

Master fordert Temp1 von Slave01
Slave01 sendet Temp1  an Master
Master erhält Temp1 von Slave01 => +1 Teilnehmer


Du musst die Slaves schon einzeln ansprechen, bzw. mit einer Codierung ansprechen, ansonsten würden sich alle zurückmelden, und das sollte mit der Seriellen Schnittstelle NICHT gehen. Denn dann würden alle Slaves gleichzeitig antworten.
Keinen technischen Support über PN!

rudirabbit

Der Leitungswiderstand ist doch ein Parameter, einmal berechnet oder gemessen könnte man diesen rechnerisch eliminieren.
Wenn man mit dieser Drahtlänge den Meßwiderstand brückt, und sich die Widerstandsausgabe des Arduino anzeigen lässt hätte man den Fehlerwert der durch den Querstrom entsteht ermittelt.

Zur Widerstandsberechnung : Dies  kann man dann noch von der Betriebspannung des ADC unabhängig machen.
Jurs (wer sonst)  hatte dies mal so hergeleitet:
Quote

VB = Betriebsspannung des Arduino (irgendwo bei ca. 5V)
RV = Vorwiderstand
RN = Widerstand der zu Messen ist
VA = Spannung am Arduino-Messeingang

VA = RN*I
VB = (RV+RN)*I
   
VA/VB= (RN*I)/((RV+RN)*I) 
VA/VB= RN/(RV+RN)         
VA/VB*(RV+RN)= RN         
RV*VA/VB + RN* VA/VB = RN

RV*VA/VB = RN - RN*VA/VB
RV*VA/VB = RN(1-VA/VB)

RN= RV*VA/VB / (1-VA/VB)

Die einzelnen Parameter sind im Code nochmal erklärt.
Die Variable "VA/VB" bezeichnet das Verhältnis aus Spannung am Meßwiderstand geteilt durch die Betriebsspannung.
Praktischerweise ermittelt der Aruino genau dieses Verhältnis in 1024 Schritten,
so daß man an der Stelle einfach den Messwert des Analogpins geteilt durch den Maximalwert 1023.0
(das .0 damit es eine Float-Variable wird) übergeben kann.


So wird es etwas genauer, weil die 5V +- 0.xx  noch rausfallen.
Die Aufgabe verstehe ich so:
Er will quasi die Anzahl der in Reihe geschalteten  120 Ohm Widerstände berechnen.
Dies sollte doch damit möglich sein.
Arduino UNO,MEGA  Fremdgänger mit dem  Nucleo L152RE   
Dunkel die andere Seite ist. - Klappe, Yoda, und iss deinen Toast :-)

Theseus

Hallo,

ich stelle mir bei 300m Leitungslänge vor, dass du größere Probleme mit Einstreuungen in die Leitung bekommst. Irgendwo auf dem Weg gibt es bestimmt Störquellen, seinen es Motoren, Leuchtstofflampen oder parallel laufende Netzleitungen.

Fipsi

#14
Feb 09, 2014, 09:29 am Last Edit: Feb 09, 2014, 09:45 am by Fipsi Reason: 1

wegen Deinem aussortieren. Errechne sämtliche Toleranzbereiche die in Frage kommen, seitens der verwendeten Widerstände und Lötpunkte, Stecker und schau in welchen Bereich sich die Abweichungen im gesamten bewegen. In Ohm. Dann würde ich nochmal überprüfen ob man den verwendeten Widerstandswert ändern sollte um definierte Ohm Abstände zubekommen die man dann sicher mit dem µC erkennen kann. Dann könnte man sich das aussortieren hunderter Widerstände ersparen.


Dass ich das alles erst ausprobiere, bevor ich das Großprojekt erarbeite, war schon in meinem Plan vorhanden. Bei meinem "Glück" funktioniert das alles eh nicht so, wie ich mir das vorstelle, aber einen Ansatz brauch ich ja ;)


1) ein 5% Widerstand wird durch aussuchen nicht genauer. In die Tolleranzklasse fließt nicht nur die Produktionsungenauigkeit, sondern auch der Temperaturkoefizient, Alterung und Rauschen ein.
2) 230VAC und TTL-serial im gleichen Kabel kann zu Problemen führen.
3)  Wie machst Du daß die Schleife immer geschlossen ist?
Grüße Uwe


1) Achso. Ich dachte, die Toleranz bedeutet nur, dass er eben 5 % mehr oder weniger Ohm als angegeben haben könnte, dass sich der Temperaturabhängig auch ändert, ist mir bewusst, allerdings werden sich die Temperaturen zwischen 10 bis 35 ° C bewegen, deswegen sollte das kein Problem sein. Und wegen dem Alter dachte ich mir, entweder haben die den Wert oder sind kaputt.

2) Ich pflanz da auch keine 230 V AC rein, sondern setzt in das Gehäuse des - nenns für den weiteren Verlauf gleich mal - Mastergeräts einen Trenntrafo für 230 V AC => 24 V DC ein. Da die Mega max. 20 V DC vertragen, kommen dafür noch 2x 2,5 V LED's, damit ich bei max. 19 V bin und gleichzeitig noch eine Betriebsanzeige hab.

3) Da ja alles Steckbar ist, soll an das Ende einfach ein Endstecker kommen. Die zwei Widerstandsleiter werden verbunden, der Rest landet in der Prärie. Und überall, wo ich was von den Leitern brauch, geh ich über Parallelschaltung runter.



Vorerst veranschlagt hab ich 1 mm² Kupfer. Geplant für die ganze Konstruktion hatte ich 7x 1 mm² Steuerleitung, wie sie in der Industrie verwerdet werden. (L, N, RX, TX, GND, Widerstandsleitung hin, Widerstandsleitung zurück).

Halt STOPP, jetzt schreibe ich ;)

Ich hab mir den Post nun noch einmal genauer durchgelesen, wenn ich das jetzt richtig verstanden haben, dass du über die Widerstandswerte nur die Anzahl der Geräte ermitteln willt. Welche Geräte möchtest du auswerten? Sind das Geräte, die ihr selber baut, oder du baust?


Richtig. Ich hab eine 7x 1 mm² Leitung, an der alle x Meter ein Abzweigkasten hängt. An dem geh ich wie oben schon beschrieben mit Parallelschaltung mit einer 5x 0,75 mm ² Leitung weg (die Widerstandsleiter brauch ich ja nur in dem Abzweigkasten, da dieser mit dem Gerät fest verbunden ist). Die Geräte, die ausgewertet werden sollen, sind ebenfalls Mega2560. Deswegen Großprojekt, denn das wird schön teuer^^. (Grob veranschlagt sind für das komplette Projekt etwa 3000 € mit 35 dieser Abgezweigten Geräten.


Wie läuft die Kommunikation genau ab zwischen dem Master und den ganzen Slave. Die müssen ja irgendetwas mit Daten versorgen.

Mögliche wäre da zB.
Code: [Select]

Master fordert Temp1 von Slave01
Slave01 sendet Temp1  an Master
Master erhält Temp1 von Slave01 => +1 Teilnehmer


Du musst die Slaves schon einzeln ansprechen, bzw. mit einer Codierung ansprechen, ansonsten würden sich alle zurückmelden, und das sollte mit der Seriellen Schnittstelle NICHT gehen. Denn dann würden alle Slaves gleichzeitig antworten.


Dafür brauch ich die Anzahl der Geräte. Die Widerstandsleiter sind nur am Mastergerät angeschlossen. Über einen Befehl sagt dieses den Slaves, wieviele dieser Geräte vorhanden sind, und dass jedem dieser Geräte eine Nummer zugeschrieben werden muss (von Hand). Diese wird dann gespeichert. Beim nächsten Befehl schleift das Mastergerät dann eine Schleife durch, mit der überprüft werden soll, ob alle Nummern vergeben sind und keine doppelt. Diese Nummern werden dann auch im EPROM (oder wie das heißt) gespeichert, damit diese nach trennen mit dem Strom nicht erneut angegeben werden müssen.
Wenn Daten zwischen den Boards getauscht werden sollen (immer nur zwischen dem Master und einem Slave, nie zwischen zwei Slaves), so schreit der Master erst nach der Nummer des Slaves, der antwortet, danach sagt der Master, was er will, der Slave antwortet wieder und der Master beendet dann die Verbindung.


Der Leitungswiderstand ist doch ein Parameter, einmal berechnet oder gemessen könnte man diesen rechnerisch eliminieren.
Wenn man mit dieser Drahtlänge den Meßwiderstand brückt, und sich die Widerstandsausgabe des Arduino anzeigen lässt hätte man den Fehlerwert der durch den Querstrom entsteht ermittelt.

Zur Widerstandsberechnung : Dies  kann man dann noch von der Betriebspannung des ADC unabhängig machen.
Jurs (wer sonst)  hatte dies mal so hergeleitet:
Quote

VB = Betriebsspannung des Arduino (irgendwo bei ca. 5V)
RV = Vorwiderstand
RN = Widerstand der zu Messen ist
VA = Spannung am Arduino-Messeingang

VA = RN*I
VB = (RV+RN)*I
   
VA/VB= (RN*I)/((RV+RN)*I)  
VA/VB= RN/(RV+RN)          
VA/VB*(RV+RN)= RN          
RV*VA/VB + RN* VA/VB = RN

RV*VA/VB = RN - RN*VA/VB
RV*VA/VB = RN(1-VA/VB)

RN= RV*VA/VB / (1-VA/VB)

Die einzelnen Parameter sind im Code nochmal erklärt.
Die Variable "VA/VB" bezeichnet das Verhältnis aus Spannung am Meßwiderstand geteilt durch die Betriebsspannung.
Praktischerweise ermittelt der Aruino genau dieses Verhältnis in 1024 Schritten,
so daß man an der Stelle einfach den Messwert des Analogpins geteilt durch den Maximalwert 1023.0
(das .0 damit es eine Float-Variable wird) übergeben kann.


So wird es etwas genauer, weil die 5V +- 0.xx  noch rausfallen.
Die Aufgabe verstehe ich so:
Er will quasi die Anzahl der in Reihe geschalteten  120 Ohm Widerstände berechnen.
Dies sollte doch damit möglich sein.


Wenn ich das richtig verstanden hab, ist das aber nur, wenn die Leitungslänge und Leitungswiderstände fest sind, oder?

Da kommt nämlich das nächste Problem: Zwischen dem Master und dem ersten Slave ist eine 50 Meter Leitung, und zwischen den einzelnen Abzweigkasten (zu den Slaves) sind mal 3 bis 4 Meter und mal sind es 20 bis 40 Meter, worauf ich vorher keinen Einfluss hab.


ich stelle mir bei 300m Leitungslänge vor, dass du größere Probleme mit Einstreuungen in die Leitung bekommst. Irgendwo auf dem Weg gibt es bestimmt Störquellen, seinen es Motoren, Leuchtstofflampen oder parallel laufende Netzleitungen.


Und das ist der Grund, warum ich abgeschirme Ölflexkabel verwende, wie sie auch in der Industrie benutzt werden.
Die einzigen Störungsquellen, die aber in der Regel in der Nähe wären, sind in den Hallen Leuchtstoffröhren und innen und außen Handysignale.


Falls ich eine Frage übersehen hab, oder noch eine offen ist, fragt bitte, ich bin über jede Hilfe dankbar.
Funktioniert bei mir was nicht, dann liegt es an dem Teil, den ich sowieso nicht versteh ;)

Go Up