我怎样才能从温度中获得阻力?

How can I get resistance from temperature?

我有一个温度值,我想从这个温度得到一个电阻值。

我使用 Steinhart-Hart method 但这个等式总是 returns 7,39 无论温度和系数如何。

我基于 steinhart 方法(见下文)的第二个实现不适用于负系数。

你知道我的代码有什么问题吗?

double WSensor::temperatureToResistance(double _temp)
{
    double Temp = _temp + 273.15;
    double X = ((this->therm->getA() - (1 / Temp)) / this->therm->getC());
    double Y = this->therm->getB() / this->therm->getC();
    double argExpo = pow(-(X / 2) + pow((X*X) / 4 + (Y*Y*Y) / 27, 1.0 / 2.), 1.0 / 3.0) - pow((-(X / 2) - pow((X*X) / 4 + (Y*Y*Y) / 27, 1.0 / 2.0)) * (-1), 1.0 / 3.0); 

    return exp(argExpo);
}

经过 3 天的工作,我知道为什么这个等式在 arduino 上不起作用:溢出。

等式的某些部分 float 对于这个板模型 (Arduino Uno) 来说太大了。

其中一个解决方案是重新表述等式以防止出现更大的结果。但是这个解决方案需要太多时间并且需要良好的数学技能,这就是为什么我决定将方程式移动到外部API。