Arduino Thermistor --- analog PIN zu Temperatur?

3 Antworten

int Vin= 3.3; //volts input

int sind Ganzzahlen, da gehen keine Kommazahlen... Rechne einfach mit mV, also 3300 oder 5000, dann brauchst Du keine Rücksicht auf ein Komma nehmen.

Vout= (raw * 5)/(1024.0);

Teile durch 1023, Wert0 entspricht ja 0V am AnalgoRead. Die restlichen Werte sind nur 1023, auf die sich die Spannung aufteilt... Und natürlich 3300mV, wenn Du deine Schaltung an 3,3V betreibst...

Welche Werte spuckt Dir dein Analogeingang aus?

RareDevil  21.08.2023, 17:53
 R2 = R_REF / ((Vin / Vout) - 1);

Das kann auch nicht passen... Du willst ja wissen, wie groß dein Wert vom Thermistor ist, dann musst Du das etwas anders rechnen...

R2=R_REF/Vout*(Vin-Vout);
0

Die willst Vout messen, aber errechnest es stattdessen? Wo kommt die 5 her, ich dachte du würdest nach 3.3 V gehen? entspricht die 1024 einer 10 bit ADC Auflösung, oder wo kommt die her? So ja, lassen sich floats oft, beinahe immer vermeiden, wenn du zum Skalieren erst multiplizierst, und danach erst dividierst.

Ohne da jetzt eintauchen zu wollen, würde ich diesen Ansatz wählen:

// Spannung über R, dem 1k-Widerstand verhält sich zu Spannung über beiden

// Widerständen, 3.3V, wie 1k Widerstand zu Summe beider Widerstände:

Ur / Utot = R/Rtot

// also ist, nach Ur aufgelöst:

Ur = R*Utot/Rtot

// und damit Uth, Spannung über dem Thermistors, gleich

Uth = Utot-Ur

zur Kontrolle setze ich für Widerstand des Thermistors die Werte 0, 1000 und unendlich ein:

Rth Ur = R*Utot/Rtot Uth

0 3300/1000 3.3-3.3 -> 0V

1000 3300/2000 3.3-1,65 -> 1.65V

unendlch 3300/unendlich 3.3-0 -> 3.3V

Jetzt statt Volt milliVolt zur Berechnung verwenden, und du brauchst dafür gar keine floats mehr.

Ich hab das hier mal in ein ... "Programm" ... gepackt. Die eigentliche Berechnung findet sich auf der Zeile, die mit ": R1" beginnt. Obendrüber steht, was ich da rechne, und darunter das erzeugt nur die Kontrollausgabe rechts. Das wesentliche dürfte für dich der Rechenweg oben sein, der Rest dient eher zur Bestätigung, dass das auch funktioniert:

Hallo,

aalso..dein NTC sollte bei 25°C 10KOhm haben

datenblatt:

https://www.gotronic.fr/pj2-mf52type-1554.pdf

wieso nutzt du nur einen 1K Widerstand für spannungsteiler? und wieso nur 3,3V?

der arduino hat auch 5V tolerante Pins..also..10Kohm dran und an die 5V.

dann teste mal diesen code hier:

https://www.circuitbasics.com/arduino-thermistor-temperature-sensor-tutorial/

vielleicht kommst du damit weiter.

ich selbst habe eher PT100 oder PT1000 als analoge sensoren da..aber hierzu braucht man eine Wheatstonesche Messbrücke. Ist etwas komplexer als nur einfacher Spannungsteiler.

Woher ich das weiß:Berufserfahrung – Beruflich seit 24 Jahren