第十一章 遥控灯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2221|回复: 0

第十一章 遥控灯

[复制链接]
发表于 2022-2-9 16:04 | 显示全部楼层 |阅读模式

[md]前面的几章我们讲了不少硬件模块,软件模块及其基础的操作方法,现在我们引入了一套新的模块,红外接收,红外遥控器模块。红外模块可以让我们在前面完成的简单项目变得更加智能起来,实现远距离启动我们的作品。

## 红外接收模块

红外接收模块的内部集成了红外接收电路,包括红外检测二极管、放大器、限幅器、带通滤波器、积分电路和比较器等多种电路。它开业接收红外信号并还原成发射端的波形信号。通常使用的一体化红外接收头都是接收38kHz左右的红外信号。OpenJumper的红外接收头实物如下图所示:
01.jpg
为什么要通过38kHz的频率的信号来进行通信呢?是因为红外直接发送高低电平可能会被环境中的红外光干扰,将通信频率设定为38K,像PWM输出一样,修改频率中的占空比,可以将其模拟成一个具有一定协议的数字信号发出去,同时还保证了通信抗干扰能力。

+ **红外遥控器**

红外遥控器上的每个按键都有各自的编码,按下按键后,遥控器就会发送对应编码的红外波。最常见的红外遥控器大多使用的NEC编码。生活照的大多数红外通信都使用38kHz的频率进行通信,这里使用的一体化接收头和遥控器也使用38kHz的频率收/发信号。如果使用其他频率进行通信,则需要选用对应频率的器材。

OpenJumper套件里配置的遥控器的每个按钮都是由6位数以FF开头的16进制编码组成。比如“ON”的编码为 FFA25D,“OFF”的编码为FFE21D。我们可以在串口监视器中读出起对应的数据。记住:长按某一个按键,返回的数值将是FFFFFFFF。
02.jpg
我们可以通过串口监视器并按下红外遥控器就可以读取红外遥控器按键的编码值。简单的编写程序如下:
03.jpg
通过例程,我们可以检查出遥控器对应按钮的编码,比如开关“ON”的编码是 “FFA25D”,开关“OFF”的编码是 “FFE21D”,向上按键的编码“FF9867”,向下按键的编码是“FFB04F”,其他的编码“FFFFFFF”为无效编码。这里我们记住这些编码,接下来的程序中会使用到,不同的遥控器对应按钮可能不同。所以在使用按键编码之前,先找到这些按键对应的编码。

## 红外遥控LED

上边介绍了红外接收模块和红外遥控模块,那么我们来红外遥控的LED灯吧,同时还可以给LED加上亮度调节功能,下面我们来试试看。

+ **硬件连接:**
04.jpg
LED模块 —— D10  红外接收模块 —— D4  红外遥控器

+ **程序编写:**
05.jpg
在上述例程中,我们将红外接收模块连接在D4接口上,程序中我们用到了红外遥控器的四个按钮,当检测到“ON”开关被按下时,我们把灯亮度调整为半亮(最亮是255),检测到“上键”或者“下键”时,我们将亮度对应的加减处理,在亮度调节的时候,同时将亮度值约束在0到255之内,当检测到“OFF”键时,将LED熄灭。最终完成程序后将程序编译上传就可以使用红外遥控器对LED灯进行控制了。

## 发散思维大课堂

通过上述示例,我们知道了红外遥控的使用方法,那么我们将其延伸,是否可以用红外遥控器控制LED的其他显示样式,或者用红外遥控器控制舵机转动,又或者控制蜂鸣器播放不同的电子音乐?[/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-30 23:42 , Processed in 0.378963 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表