第七章 IR接收器应用

第七章 IR接收器应用

不小心拿着电视的遥控器对着电视盒子一顿猛按,结果没有反应,当你开始懊恼是才发现自己拿错了遥控器?为什么不同电器不用同一个遥控器控制!
这正是因为IR接收器协议不同,NEC,SONY SIRC,PHILIPS RC5等,IR遥控器也是不可以混着用的!

本章介绍重点:
介绍IR的遥控原理和NEC协议
基本实验:将IR接收器所接受到的客户码和按键码显示在DE2-115开发版的七段数码管上
进阶实验:以IR遥控器来控制音乐合成器

7-1IR遥控器的原理与NEC协议

IR遥控器被广泛应用,她有什么独特的魅力呢?
体积下,成本低,耗电少及硬件设计容易就是她最大的特色
IR遥控系统包括:发射器(Transmitter或称 IR LED)和接收器(Receiver)

7-1-1 IR发射器

正式介绍前,可以先想下IR发射器如何控制‘亮’,‘暗’,可以正确的将信息发送到IR接收端?
若亮为1暗为0
则传输的指令为“11111000”时,LED应作何反应
LED一直亮着的是一个1那还是5个连续的1那?后边暗着的是一个0还是一排0?
那么NEC协议如何解决这个问题那,在开始传输指令之前,会先传输一个指令码,叫做前置码(Leader Code),即LED开头会先亮9ms,接下来会暗4.5ms,来告诉IR接收器[你要接受指令了],另一种方法使用‘变动长度’,即不管0或者1,LED都会先亮560μs,接下来会暗一段时间,0的话会比较短,只暗560μs,1的话比较长,会亮560*3=1680μs

7-1-2 IR接收器

IR 接收器一般是红外线接收头,而在DE2-115中采用的一体化IR接收头,除了发射信号外,还有解调变的功能,并且可以将信号放大,不同的IR接收器所能解调的载波频率不同,本次板子所解调载波频率为38KHz

FPGA所设计的IR接收器译码部分,要注意IR接收头会将信号发反向,所以从IR接收器端看,收到的信号与发射端反向

7-1-3 NEC IR协议

特点摘要如下:
1.使用16-bit客户码与8-bit按键码
2.利用38kHz的载波来调变
3.传输的0与1使用‘变动长度’的方式
详细描述如下:
NEC格式由前置码、16-bit 客户码、8-bit按键码组成。先传输前置码包含9ms载波和4.5ms为0,接着传输16-bit客户码,之后8-bit按键码传输两次第二次传输是反向后的结果,所以真正传输8-bit按键码与8-bit反向按键码(Inversed Key Code ),目的是为了让IR接收端可以验证数据。560us的载波加上1690us的0代表传输1,560us的载波加上560us的0则代表0。由于IR接收头会将信号反向,所以从IR接收器这端所接收到的信号会与上述相反
在这里插入图片描述

7-2IR接收器范例

将用户所按的IR接收器的按键的相关信息显示在DE2-115开发版上。
用户在按下遥控器上的按键后,经过FPGA译码后相关信息会以16进制显示在七段数码管上
FPGA中实现IR接收器的译码器部分,区块结构如图
在这里插入图片描述

首先IR接收器将调变后的信号传输到按键码侦测器,键码侦测器会检测IR接收器是否发射信号,当侦测到有信号时,状态从IDLE转移到GUIDANCE;
当检测到有前置码时,状态机会从GUIDANCE转移到DATAREAD
在DETAREAD状态,会依次对输入的客户码,按键码及反向按键保存在移位寄存器,最后显示在七段数码管,状态机会从DATAREAD状态变回IDLE
在这里插入图片描述

实验流程:
1.复制工程
2.打开Quartus II
3.编译
4.硬件连接
5.打开烧录窗口
6.实验结果
7.尝试其他遥控器

7-3 以遥控器控制音乐合成器

以IR遥控器的按键来代替开发版上的滑动开关,实现滑动开关和按键开关的对应

按键名称说明
KEY[0]复位电路
KEY[1]重复演奏演奏的音乐
SW[0]下:管乐/上:弦乐
SW[9]下:音乐展示/上:PS/2键盘演奏
SW[1]Channel-1 开/关
SW[2]复位电路
管乐
弦乐
音乐展示
PS/2键盘弹奏
↑channelchannel-1 开
↓channelchannel-1 关
↑Volumechannel-2开
↓Volumechannel-2 关

编辑流程如下:
1,打开Quartus II 10.0
2,复制工程目录
3,再打开另一个Quartus II 10.0
4,复制文字
5,命名文件
6,保存文件
7,复制文件
8,增加文件
9,编译
10,新建Verilog HDL程序
11,保存
12,编辑文件
13,引用模块
14,取代滑动开关的控制文字
15,绿色LED灯观察变数值
16,保存
17,编译
18,硬件连接
19,打开烧录软件
20,实验结果

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
IR 红外接收器用于接收红外信号,也可用于远程控制检测。 Infrared Receiver 上有一个 IR 探测器,用于获得红外发射器发出的红外线。 IR 检测器内部有一个解调器,寻找 38 KHz的信号。 该IR 红外接收器可以在10米以内接收信号。 如果超过10米,接收器可能无法得到信号。 特性: 工作电压: 3.3-5V 接收距离: 10m 接收器打开File(文件) - >Examples(示例) - > IRSendRev-> example-> recv 查看完整的示例程序,或将代码复制并粘贴到新的 Arduino 编辑页面上。 描述: 此示例将IR接收器引脚连接到D2。 您可以通过串口监视器看到遥控器的红外数据,然后将接收到的红外数据写入 send.ino,并使用 Infrared Emitter 上传到电路板,以便您可以使用遥控器发送相同的数据。 创意应用: 您可以通过 Infrared Receiver 知道遥控器发送的红外数据,然后在某些情况下通过 Infrared Emitter 发送相同的数据,例如室内温度大于26度时打开风扇开关。 将代码上传到开发板。 打开串行监视器,等待数据输入。 使用红外遥控发送数据(此示例使用 MIDEA 公司的红外遥控器的风扇,然后按开/关键)。 您可以看到以下信息。 发射器打开File(文件) - >Examples(示例) - > IRSendRev-> example打开示例程序,或将代码复制并粘贴到新的 Arduino 编辑页面上。 描述: 在这个演示中我们将IR发射引脚连接到D3端口。 您可以看到通过 Infrared Receiver 接收到的遥控器的红外数据,如上述示例。 然后将接收到的红外数据写入此示例,并使用 Infrared Emitter 上传到电路板,这样你就可以使用遥控器发送出相同的数据。 附件资料截图:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值