Arduino+光敏电阻实现光感应灯

光敏电阻器(photovaristor)又叫光感电阻,是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。光敏电阻器一般用于光的测量、光的控制和光电转换(将光的变化转换为电的变化)。
光敏电阻可广泛应用于各种光控电路,如对灯光的控制、调节等场合,也可用于光控开关。
本次实验我们先进行一个较为简单的光敏电阻的使用实验。光敏电阻既然是可以根据光强改变阻值的元件,自然也需要模拟口读取模拟值了,本实验可以借鉴PWM 接口实验,将电位计换做光敏电阻实现当光强不同时LED 小灯的亮度也会有相应的变化。
下面是所需要的元器件:
光敏电阻*1、红色LED*1、10KΩ直插电阻*1、220Ω直插电阻*1、面包板*1、面包板跳线*1扎。
按照以下原理图连接电路。


连接好就可以编写程序了,本实验程序与PWM 实验程序相类似只是在PWM 值赋值时根据我们现在的电路稍有修改(修改部分见参考源程序)。
参考源程序:

int potpin=0;//定义模拟接口0 连接光敏电阻
int ledpin=11;//定义数字接口11 输出PWM 调节LED 亮度
int val=0;//定义变量val
void setup()
{
pinMode(ledpin,OUTPUT);//定义数字接口11 为输出
Serial.begin(9600);//设置波特率为9600
}
void loop()
{
val=analogRead(potpin);//读取传感器的模拟值并赋值给val
Serial.println(val);//显示val 变量数值
analogWrite(ledpin,val);// 打开LED 并设置亮度(PWM 输出最大值255)
delay(10);//延时0.01 秒
}

这里我们将传感器返回值除以4,原因是模拟输入analogRead()函数的返回值范围是0 到1023,而模拟输出analogWrite()函数的输出值范围是0 到255。下载完程序再试着改变光敏电阻所在的环境的光强度就可以看到我们的小灯有相应的变化了。在日常生活中光敏电阻的应用是很广泛的,用法也是很多,大家可以根据这个实验举一反三,做出更好的互动作品。

坐沙发

发表评论