光敏电阻制作光控LED灯案例

LEDs

378人已加入

描述

1.光敏电阻的基本原理

光敏电阻也是电阻中的一种,其阻值随光强度的变化而变化。光敏电阻一般由硫化镉、硒化镉、硫化铝等半导体材料制成,这些材料在特定波长的光照射下,载流子在电场的作用下漂移运动,其阻值迅速下降。

 

光敏电阻的阻值随光强度的增加而减小,光敏电阻在黑暗的环境下其阻值一般几十K以上,甚至高达1MΩ到10MΩ。如下图为光敏电阻实测结果,在光线较充足的环境下其阻值3.049K,在较暗的环境下测量,其阻值为74.9K。

 

2、光敏电阻控制LED的原理

光敏电阻采样的原理较简单,光敏电阻直接串联一个高精度的基准电阻1KΩ,再接5V电源即可,中间输出接入单片机ADC采样接口进行电压采样。

光敏电阻

通过单片机IO口控制LED灯亮灭,实现白天光线较亮时,LED灯不亮;晚上光线较暗时,LED灯点亮。

光敏电阻

其原理为,光线变化会影响光敏电阻阻值改变,从而导致ADC接口采集到的电压变化,单片机通过采集到的电压数字量进行判断是白天还是黑夜,当黑夜时,控制IO口输出高电平点亮LED灯;当白天时,IO口输出低电平,LED灯不亮。

 

A0引脚是ADC引脚(模拟输入引脚),Arduino有6个模拟输入引脚A0A5,对于输入引脚的参考电压为05V,库函数为analogRead(),读取返回值,范围为0~1023,线性关系,输入0V时返回值为数字0,输入5V时,返回值为1023,比如光敏电阻为4K时,ADC接口的电压为4V,对应的数字量为4/5×1023=818,因此,analogRead()返回818,利用该值控制LED灯亮灭。

示例程序如下:

int led_0 = 13;

int lightSensor_0 = A0;

void setup() {

pinMode(led_0, OUTPUT);

pinMode(lightSensor_0, INPUT);

}

void loop() {

if(analogRead()>818)

digitalWrite(led_0,HIGH);

else

digitalWrite(led_0,LOW);

}

当采集到的数字量大于818时,即光敏电阻的阻值大于818时,认为光线较暗,LED的IO口输出高电平,点亮LED灯;否则,认为光线较强,LED的IO口输出低电平,LED灯熄灭。

 






审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分