用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的开发板,电路接法如下:
用arduino和热敏电阻做电子体温计_第1张图片
代码如下:
/*
 * 热敏电阻的型号是MEB-503E-3950
 * 常温25摄氏度(298.15K)下阻值为50k欧
*/
#include

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);
  
}


可看到输出如下
用arduino和热敏电阻做电子体温计_第2张图片

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

你可能感兴趣的:(arduino,电子元器件)