![1565055215238982.png 图片.png](http://www.haohaodada.cn/ueditor/php/upload/image/20190806/1565055215238982.png)
搭搭家里住在一个老城区,房间里面灯的开关只有一个,而且是在靠近房门的墙上,离床较远,晚上起来的时候特别不方便。为此搭搭的奶奶撞了好几次墙,搭搭就想要是能有一个遥控灯就好了,这样晚上奶奶想起来的时候,按一下遥控器灯就会亮。
为了帮助搭搭完成心愿,好搭BOX为我们送来了红外遥控装置,下面我们就一起来认识一下:
红外遥控器 |
|
红外遥控器是一种红外线发射装置。好搭BOX中的红外遥控器有17个按键,除了0-9这十个数字以外,还包括四个方向键、“OK”键以及“*”、“#”键(如下图7-1所示)。红外遥控器每个按键都有对应的按键值,可以根据需要在程序中定义不同的功能。
![1565055577618591.png 图片.png](/ueditor/php/upload/image/20190806/1565055577618591.png)
红外接收模块 |
|
红外接收模块一般与红外发射器一起使用,它能够接收发射器发射的红外信号,然后将接收到的红外信号转换为电信号,经过处理后还原为红外发射器发射的按键值(如上图7-2所示)。
在好搭BOX中,红外遥控器和红外接收模块组成了一个完整的红外遥控系统。这类红外遥控方式在现实生活中几乎随处可见,比如绝大多数家庭都有的电视机、空调机,都采用了类似的红外遥控方式。
要制作本课的范例作品,还需要使用以下新的指令:
使用这个指令可以读取指定端口红外接收模块的值。
使用这个指令可以方便地得到红外遥控器各按键的值。指令默认是“OK”键;通过单击下拉列表,还可以选择0-9这十个数字键、四个方向键、以及“*”、“#”键。
要制作本课的范例作品,可以按以下步骤先连接硬件、连接网络,然后进入“好好搭搭”网站编写、调试、编译、下载程序。
准备工作:搭建硬件、连接网络、进入网站 |
|
第一步:搭建硬件、连接网络。将彩色LED模块、数码管模块、红外接收模块放置于主控板上任意六边形区域,磁铁吸合(如图7-3所示);打开主控板的电源开关,等待主控板连接网络成功。
![1565055756850941.png 图片.png](/ueditor/php/upload/image/20190806/1565055756850941.png)
图7-3 “遥控灯”范例作品模块搭建图
第二步:进入网站。打开浏览器,登录“好好搭搭”网站;单击网站上方的“创作”按钮,在“无线编程”网页中选择“好搭BOX智能实验箱”模板,进入程序设计页。
要在数码管上显示红外接收模块接收到的值,可以按以下步骤操作:
1. “新建变量ir”;
2. 使用“重复执行”指令,重复执行“赋值ir为…”、“如果…那么”指令;
3. 将“读红外值”指令作为“将变量设定为”指令的参数;
4. 设置“如果…那么”指令的条件是“ir>0”,条件满足后执行“数码管消除”和“数码管显示”指令,设置“数码管显示”指令最后一个参数是变量“ir”。
具体程序代码如下图7-4所示:
![1565056078498792.png 图片.png](/ueditor/php/upload/image/20190806/1565056078498792.png)
图7-4 “在数码管上显示红外接收模块接收到的值”程序代码
| 将上图7-4所示代码编译后下载到主控板上,然后按红外遥控器上的按键,观察数码管上显示的数值,思考以下问题: 1. 请试一试用数码管直接显示读取到的红外值,并和以上使用变量先存储读取到的红外值,再将变量值显示在数码管上的方法进行比较,说一说你的发现。 2. 红外遥控器必须对准红外接收模块吗?如果不对准会怎么样? 3. 课后用家里的遥控器对准红外接收器,读一读每个按钮显示的数值。 |
|
我发现:________________________________________________________________
_______________________________________________________________________
案例二:红外遥控开关彩色灯 |
|
彩色LED大家已经很熟悉了,要让彩色LED发光,只需对每一个灯的红绿蓝三色值进行一定设置便可,而要熄灭彩色LED灯,便是将红绿蓝三色值都设定为0。
红外遥控在生活中应用极其广泛,除了比较常见的电视机和空调,灯作为极其重要的家电也可以进行红外遥控,下面我们便用彩色LED和红外遥控装备来进行创作。
首先我们先设置“*”按键为开灯按键,按下“*”按键,彩色LED全部灯亮起,颜色为白色,数码管显示“8888”;设置“#”按键为关灯按键,按下“#”按键,彩色LED全部灯熄灭,数码管不显示任何内容。具体程序代码如下图7-5所示:
![1565056134360009.png 图片.png](/ueditor/php/upload/image/20190806/1565056134360009.png)
图7-5 “红外遥控彩色LED亮灭”程序代码
| 以上我们使用了遥控器中的两个按键分别用于控制彩色LED的亮与灭,若是接下来我们将遥控器中的每一个按键都添加控制彩色LED变换的语句,那么程序肯定会非常长,请你仔细观察以上程序,试一试能否找到方法简化程序。
|
我发现:________________________________________________________________
_______________________________________________________________________
案例三:红外遥控的百变彩色LED |
|
基于以上用“*”按键和“#”按键分别控制彩色LED亮灭,我们可进一步丰富遥控灯的功能。如:让不同的数字按键控制彩色LED灯显示不同的颜色,同时数码管显示相应内容。本案例共用到4个按键,具体效果要求如下表:
![1565056290992194.png 图片.png](/ueditor/php/upload/image/20190806/1565056290992194.png)
具体的程序代码如下图7-6所示:
图7-6 “红外遥控的百变彩色LED灯”程序代码
将点亮彩色LED灯的程序段放到功能块RGB_SET中:
![1565056327683506.png 图片.png](/ueditor/php/upload/image/20190806/1565056327683506.png)
图7-7 “红外遥控的百变彩色LED灯”中的RGB设置功能块
| 按键“3”、“4”、“5”、“6”、“7”、“8”、“9”还未进行控制效果设置,你能否结合之前实现的彩色LED灯光效果,完善红外遥控对彩色LED的控制功能。 |
空调遥控器上的“向上”和“向下”按键可以用于调节温度的高低,那这里红外遥控器的“向上”和“向下”按键我们可否用于调节彩色LED灯的亮度呢?如:每按一下“向上”按键,彩色LED亮度值增加5,每按一下“向下”按键,彩色LED亮度值减少5。
我打算这么做:_______________________________________________________
______________________________________________________________________。
做的时候需要注意:____________________________________________________
______________________________________________________________________。