例程11 感热灯
1. 准备
完成以上的各种实验后,我们对Arduino 的应用也应该有一些认识和了解了,在基本的数字量输入输出和模拟量输入以及PWM 的产生都掌握以后,我们就可以开始进行一些传感器的应用了。
热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)。热敏电阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。下面是所需要的元器件:
负温度系数热敏电阻*1
直插LED*1
10KΩ直插电阻*1
220Ω直插电阻*1
面包板*1
面包板跳线*1 扎
热敏电阻既然是可以根据温度改变阻值的元件,自然也需要模拟口读取模拟值了。本实验可以借鉴例程9-PWM 调控灯光亮度实验,将可调电阻换做热敏电阻实现。当温度不同时LED 小灯的亮度也会有相应的变化。
按照右图链接好电路后,就可以开始编写程序了。
2. 代码
int potpin=0;//设置模拟端口A0
int ledpin=11;//设置数字端口11 ,后面用作PWM输出
int val=0;//声明变量val
void setup()
{
pinMode(ledpin,OUTPUT);//设置数字11为输出模式
Serial.begin(9600);//设定波特率为9600
}
void loop()
{
val=analogRead(potpin);//读取A0的模拟电压值,并赋值到val 10 位 2^10=1024 0-1023
val = 255- val/2; //常温下测量是 650-0 PWM 0-255 降低到490左右
if(val < 0)
val = 0;
Serial.println(val);
analogWrite(ledpin,val);// PWM输出驱动LED PWM 0-255
delay(100);//延时100ms
}