Я пытаюсь сделать расчет температуры Steinhart-Hart на Arduino. Уравнение Лучшая точность с Arduino (поплавки)
Я решил систему из 3 уравнений для получения значения A, B и C, которые являются:
A = 0.0164872
B = -0.00158538
C = 3.3813e-6
Когда я подключить их в WolframAlpha решить для T
я получаю значение в Кельвинах, что имеет смысл:
T=1/(0.0164872-0.00158538*log2(10000)+3.3813E-6*(log2(10000))^3) solve for T
T = 298.145 Kelvins = 77 Fahrenheit
Однако, когда я пытаюсь использовать это уравнение на моем Arduino, я получаю очень неправильный ответ, я подозреваю, потому что в парном разряде недостаточно точности. Вот что я использую:
double temp = (1/(A + B*log(R_therm) + C*pow(log(R_therm),3)));
Это возвращает 222 Кельвина вместо этого, что далеко.
Итак, как я могу сделать вычисления, подобные этому в Arduino ?? Любые советы очень ценятся, спасибо.
«log2» обозначает базис-2-логарифм и «журнал» «естественный» или базовый-логарифм. Это может уже объяснить разницу. –
Также 'C = 000003.3813' и' 3.3813E-6' не совпадают. –
Да, здесь 'ln', вероятно, ссылается на неперский логарифм, который будет' ln (x) = log2 (x)/log2 (exp (1)) ' – MayeulC