例程11 感热灯

1. 准备

完成以上的各种实验后,我们对Arduino 的应用也应该有一些认识和了解了,在基本的数字量输入输出和模拟量输入以及PWM 的产生都掌握以后,我们就可以开始进行一些传感器的应用了。

热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)。热敏电阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。下面是所需要的元器件:

负温度系数热敏电阻*1 

直插LED*1 

10KΩ直插电阻*1

220Ω直插电阻*1

面包板*1

面包板跳线*1 扎

热敏电阻既然是可以根据温度改变阻值的元件,自然也需要模拟口读取模拟值了。本实验可以借鉴例程9-PWM 调控灯光亮度实验,将可调电阻换做热敏电阻实现。当温度不同时LED 小灯的亮度也会有相应的变化。

例程11 感热灯

按照右图链接好电路后,就可以开始编写程序了。

例程11 感热灯

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
}