Ich versuche, die Steinhart-Hart-Temperaturberechnung auf einem Arduino zu tun. Die Gleichung ist Bessere Präzision mit Arduino (Schwimmer)
ich ein System von 3 Gleichungen gelöst, um die Werte von A, B und C zu erhalten, die ist:
A = 0.0164872
B = -0.00158538
C = 3.3813e-6
Als ich stecke diese in Wolfram zu lösen für T
I einen Wert zu erhalten in Grad Kelvin, das macht Sinn:
T=1/(0.0164872-0.00158538*log2(10000)+3.3813E-6*(log2(10000))^3) solve for T
T = 298.145 Kelvins = 77 Fahrenheit
Wenn ich jedoch versuche, diese Gleichung auf meinem Arduino zu verwenden, bekomme ich eine sehr falsche Antwort, ich vermute, weil Doppelgänger nicht genug Präzision haben. Hier ist, was ich verwende:
double temp = (1/(A + B*log(R_therm) + C*pow(log(R_therm),3)));
Das gibt 222 Kelvin statt, die Art und Weise ausgeschaltet ist.
Also, wie kann ich eine Berechnung wie diese in Arduino ?? Jeder Rat wird sehr geschätzt, danke.
'log2' bezeichnet den Basis-2-Logarithmus und' log' den "natürlichen" oder Basis-E-Logarithmus. Das könnte schon den Unterschied erklären. –
Auch 'C = 000003.3813' und' 3.3813E-6' sind nicht die gleiche Nummer. –
Ja, hier bezieht sich "ln" wahrscheinlich auf den neperischen Logarithmus, der "ln (x) = log2 (x)/log2 (exp (1))" – MayeulC