想用单片机测量温度,热电阻温度计算公式为:T1=1/[ln(Rt / R)/B+1/T2],怎样用C语言表示此公式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了想用单片机测量温度,热电阻温度计算公式为:T1=1/[ln(Rt / R)/B+1/T2],怎样用C语言表示此公式?相关的知识,希望对你有一定的参考价值。

参考技术A C语言里面有专门的数学库函数,写的时候带上头文件#include<math.h>
这里选用函数 double log(double x)
返回的是logex的值
写成语句就是
double T1 = 1/((log(Rt/R))/B+1/T2);
当然里面的参数你首先都要进行声明的。追问

为什么是
double log(double x)
而不是
double ln(double x)呢?能用汇编写此函数吗代码?PLC用!

追答

double log(double x)//C语言中求自然对数的函数

你在仔细看一下,在C语言中它的底数是e,这里要小心;
C语言中没有ln这种形式的自然对数,
假如求一般的对数是用换底公式进行的,
例如求loga(x) = lnx/lna,
写成C语言的形式就是
double t;//这里用t代指loga(x)
double t = log(x)/log(a);//运用换底公式求一般的对数
抱歉,汇编不是太熟,只是简单的学习了一下51单片机的汇编,帮不了你了。你可以查查
相应的技术手册,或者到电子论坛问问。PLC以前学习过松下的,都是在用梯形图进行编程。

本回答被提问者采纳
参考技术B 你要算热敏电阻吧,先确定热敏电阻的B值,再看你AD的结果是代表Rt还是代表Rt/R,这个跟电路有关。数学计算ln用C语言的log函数,在<math.h>文件里有定义声明,剩下的都是简单的加减乘除,直接套上就行,注意都用浮点数,不要用整数。 参考技术C double temp=log((Rt/R)/B)+1/T2;
T1=1/temp;
上式中的log()函数为"math.h" 中声明的函数。
另外我觉得你的公式有点歧义 ln(Rt/R)/B 我不知道是指 ln((Rt/R)/B) 还是 (ln(Rt/R))/B 你可以根据真实的意思改上面的语句。追问

是 (ln(Rt/R))/B

温度传感器的AD值,电压和电阻的计算方法

V是输入的电压,VCC是标准电压,R为固定电阻,NTC为热敏电阻。
计算公式是V=(NTC/(NTC+R))*VCC
电压或电阻转化AD的计算方式为
AD=(V/VCC)*2^n=(NTC/(NTC+R))*2^n

以上是关于想用单片机测量温度,热电阻温度计算公式为:T1=1/[ln(Rt / R)/B+1/T2],怎样用C语言表示此公式?的主要内容,如果未能解决你的问题,请参考以下文章

单片机 热敏电阻测温

请教下高手用单片机的AD+NTC热敏电阻做温度计,能不能用单片机计算出取样到的温度值来显示

热敏电阻是二次函数吗,如果不是用啥公式计算?一定要公式

NTC热敏电阻温度测量

NTC 热敏电阻温度计算公式

单片机 热敏电阻怎么检测他的温度的