本帖最后由 AllBlue 于 2013-8-15 20:11 编辑
温度传感器实验
生活中随处可见温度控制的例子,像电冰箱,热水器等等。如果没有温度的控制,那后果不堪设想。今天我们就运用一种温度传感器(LM35)来做一个温度指示灯实验。 实验元件 UNO 实验套装(UNO兼容板一块、USB数据线一根、优质面包板一块、彩色面包板线若干) LED红绿黄 各一枚 LM35温度传感器 一个 电阻220Ω 一枚
LM35是一种得到广泛使用的温度传感器。由于它采用内部补偿,所以输出可以从0℃开始。在常温下,LM35 不需要额外的校准处理即可达到±1/4℃的准确率。实物图如下:
LM35 的规格参数 1、工作电压:直流4~30V; 2、工作电流:小于133μA 3、输出电压:+6V~-1.0V 4、输出阻抗:1mA 负载时0.1Ω; 5、精度:0.5℃精度(在+25℃时); 6、漏泄电流:小于60μA; 7、比例因数:线性+10.0mV/℃; 8、非线性值:±1/4℃; 9、校准方式:直接用摄氏温度校准; 10、额定使用温度范围:-55~+150℃。 11、引脚说明:①电源负GND;②电源正VCC;③信号输出S;(LM35 温度传感器的引脚示意图如下)
LM35 温度传感器的工作原理 LM35 温度传感器的输出电压与摄氏温标呈线性关系,0℃时输出为0V,每升高1℃,输出电压增加10mV,计算公式如下:
下图是电路图(将三色LED 灯正极依次接到D11、D10、D9 接口,负极分别通过一只220 欧姆的电阻接GND,再将LM35 接上正负极,输出脚接模拟口5):
实验例程: - /*
- LM35温度控制
- 温度大于25度,红灯亮,温度在18度到25度之间,绿灯亮,小于18度,黄灯亮
- */
- #define LED_R 11 //定义三色灯引脚
- #define LED_G 9
- #define LED_Y 10
- int val; //定义变量val储存模拟口5返回值
- void setup(){
- pinMode(LED_R,OUTPUT); //定义三个LED灯引脚为输出
- pinMode(LED_G,OUTPUT);
- pinMode(LED_Y,OUTPUT);
- }
- void loop(){
- val = analogRead(5); //读取模拟口5的值
- if(val >= 51) //温度大于25度,点亮红灯
- {
- digitalWrite(LED_R, HIGH);
- digitalWrite(LED_G, LOW);
- digitalWrite(LED_Y, LOW);
- }
- else if(val>37 && val<51) //温度小于25度大于18度,点亮绿灯
- {
- digitalWrite(LED_R, LOW);
- digitalWrite(LED_G,HIGH);
- digitalWrite(LED_Y, LOW);
- }
- else //温度小于18度,点亮黄灯
- {
- digitalWrite(LED_R, LOW);
- digitalWrite(LED_G, LOW);
- digitalWrite(LED_Y,HIGH);
- }
- }
复制代码我们要用红绿黄三色灯来做温度的提示,红色代表温度过高,设定温度为大于等于25℃ ; 绿色为适宜温度, 设定温度范围为18℃~25℃;黄色为温度过低,设定温度为小于等于18℃。 根据LM35 温度传感器的工作原理,我们要读取模拟5 口的电压值,0V~5V 对应数值0~1023,我们可以简单换算一下,当温度18℃,对应数值约为37;当温度25℃时,对应数值大约为51。 将程序烧写到UNO控制板中,看下你所在环境是否适合吧!!!你还可以用串口监视器来看下你所在环境的温度数值!! |