例程 19 红外遥控

这篇博客介绍了如何使用Arduino处理红外遥控信号,包括库文件的安装、红外遥控的编码方式(以NEC协议为例)、解码过程以及如何根据接收到的编码控制LED。文章还提供了错误处理示例和具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:

1. arduino 的 libraries 在 mac os 中的地址

/Users/<username>/Documents/Arduino/libraries/

2. 红外遥控程序注意将IRremote文件夹 复制到Arduino安装目录下面libraries 文件夹下面 ,否则编译会出现

C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: 'TKD2' was not declared in this scope int RECV_PIN = TKD2; // the pin the IR receiver is connected to                ^编译有误。   

文件下载地址

https://download.youkuaiyun.com/download/countofdane/10670832

1. 准备

红外遥控器发出的信号是一连串的二进制脉冲码。为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管发射出去,而红外线接收装置则要滤除其他杂波,叧接收该特定频率的信号并将其还原成二进制脉冲码,也就是解调。 

内置接收管将红外发射管发射出来的光信号转换为微弱的电信号,此信号经由IC内部放大器进行放大,然后通过自动增益控制、带通滤波、解调变、波形整形后还原为遥控器发射出的原始编码,经由接收头的信号输出脚输入到电器上的编码识别电路。

要想对某一遥控器进行解码必须要了解该遥控器的编码方式。本产品使用的遥控器的码方式为:NEC协议。下面就介绍一下NEC协议的特点:

(1)8位地址位,8位命令位 

(2)为了可靠性地址位和命令位被传输两次

(3)脉冲位置调制 

(4)载波频率38khz 

(5)每一位的时间为1.125ms或2.25ms 

  逻辑 01的定义如下图

 逻辑1的是由560us的高电平和1.69ms的低电平组成的脉冲表示

逻辑0的是由560us的高电平和565us的低电平组成的脉冲表示

重复脉冲

重复码的格式是由9ms的AGC高电平和2.25ms的低电平及一个560us的高电平组成。如右图所示

按键按下立刻松开的发射脉冲:

下图片显示了NEC的协议典型的脉冲序列。

①一个信息发送是由9mS的AGC自动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值