第11章 红外编码解码模块的使用

前言

最近买了一个有点好玩的模块:红外编码解码模块(NEC协议),该模块同时具备红外编码和红外解码的功能。这一篇我将教大家怎么使用这个模块来控制淘宝上的红外遥控LED灯,如果你的毕设有控灯的功能,可以考虑用我这种方法,绝绝对能亮瞎舍友的双眼,接下来进入正题。(下图是红外编码解码模块图,通过图中的四个引脚可知该模块使用的是串口通讯)。模块购买链接和代码都放入资料链接里了(评论区留下邮箱即可获得)

           

1.使用流程

1.1 拿到这个模块后,我们先用USB转TTL与红外编解码连接好,再将USB转TTL模块与电脑连接,如下图。

 1.2 然后打开电脑端的串口助手,选中USB转TTL模块对应的端口(下图“1”位置),波特率设置为9600(下图“2”位置),将打印内容改为hex显示(下图“3”位置),然后打开串口。

1.3 接着用淘宝购买的遥控LED灯配套的遥控器(NEC协议编码格式)对着红外编码解码模块按下按键,红外编码解码模块就会将遥控器发出的红外信号进行解析并通过模块自身的串口发送给串口助手进行打印,打印的十六进制数据就是按键对应的红外编码,下方视频就是演示视频。(遥控LED灯的购买链接也放在资料链接里了)

下图是红外编码解码模块解析出来的每个按键对应的红外编码。

1.4 在上面我们已经获取按键的红外编码。我们只要在按键的红外编码前面再加上十六进制数0xA10xF1,(如下图)

然后将这串数据(0xA1+0xF1+红外编码)通过串口助手发送给红外编码解码模块就可以实现跟遥控器按下按键时相同的控制效果,下方是视频演示。

2.代码讲解    

2.1 在上面的步骤当中,我们通过在串口助手发送"0xA1+0XF1+红外编码"的数据给红外编码解码模块的方式实现控制LED灯了,接下来,只要STM32通过串口发送"0xA1+0XF1+红外编码"的数据给红外编码解码模块,也一样可以实现STM32控灯了。

2.2 将STM32与红外编码解码模块用杜邦线连接起来。因为代码里使用的是串口1与红外编码解码模块通讯,所以STM32与红外编码解码模块连接的引脚如下。

代码讲解:(该代码适用于外部晶振8M的STM32F103C8T6,若自己的STM32板子外部晶振不是8M,要自行在代码中修改)

第5行至第12行 的8个数组,存储0xA1+0xF1+每个按键红外编码的值。

第16行 初始化延时函数,执行这条语句后,延时效果才会准确。

第18行 NVIC_PriorityGroupConfig( ) 设置中断优先级分组。

第20行 USART_Config( ) 是初始化串口函数,想要用哪个串口,只要usart.h文件中打开相应的注释就可以了(如下图),因为我使用的是串口1,所以打开串口1的注释。

 第23、25、27、29、31的Send_CMD( )函数,是串口发送函数,只要把第5行~第12行的对应功能的红外编码数组名填写进括号里,就能将该数组的数据通过串口发送出去给红外编码解码模块了,红外编码解码模块收到数据后,会发送相应的红外控制信号,具体是实现逻辑,可从资料链接里下载学习。

第24、26、28、30行 delay_ms(1000);是实现1秒延时,等待1秒再执行下一行代码。所以代码实现的效果就是一直重复 开灯->切换三次模式->关灯 动作。

自此,代码讲解完毕,下方视频是代码执行效果。

有兴趣的小伙伴,买齐模块后,可以将代码烧录到自己的STM32板子玩玩。熟悉后,可以移植到自己的毕设当中,或者移植到第四章的代码中实现语音控灯。不懂怎么移植的在后台私信我。这一章就到这里了,Respect!

  • 7
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式实验社

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值