Page Title

第7课 红外遥控的使用——遥控灯


2019-08-02 17:09:03

blob.png

blob.png

搭搭家里住在一个老城区,房间里面灯的开关只有一个,而且是在靠近房门的墙上,离床较远,晚上起来的时候特别不方便。为此搭搭的奶奶撞了好几次墙,搭搭就想要是能有一个遥控灯就好了,这样晚上奶奶想起来的时候,按一下遥控器灯就会亮。

blob.png

为了帮助搭搭完成心愿,好搭BOX为我们送来了红外遥控装置,下面我们就一起来认识一下:

红外遥控器

blob.png

红外遥控器是一种红外线发射装置。好搭BOX中的红外遥控器有17个按键,除了0-9这十个数字以外,还包括四个方向键、“OK”键以及“*”、“#”键(如下图7-1所示)。红外遥控器每个按键都有对应的按键值,可以根据需要在程序中定义不同的功能。

blob.png 

红外接收模块

blob.png

红外接收模块一般与红外发射器一起使用,它能够接收发射器发射的红外信号,然后将接收到的红外信号转换为电信号,经过处理后还原为红外发射器发射的按键值(如上图7-2所示)。

在好搭BOX中,红外遥控器和红外接收模块组成了一个完整的红外遥控系统。这类红外遥控方式在现实生活中几乎随处可见,比如绝大多数家庭都有的电视机、空调机,都采用了类似的红外遥控方式。

要制作本课的范例作品,还需要使用以下新的指令:

blob.png

blob.png

使用这个指令可以读取指定端口红外接收模块的值。

blob.png

blob.png

使用这个指令可以方便地得到红外遥控器各按键的值。指令默认是“OK”键;通过单击下拉列表,还可以选择0-9这十个数字键、四个方向键、以及“*”、“#”键。

 

blob.png

基于好搭BOX和好好搭搭网站制作本课的范例作品,可以按以下步骤先放置模块、运行插件程序,然后进入好好搭搭网站编写、调试、编译、下载程序。

准备工作:搭建硬件、运行插件、进入网站                        

blob.png 

第一步:搭建硬件。将彩色LED模块、数码管模块、红外接收模块放置于主控板上任意六边形区域,磁铁吸合;接着用USB线把主控板和计算机连接起来,然后打开主控板电源开关(如下图7-3所示)。

第二步:运行插件。打开“好好搭搭硬件下载”插件,确认插件程序显示“打开端口成功”。

blob.png

7-3 “遥控灯”范例作品模块搭建图

第三步:进入网站。打开浏览器,登录“好好搭搭”网站;单击网站上方的“创作”按钮,在“创作模板”网页中选择“好搭BOX智能实验箱模板,进入模板项目页;在模板项目页中单击网页右上角的转到设计页按钮,进入好搭BOX编程设计页

案例一:在数码管上显示红外接收模块接收到的值                       

blob.png 

要在数码管上显示红外接收模块接收到的值,可以按以下步骤操作:

1.      “新建变量ir”;

2.      使用“重复执行”指令,重复执行“将变量设定为”、“如果那么”指令;

3.      将“读红外值”指令作为“将变量设定为”指令的参数;

4.      设置“如果那么”指令的条件是“ir>0”,条件满足后执行“数码管消除”和“数码管显示”指令,设置“数码管显示”指令最后一个参数是变量“ir”。

具体程序代码如下图7-4所示:

blob.png

7-4 “在数码管上显示红外接收模块接收到的值”程序代码

blob.png

将上图7-4所示代码编译后下载到主控板上,然后按红外遥控器上的按键,观察数码管上显示的数值,思考以下问题:

1. 请试一试用数码管直接显示读取到的红外值,然后使用变量先存储读取到的红外值,再将变量值显示在数码管上,比较两种显示红外值的方法,说一说你的发现。[1] 

2. 红外遥控器必须对准红外接收模块吗?如果不对准会怎么样?

3. 课后用家里的遥控器对准红外接收器,读一读每个按钮显示的数值。

blob.png

 


我发现:________________________________________________________________

_______________________________________________________________________

案例二:红外遥控开关彩色灯

blob.png 

彩色LED大家已经很熟悉了,要让彩色LED发光,只需对每一个灯的红绿蓝三色值进行设置便可,而要熄灭彩色LED灯,便是将红绿蓝三色值都设定为0

红外遥控在生活中应用极其广泛,除了比较常见的电视机和空调,灯作为极其重要的家电也可以进行红外遥控,下面我们便用彩色LED和红外遥控装备来进行创作。

首先我们先设置“*”按键为开灯按键,按下“*”按键,彩色LED全部灯亮起,颜色为白色,数码管显示“8888”;设置“#”按键为关灯按键,按下“#”按键,彩色LED全部灯熄灭,数码管不显示任何内容。具体程序代码如下图7-5所示:


blob.png

7-5 “红外遥控彩色LED亮灭”程序代码

blob.png

以上我们使用了遥控器中的两个按键分别用于控制彩色LED的亮与灭,若是接下来我们将遥控器中的每一个按键都添加控制彩色LED变换的语句,那么程序肯定会非常长,请你仔细观察以上程序,试一试能否找到方法简化程序[2] 

blob.png

我发现:_______________________________________________________________

 

案例三:红外遥控的百变彩色LED                  

blob.png 

基于以上用“*”按键和“#”按键分别控制彩色LED亮灭,我们可进一步丰富遥控灯的功能。如:让不同的数字按键控制彩色LED灯显示不同的颜色,同时数码管显示相应内容。本案例共用到4个按键,具体效果要求如下表:


blob.png

具体的程序代码如下图7-6所示:


blob.png



7-6 “红外遥控的百变彩色LED灯”程序代码

    将点亮RGB灯的程序段放到功能块RGB_SET中,具体的程序代码如下图7-6所示:

 

blob.png


7-7 “红外遥控的百变彩色LED灯”中的RGB设置功能块

blob.png

按键“3”、“4”、“5”、“6”、“7”、“8”、“9”还未进行控制效果设置,你能否结合之前实现的彩色LED灯光效果,完善红外遥控对彩色LED的控制功能。

 

blob.png

空调遥控器上的“向上”和“向下”按键可以用于调节温度的高低,那这里红外遥控器的“向上”和“向下”按键我们可否用于调节彩色LED灯的亮度呢?如:每按一下“向上”按键,彩色LED亮度值增加5,每按一下“向下”按键,彩色LED亮度值减少5

我打算这么做:_______________________________________________________

______________________________________________________________________

做的时候需要注意:____________________________________________________

______________________________________________________________________


家里电视遥控器尝试

知识点:

1.初始化的习惯;

2.强化新建功能模块的应用和作用

另外,为接下来较为完整的程序做准备