本帖最后由 cady 于 2014-1-8 13:58 编辑
我想大家都很熟悉温度传感器,我现在用LM35温度传感器在pcDuino上做个小实验。根据温度的变化不同的灯进行报警。 一、准备实验的器件
1、pcDuino实验套件一套;
2、LM35 温度传感器一个;
3、LED灯: 三色各一个;
4、电阻220ohm三个;
5、面包板一个;
6、杜邦线若干。
二、将所有器件在面包板和pcDuino上连接:
1.LED灯二个脚长正短负,三个LED灯正极根据面包板原理由杜邦线引出分别连接pcDuino的9,10,11接口(9、10、11接口根据代码定义连接),三个LED灯负极根据面包板原理连到一起然后由一根线引出连接到GND接口; 2.电阻随便连到LED灯正极还是负极都可以; 3.LM35 温度传感器三个脚我们可以 根据原理图可以 看出,三个脚的意义,利用杜邦线一个分别连接pcDuino 正极 3.3v、模拟输出接口A5、GND接口;完成好的连接图:
三、将pcDuino与鼠标键盘显示器连接好线路后,打开Arduino-IDE,输入以下程序 iint led_green=9; int led_blue=10; int led_red=11; nt sensorPin =A5; void setup()
{
int j;
for(j=9;j<=11;j++)
{
pinMode(j,OUTPUT);
}
}
void loop()
{
int sensorValue;
while(1)
{
sensorValue=analogRead(sensorPin);
printf("sensorValue=%d\n", sensorValue);
if(sensorValue > 600 && sensorValue < 1000)
{
digitalWrite(led_green,HIGH);
digitalWrite(led_blue,LOW);
digitalWrite(led_red,LOW);
}
else if(sensorValue >= 1000 && sensorValue <= 1200)
{
digitalWrite(led_blue,HIGH);
digitalWrite(led_green,LOW);
digitalWrite(led_red,LOW);
}
else
{
digitalWrite(led_red,HIGH);
digitalWrite(led_blue,LOW);
digitalWrite(led_green,LOW);
}
}
} 四、实验效果图 从效果图中我们可以看到,当sensorValue值在不同区间时,会亮起不同颜色的LED灯。
效果一:在常温情况下就是sensorValue值在600-1000之间时,绿灯亮;
效果二:当把你的手放在温度传感器上sensorValue值在1000-1200之间时,蓝灯就会亮;
效果三:当你用打火器加热温度传感器这时sensorValue值在1200以上时,红灯就会亮;
这样我们的实验就算完成了。
实验的原理就是:pcDuino的 ADC2 到 ADC5模拟口读出的电压值使用 0-4095 来表示, 即0V对应数值0, 3.3v 对应数值 4095, 其他电压值通过简单换算可得出。 从LM35温度传感器的工作原理可知,温度每升高 1度,V口输出的电压就增加10mV。根据这一原理,如果电压值在 0.2v 0 0.3V (温度为 20度到 30度), ADC读数为 248 到372,这个时候绿灯亮, 表示这个环境温度是可以接受的温度,很舒适; 如果电压在 0.3V – 0.4v (温度为 30度到 40度), ADC读数为 372到 496, 表示这个环境温度太高,不舒适; 如果电压值是 低于 20度或者高于 40度, 表示不正常温度, 极不舒适, 红灯来警告。 原理很简单,做出来也非常有成就感,希望大家都能动手!{:soso_e113:}
|