Ich bräuchte Hilfe bei der Programmierung von meinem Arduino. In meinem Projekt geht es darum einen Widerstandssensor zu messen und dann im Serial Monitor anzeigen zu lassen. Doch mir ist aufgefallen das ich teilweise viel zu hohe und zu niedrige Werte erhalte und manchmal dann wieder den richtigen Wert (Ich brauche nur den Widerstandswert und habe zuerst mit normalen Widerständen z.B. 1k Ohm probiert wo dann die Werte 1008 Ohm oder 994 Ohm herauskamen) Deswegen habe ich mir gedacht das ich einen Mittelwert von den Werten nehmen könnte um ungefähr die richtigen zu erhalten. Doch ich verstehe nicht wie man einen solchen macht. Im Internet hab ich zwar ein paar Beispiele gefunden aber ich verstehe nicht wie ich diese in meinen Code integrieren kann.
Den Code den ich gerade verwende habe ich im Internet gefunden:
[Arduino Widerstand messen – ein Arduino Ohmmeter - Hikro Technikblog]
(R1 wäre jetzt ein PT1000 Temperatursensor)
void setup() {
Serial.begin(9600); //Beginn einer Seriellen Übertragung
}
void loop() {
double spannung0 = 4.79; //Spannung an der Messstrecke
int widerstand2 = 4700; //Widerstand in Ohm des Messwiederstands
int drahtwiderstand = 0; //Optional
int messwert = analogRead(A0); //Auslesen des aktuellen Wertes am Analog In
double spannung1 = messwert/1024.0 * spannung0; // der Bruch messwert/1024 entspricht dem Anteil der am Messwiederstand anliegenden Spannung zur Gesamtspannung.
double spannung2 = spannung0- spannung2; // Berechnung der Spannung am Widerstand R2
int widerstand1 = widerstand2 * (spannung1/spannung2) ; //Berechnung des Widerstands R1
//Ausgabe des gemessenen Wertes
Serial.print("Der gemessene Widerstand betraegt: ");
Serial.print(widerstand1);
Serial.println(" Ohm");
delay(1000);
Wenn Du in den Voreinstellungen der IDE alle Warnungen einschaltest, erhälst Du:
warning: 'spannung2' is used uninitialized in this function [-Wuninitialized]
double spannung2 = spannung0 - spannung2; // Berechnung der Spannung am Widerstand R2
^~~~~~~~~
Einen Mittelwert bildet man durch Aufsummieren der Einzelwerte und Division durch die Anzahl der Einzelwerte.
Der PT1000 ändert den Widerstand sehr grob um ca 4Ohm also 0,4% pro °C.
Bei einem Spannungsteiler mit einem PT1000 und einem 1kOhm-Widerstand (nehme mal an der währe mit 0% Tolleranz und temperaturstabil ).
Versorgungsspannung 5,000V
Bei 0°C hat der PT1000 1000,00 Ohm Ausgangspannung 2,500V
bei 1°C hat der PT1000 1003,91 Ohm Ausgangsspannung 2,5049V delta = 0,0049V
Das ist 1 ADC bei 10 Bit Auflösung. Dadurch kannst Du nur ca 1°C auflösen.
Die Frage ist ja eher, in welchem Bereich gemessen werden soll.
Wenn ich nur von 0-50°C eine Änderung erwarte, dann bin ich bei einem R von 1000 bis 1194 Ohm.
Messwandler ran und ich löse 50K in 1024 Werte auf
Wenn ich das Ausgangsposting lese, werd ich auch nicht schlau draus, warum ich einen PT-Sensor nochmal ausmesse....