用arduino和热敏电阻做电子体温计

由于需要做一个睡眠质量监测的小东西(体温+三轴),所以需要测量体温,然而把电路搭好之后才发现 ds18b20根本就不能测体温。。也是醉。。而且普通的热敏电阻也干不了这活。

因此又买了 专门测体温的热敏电阻,某宝上有,型号是 MEB-503E-3950

具体参数的解释可以参考这篇文章:
http://blog.sina.com.cn/s/blog_6182b82201012ii1.html

热敏电阻计算公式 Rt = R *EXP(B*(1/T1-1/T2)) 对上式解释如下: 
(具体可以参考百度,很多的)

1.        Rt 是热敏电阻在T1温度下的阻值; 

2.        R是热敏电阻在T2常温下的标称阻值; 

3.        B值是热敏电阻的重要参数; 

4.        EXP是e的n次方; 

5.        这里T1和T2指的是K度即开尔文温度,K度=273.15(绝对温度)+摄氏度; 


例如我手头有一个 MF58502F327型号的热敏电阻 

MF58—— 型号玻璃封装 

502 —— 常温25度的标称阻值为5K 

F —— 允许偏差为±1% 

327 —— B值为3270K的NTC热敏电阻 


而我买的型号是MEB-503E-3950因此它的

常温下阻值R1=50*10^3=50k欧;

常温T12=273.15+25=298.15;

参数B=3950;

       这时候代入T1温度就可以求出相应温度下热敏电阻的阻值,注意温度单位的转换,摄氏度与开尔文。

 

至于热敏电阻的用法,其实就是 串联一个阻值和它差不多(最好)的电阻,从而通过 分压比确定热敏电阻的阻值,从而确定测量温度(详情可百度,很多的),下面只给出电路和代码:

我是用的 arduino UNO的开发板,电路接法如下:

代码如下:
/*
 * 热敏电阻的型号是MEB-503E-3950
 * 常温25摄氏度(298.15K)下阻值为50k欧
*/
#include<math.h>

const float voltagePower=3.3;
const float Rs=21.5;//采样电阻为21.5千欧
const int B=3950;
const double T1=273.15+25;//常温
const double R1=50;//常温对应的阻值,注意单位是千欧


void setup() {
  Serial.begin(9600);
}

void loop() {
  
  //获得A1处的电压值
  double digitalValue=analogRead(1);
  double voltageValue=(digitalValue/1023)*5;
  Serial.print("Current voltage value=");
  Serial.println(voltageValue);
  
  //通过分压比获得热敏电阻的阻值
  double Rt=((voltagePower-voltageValue)*Rs)/voltageValue;
  Serial.print("Current registor value=");
  Serial.println(Rt);

  //换算得到温度值
  Serial.print("Current temperature value=");
  Serial.println(((T1*B)/(B+T1*log(Rt/R1)))-273.15);//
  Serial.println();
  
  //每3秒输出,更改此处修改频率
  delay(3000);
  
}


可看到输出如下


注:如果需要 精确的测量,还要 考虑购买的热敏电阻档位以及误差率等等(数据手册),本人只是简单做个原型,所以参考的童鞋注意啦

热敏电阻是简单,廉价且精确的组件,可轻松获取项目的温度数据。 热敏电阻是可变电阻,其电阻会随温度变化。根据其电阻对温度变化的响应方式对其进行分类。在负温度系数(NTC)热敏电阻中,电阻随温度的升高而减小。在正温度系数(PTC)热敏电阻中,电阻随温度的升高而增加。 NTC热敏电阻是最常见的,这就是我们将在本教程中使用的类型。NTC热敏电阻由半导体材料(例如金属氧化物或陶瓷)制成,该材料经过加热和压缩以形成对温度敏感的导电材料。 导电材料包含允许电流流过的电荷载流子。高温导致半导体材料释放更多的电荷载流子。在由氧化铁制成的NTC热敏电阻中,电子是电荷载流子。在氧化镍NTC热敏电阻中,载流子是电子空穴。 让我们构建一个基本的热敏电阻电路以了解其工作原理,以便稍后将其应用于其他项目。 由于热敏电阻是可变电阻,因此在计算温度之前,需要测量电阻。但是,Arduino无法直接测量电阻,只能测量电压。 Arduino将在热敏电阻和已知电阻之间的一点上测量电压。这被称为分压器。 热敏电阻的制造商可能会告诉您它的电阻,但是如果不是,则可以使用万用表进行查找。如果您没有万用表,可以按照我们的Arduino欧姆表教程,用Arduino制作欧姆表。您只需要知道热敏电阻的大小即可。例如,如果您的热敏电阻电阻为34,000 Ohms,则其为10K热敏电阻。如果是340,000欧姆,则为100K热敏电阻
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值