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

时间:2015-08-28 21:25:35

标签: c++ arduino arduino-uno

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

我使用Steinhart-Hart method但是无论温度和系数如何,这个等式总是返回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);
}

1 个答案:

答案 0 :(得分:1)

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

等式的某些部分为此电路板模型(Arduino Uno)创建float太大。

其中一个解决方案是重新定义等式以防止更大的结果。但是这个解决方案需要花费太多时间并且需要良好的数学技能,这就是我决定在外部API中移动方程式的原因。