【中学生创客.Arduino】第6课 光控LED
既然Arduino能够输出模拟的电压,那么Arduino能不能感知到外界模拟的信号呢,如声音、光线等信息?这些就需要用到我们的传感器了。这节课我们就来学习利用传感器感知外界的信息来控制LED
【任务导航】
1.认识传感器;
2.能够正确连接传感器,并利用传感器信息进行相应的控制;
3.掌握串口监视器的使用。
【材料阅读】
1.传感器
传感器是一种物理装置或生物器官,能够探测、感受外界的信号、物理条件(如光、热、湿度)或化学组成(如烟雾),并将探知的信息传递给其他装置或器官。传感器一般由敏感元件、转换器件 和转换电路三个部分组成,通过敏感元件获取外界信息并转换成电信号输出,然后由控制器进行分析处理,如图1.6.1所示。
图 1.6.1 传感器结构
可以从不同的维度对传感器进行分类,这里我们只介绍以其输出信号为标准对传感器进行分类,可以分为:
模拟传感器——将被测量的非电学量转换成模拟电信号,如声音传感器、光线传感器等。
数字传感器——将被测量的非电学量转换成数字输出信号(包括直接和间接转换),如寻线传感器、防跌落传感器等。
开关传感器——当一个被测量的信号达到某个特定的阈值时,传感器相应地输出一个设定的低电平或高电平信号,如按钮。
其中开关传感器以及数字传感器统称为数字传感器。
2.光线传感器
光线传感器也称环境光线传感器,本书使用的光线传感器是由DFRobot出品的模拟环境光线传感器,如图1.6.2所示。该传感器模块可以用来对环境光线的强度进行检测,通常用来制作随光线强度变化产生特殊效果的互动作品。
图1.6.2 光线传感器
光线传感器是一种模拟传感器,它要接到Arduino Romeo控制板的模拟口上,值范围为0~1023,光线强弱的不同会输出不同的值,光线越强数值越大,光线越暗数值越小。光线传感器在接线时,也是黑线接GND,红线接5V,第三根线接模拟针脚。光线传感器与Arduino Romeo控制器的连接示意图,如图1.6.3所示。
图1.6.3 光线传感器与Arduino的连接
3.串口监视器
光线传感器可以检测当前环境的光线值,那光线值到底是多少呢?这就需要用到串口监视器了。ArduBlock开发环境下的(串口监视器)用来监控串口的通讯状况。单击串口监视器按钮后将出现类似于如图1.6.4所示的窗口。 串口监视器可以显示从Arduino Romeo 控制器发来的数据,比如光线传感器、声音传感器的值等。Serial Monitor(串口监视器)是非常有用的工具,特别是在调试程序时。
图1.6.4 串口监视器
串口输出要用到,具体使用方法如图1.6.5所示:
图1.6.5 串口输出针脚值
这里要提醒大家的是其中的【message】模块可有可无,而且【message】模块里面的message可以改为其它的字符串;如果我们要输出的模拟传感器的值,我们要选择【和模拟量结合】模块,如果是数字传感器或者LED发光模块的值,我们要选择【和数字量结合】模块,其中数字针脚或者模拟针脚换成我们传感器或者LED发光模块的阵脚值。
【动手操作】
主题一:读取光线传感器的值
1.硬件搭建
光线传感器模块要接到Arduino控制器模拟口上。
器材:Arduino Romeo控制器、USB线、光线传感器。
2.参考程序
图1.6.6 串口输出光线传感器的值
主题二:制作光控LED
1.作品描述
如果光线暗,LED点亮,否则LED熄灭。
2.硬件搭建
光线传感器模块要接到Arduino控制器模拟口上,LED发光模块接到Arduino控制器的数字针脚上。
器材:Arduino Romeo控制器、USB线、光线传感器以及LED发光模块。
3.参考程序
提示:程序中30是光线暗的时候传感器的值。
图1.6.7 光控LED
【探究思考】
利用光线传感器还可以实现那些效果的LED?光线传感器还可以控制那些东西?能不能制作其他效果的LED?
【视野拓展】
映射
ArduBlock编程环境中有一个【映射】模块,该模块可以将一定范围内的一个值转化为另一个范围内的值。下面简单介绍一下该模块的使用。
下面给大家举个简单的例子,比如说0~100之间的20可以转化为0~10之间的2。
这节课我们实现了光控LED,即光线暗LED亮,光线强LED灭;我们也知道了光线传感器的值为0~1023,而LED的亮度为0~255,那么能否根据光线光线的强弱控制LED的亮度呢?【利用映射实现】
【挑战自我】
我们已经学会了用按钮或者传感器控制LED的亮灭和明暗,请同学们想想,我们还可以制作那些有创意的LED?还能用那些传感器控制我们的LED?
<< 上一篇
下一篇 >>
网友留言(0 条)