Arduino Uno mit Thermistor (TC005-503)

Hallo zusammen, :slight_smile:

ich versuche jetzt seit paar Tagen schon, das Programm zum Laufen zum bringen,
aber ich stehe noch immer vor einem großen Problem & finde keine Lösung bei google.de..
Wo kriege ich die Koeffizienten von meinem Thermistor (TC005-503) raus?
Im Datenblatt stehen die nicht oder?
TC005-503 Datasheet(PDF) - RFE international

Das Programm das ich benutzen will:

#include <math.h>

double Thermister(int RawADC) {
double Temp;
Temp = log(((10240000/RawADC) - 10000));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp ))* Temp );
Temp = Temp - 273.15; // Convert Kelvin to Celcius
Temp = (Temp * 9.0)/ 5.0 + 32.0; // Convert Celcius to Fahrenheit
return Temp;
}

void setup() {
Serial.begin(115200);
}

void loop() {
Serial.println(int(Thermister(analogRead(0)))); // display Fahrenheit
delay(100);
}

Danke schonmal im vorraus!

Schau mal hier Temperature Coefficient of Resistance

Gruß Gerd

Danke, werde ich sofort mal ausprobieren! :wink:
aber brauche doch eig. 3..
a, b & c

brauche weiterhin hilfe!^^

Hallo,
in der Tabelle kann man doch 2 Widerstandswerte bei unterschiedlichen Temperaturen eingeben. Wenn du dann auf alpha (T(final) klickst, bekommst du den TK-Wert.
Wenn du das Java-Script umschreibst, hast du die Formel

<SCRIPT LANGUAGE ="JavaScript">
function rcal(){fh=document.forms[0];def();rr0=fh.r0.value;aalp=fh.alp.value*Math.pow(10,fh.alpp.value);tt0=fh.t0.value;tt=fh.t.value;fh.r.value=rr0*(1-(-1)*aalp*(tt-tt0))}

function r0cal(){fh=document.forms[0];def();rr=fh.r.value;aalp=fh.alp.value*Math.pow(10,fh.alpp.value);tt0=fh.t0.value;tt=fh.t.value;fh.r0.value=rr/(1-(-1)*aalp*(tt-tt0))}

function alpcal(){fh=document.forms[0];def();rr0=fh.r0.value;rr=fh.r.value;tt0=fh.t0.value;tt=fh.t.value;alpc=(rr-rr0)/(rr0*(tt-tt0));fh.alp.value=snb(alpc);fh.alpp.value=snp(alpc)}

function tcal(){fh=document.forms[0];def();rr0=fh.r0.value;rr=fh.r.value;tt0=fh.t0.value;aalp=fh.alp.value*Math.pow(10,fh.alpp.value);fh.t.value=tt0-(-1)*(rr-rr0)/(aalp*rr0)}

function t0cal(){fh=document.forms[0];def();rr0=fh.r0.value;rr=fh.r.value;tt=fh.t.value;aalp=fh.alp.value*Math.pow(10,fh.alpp.value);fh.t0.value=tt-(rr-rr0)/(aalp*rr0)}


<!-- the following routines handle the conversion to and from scientific notation-->
<!-- sn(b,p) converts number with power of 10 to a number-->
function sn(b,p){return b*Math.pow(10,p)}
<!--snp(x) returns the power of 10 for a number-->
function snp(x){return Math.round(Math.log(x)/Math.LN10)}
<!--snb(x) returns the base of number with which to multiply the power of 10-->
function snb(x){return x/Math.pow(10,snp(x))}
<!--svb(b,p) takes input base and power and scales to make base between 1 and 10, returns base-->
function svb(b,p){n=sn(b,p);return snb(n)}
<!--svp(b,p) takes input base and power and scales to make base between 1 and 10, returns power-->
function svp(b,p){n=sn(b,p);return snp(n)}

<!--display(x) checks to see if a number is too small or too large to fit in a 6-space field, and if so, displays ellipsis ...-->
function display(x){xx=x;if(x<Math.pow(10,-4))xx="...";if(x>.99*Math.pow(10,5))xx="...";return  xx}

<!--default values are set for parameters which have zero values-->
<!--There is value in having an overall default function for a calculation to provide values for all parameter which you dont want to default to zero-->
function def(){fh=document.forms[0];if (fh.r0.value==0)fh.r0.value=100;if (fh.r.value==0)fh.r.value=131.2;if (fh.t0.value==0)fh.t0.value=20;if (fh.t.value==0)fh.t.value=100;if (fh.alp.value==0)fh.alp.value=3.9;if (fh.alpp.value==0)fh.alpp.value=-3}

</script>

Gruß Gerd