天天看点

《Microduino实战》——3.7 光敏电阻

本节书摘来自华章出版社《microduino实战》一 书中的第3章,第3.7节,作者:姚琪 杨立斌,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

前面的实践都是在对数字i/o的操作以及pwm输出,本节会通过一个光敏电阻的练习来学习模拟输入。

我们所使用的微控制器是数字芯片,其数字i/o口只能有两种状态:高电平或低电平,出现中间状态芯片是不识别或无法输出的。其中pwm输出,尽管在程序中用analogwrite()这样的函数,但实际上也还是一种数字的输出。

这里要使用的i/o模拟输入功能,其实是通过adc的电路,将环境中获取的模拟量(连续值),通常是电压值转化成一个数字量,该数值与电压值成正比例关系。

基本原理

光敏电阻是一种将光信号转换成电信号的半导体元器件,如图3-29所示。在没有光线的情况下,电阻值很高,而当受到光照时,电阻值会下降。光照愈强,阻值愈低。光敏电阻跟普通电阻一样,没有极性,交流或直流都能使用。

在晚上没有光线时,光敏电阻的阻值在几兆欧左右,而在白天强光照射的情况下,其电阻值下降至几百欧到几千欧。如图3-30所示,光线越强,光敏电阻和固定电阻总的电阻越小,电流增大,使得定值电阻两端电压增大,而光敏电阻两端电压减小。可见光敏电阻两端的电压可以直接反映光线强度,即两端电压越高,光线越弱。所以我们可以认为,如果测到的电压高于某个值,就说明天黑了;而低于某个值,说明天亮了。通过这样的方式来模拟一个自动的路灯。

具体步骤

硬件清单

硬 件 名 称 数  量 功  能

microduino-core 1 核心控制板

microduino-usbttl 1 下载程序,串口通信

usb数据线 1 连接计算机和usb串口设备

光敏电阻 1 感应光的强度

220Ω的电阻 2 限流,保护led

led 1 发光二极管

面包板 1 万能连接板

导线 若干 连接电子元器件

根据上面提供的硬件清单准备好多种元器件,然后根据连接示意图搭建电路,如

图3-31所示。

《Microduino实战》——3.7 光敏电阻

程序清单

程序中用于判断的参考值是一个经验值,可以根据实际情况在程序中修改该参考值。当然,另一种可选的方案是,将外部的固定电阻换成一个100kΩ的可调电阻,同样可以用来调节开关灯的阈值。

将程序清单中的源代码输入arduino ide中,并编译下载到控制板芯片中。

观察现象

当用灯照着光敏电阻时,即模拟白天时,led是熄灭的;而当用遮盖物罩住光敏电阻时,即模拟晚上,led是点亮的。