Widerstandsmessung mit Arduino
Ich habe nun ein Material für mein Projekt mit der Lagebestimmung über den elektrischen Widerstand einer leitenden Bahn gefunden.
Versuche nun das Ganze über Arduino zu messen, habe mir zu diesem Zweck einen der üblichen Sketches zur Widerstandsmessung über Referenzwiderstände kopiert.
Hier der Code:
Code:
const int sensorPin = A0; // Analog input pin that senses Vout
int sensorValue = 0; // sensorPin default value
float Vin = 5; // Input voltage
float Vout = 0; // Vout default value
float Rref = 1000; // Reference resistor's value in ohms (you can give this value in kiloohms or megaohms - the resistance of the tested resistor will be given in the same units)
float R = 0; // Tested resistors default value
void setup ()
{
Serial.begin(9600); // Initialize serial communications at 9600 bps
}
void loop ()
{
sensorValue = analogRead(sensorPin); // Read Vout on analog input pin A0 (Arduino can sense from 0-1023, 1023 is 5V)
Vout = (Vin * sensorValue) / 1023; // Convert Vout to volts
R = Rref * (1 / ((Vin / Vout) - 1)); // Formula to calculate tested resistor's value
Serial.print("R: ");
Serial.println(R); // Give calculated resistance in Serial Monitor
delay(100); // Delay in milliseconds between reeds
}
Der Refernzwiderstand ist 1MegaOhm, da 1K zu schnell zu heiß werden, irgendwie.
Nun schließe ich das Ganze an und fahre die Bahn ab, bleibe dabei auf einem Punkt stehen und sehe auf dem Seriellen Monitor dass kurz zwei Werte zu sehen sind welche dann wieder verschwinden, das passiert einige Male. Ich öffne dann den Seriellen Plotter und sehe dass sich dies in gleichen Zeitabständen wiederholt, die Werte ändern sich dabei nicht.
Wieso kann ich nicht durchgehend den Widerstand auslesen?
Was habe ich hier übersehen?
Liste der Anhänge anzeigen (Anzahl: 1)
Also die Schaltung sueht so aus wie auf dieser Seite hier:
http://electronfun.com/project_4.php
Nur der eine Testwiderstand ist durch die Bahn ersetzt worden. Es handelt sich dabei um eine Leitende Bahn mit hohem Widerstand die ich mit einem Kontakt abfahren kann.
Ich habe auch, wie empfohlen, den Code geändert. Es kommt nur einmal "Start" am Anfang, dann nur die Messwerte.
So sieht das dann im Plotter aus wenn ich mich an einem Punkt der Bahn aufhalte.
Anhang 33099
Die Abstände sind recht regelmäßig, keine Ahnung wieso das nicht konstant angezeigt wird, es ist auch nicht bei 100ms die ich als Messintervale angegeben habe.
Liste der Anhänge anzeigen (Anzahl: 1)
Nun habe ich das Ding mit Widerständen aufgebaut und es sieht nun wieder so aus:
Anhang 33136
Sollte das nicht bei einer Messung auf dem selben Wert bleiben, schon weil es ein einfacher Widerstand ist?
Das Ganze sieht ziemlich ungenau aus.