AD数值转换为温度

用NTC转换的AD数值转换为温度计算过程:

1、根据测温电路计算出当前温度对应的电阻值R1;
2、接着利用查表法查找电阻值R1对应的温度。

根据测温电路计算出当前温度对应的电阻值R1的过程如下:

  1. 根据电路图可知温度传感器R1的电压:
    UR2 = VCC * R2 / (R2 + R1)                 公式(1)
    其中:VCC为参考电压

    根据AD与电压转换的关系:
    UR2 = AD* VCC / AD转换位数存储最大值           公式(2)
    假设AD转换位数为8位:则 AD最大值为2的8次方 为255

    根据公式(1)和公式(2)两式有: VCC * R2 / (R2 + R1) = AD* VCC / 255
    化简有: 51/(51+R1) = AD/255
         AD(51+R1) = 51* 255
          R1=51* 255/AD -51
          R1=51* ( 255-AD)/AD               公式(3)
    即通过AD值计算出 R1电阻值.

  2. 利用查表法查找电阻值R1对应的温度。
    在这里插入图片描述

  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
热敏电阻传感器的温度传感原理是通过测量电阻的变化来推算温度。因此,需要将热敏电阻传感器获取的AD转换为电阻,再根据电阻温度之间的关系进行转换。 以下是一个简单的Arduino示例代码,假设你使用的热敏电阻传感器的B为3950: ```C++ const int THERMISTOR_PIN = A0; // 热敏电阻传感器连接的模拟输入引脚 const float B_VALUE = 3950; // 热敏电阻传感器的B const float ROOM_TEMP = 25; // 室温(摄氏度) const float R0 = 10000; // 热敏电阻在室温下的电阻(欧姆) // 计算温度的函数 float calculateTemperature(int rawValue) { float R = 1023.0 / rawValue - 1.0; R = R0 * R; float temperature = 1.0 / (log(R / R0) / B_VALUE + 1 / (ROOM_TEMP + 273.15)) - 273.15; return temperature; } void setup() { Serial.begin(9600); } void loop() { int rawValue = analogRead(THERMISTOR_PIN); float temperature = calculateTemperature(rawValue); Serial.print("AD:"); Serial.print(rawValue); Serial.print(", 温度:"); Serial.print(temperature); Serial.println("℃"); delay(1000); } ``` 该代码使用analogRead()函数读取模拟输入引脚上的AD,并使用calculateTemperature()函数将其转换温度。calculateTemperature()函数的实现过程如下: 1. 将AD转换为热敏电阻的电阻,通过公式 R = R0 * (1023/Raw - 1) 计算。 2. 将热敏电阻的电阻带入公式 1/T = 1/T0 + 1/B * ln(R/R0),其中T0为室温(25℃),B为热敏电阻传感器的B,求解温度。 该代码的输出结果为:AD:xxx, 温度:xx.xx℃。其中,xxx为热敏电阻传感器获取的AD,xx.xx为计算得到的温度

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值