0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

零基础学习GD32 红外遥控器原理

兆易创新科技 作者:兆易创新科技 2019-10-25 09:58 次阅读

从零开始学GD32

第一节 红外遥控实验

遥控器是一种无线发射装置,通过现代的数字编码技术,将按键信息进行编码,通过红外线二极管发射光波,光波经接收机的红外线接收器将收到的红外信号转变成电信号,由处理器进行解码,解调出相应的指令来达到控制机顶盒等设备完成所需的操作要求。

一、红外遥控器原理

很多电器都采用红外线遥控,那么红外线遥控的工作原理是什么呢?首先我们来看看什么是红外线。

人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0.76μm;紫光的波长范围为0.38~0.46μm。比紫光波长还短的光叫紫外线,比红光波长还长的光叫红外线。

红外线遥控就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。

常用的红外线遥控系统一般分发射和接收两个部分。

发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。

大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通发光二极管相同,只是颜色不同。

红外发光二极管一般有黑色、深蓝、透明三种颜色。

判断红外发光二极管好坏的办法与判断普通二极管一样:用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。

红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉距法来粗略判定。接收部分的红外接收管是一种光敏二极管。

在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。

红外接收二极管一般有圆形和方形两种。

由于红外发光二极管的发射功率一般都较小(15mW左右),所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。

前些年常用μPC1373H、CX20106A等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。

成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正(VDD)、电源负 (GND)和数据输出(VO或OUT)。红外接收头的引脚排列因型号不同而不尽相同,可参考厂家的使用说明。成品红外接收头的优点是不需要复杂的调试和外 壳屏蔽,使用起来如同一只三极管,非常方便。但在使用时注意成品红外接收头的载波频率。

红外遥控常用的载波频率为38kHz,这是由发射端所使用的455kHz陶振来决定的。

在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。也有一些遥控系统采用36kHz、40kHz、56kHz等,一般由发射端晶振的振荡频率来决定。

二、红外遥控编码

常用的有通过脉冲宽度来实现信号调制的脉宽调制(PWM)和通过脉冲串之间的时间间隔来实现信号调制的脉时调制(PPM)两种方法。

我的遥控器使用的是NEC协议,即PWM方法,其特点如下:

1、8位地址和8位指令长度;

2、地址和命令2次传输(确保可靠性)

3、PWM脉冲位置调制,以发射红外载波的占空比代表“0”和“1”;

4、载波频率为38Khz;

5、位时间为1.125ms或2.25ms;

NEC码的位定义:一个脉冲对应560us的连续载波,一个逻辑1传输需要2.25ms(560us脉冲+1680us低电平),一个逻辑0的传输需要1.125ms(560us脉冲+560us低电平)。而遥控接收头在收到脉冲的时候为低电平,在没有脉冲的时候为高电平,这样,我们在接收头端收到的信号为:逻辑1应该是560us低+1680us高,逻辑0应该是560us低+560us高。

NEC遥控指令的数据格式为:同步码头、地址码、地址反码、控制码、控制反码。同步码由一个9ms的低电平和一个4.5ms的高电平组成,地址码、地址反码、控制码、控制反码均是8位数据格式。按照低位在前,高位在后的顺序发送。采用反码是为了增加传输的可靠性(可用于校验)。

三、解码过程

从图中可以看到,其地址码为0,控制码为168。可以看到在100ms之后,我们还受到了几个脉冲,这是NEC码规定的连发码(由9ms低电平+2.5m高电平+0.56ms低电平+97.94ms高电平组成),如果在一帧数据发送完毕之后,按键仍然没有放开,则发射重复码,即连发码,可以通过统计连发码的次数来标记按键按下的长短/次数。

四、实验操作

基于GD32 实验21 红外遥控实验基础上,在remote.h文件中添加以下宏定义:

#defineBUTTON_1 218

#defineBUTTON_2 242

#defineBUTTON_3 202

#defineBUTTON_4 90

#defineBUTTON_5 240

#defineBUTTON_6 122

#defineBUTTON_7 106

#defineBUTTON_8 114

#defineBUTTON_9 74

#defineBUTTON_0 170

#define BUTTON_POWER 234

作为遥控器的新键值。

main.c文件中的switch函数也进行了如下修改:

switch(key)

{

caseBUTTON_POWER:

LCD_ShowString(86,150,"POWER");

break;

caseBUTTON_1:

LCD_ShowString(86,150,"1 ");

break;

caseBUTTON_2:

LCD_ShowString(86,150,"2 ");

break;

caseBUTTON_3:

LCD_ShowString(86,150,"3 ");

break;

caseBUTTON_4:

LCD_ShowString(86,150,"4 ");

break;

caseBUTTON_5:

LCD_ShowString(86,150,"5 ");

break;

caseBUTTON_6:

LCD_ShowString(86,150,"6 ");

break;

caseBUTTON_7:

LCD_ShowString(86,150,"7 ");

break;

caseBUTTON_8:

LCD_ShowString(86,150,"8 ");

break;

caseBUTTON_9:

LCD_ShowString(86,150,"9 ");

break;

caseBUTTON_0:

LCD_ShowString(86,150,"0 ");

break;

default:

break;

}

最后,测试一切正常!


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 红外遥控器
    +关注

    关注

    3

    文章

    132

    浏览量

    21450
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34604
  • GD32
    +关注

    关注

    7

    文章

    332

    浏览量

    23739
  • 兆易创新科技

    关注

    1

    文章

    14

    浏览量

    2916
收藏 人收藏

    评论

    相关推荐

    基于LPC1114的学习红外遥控器程序设计

    本设计就是采用LPC1114+OLED+红外接收头构成一个学习红外遥控器
    发表于 12-14 16:44 5924次阅读

    智能学习红外遥控器设计

    智能学习红外遥控器设计
    发表于 08-16 19:26

    SLH89F5162实现学习红外遥控器

    概述:整个红外遥控学习系统利用SLH89F5162作为主控,接受红外遥控器发射过来的信号,经过存储电路将此信号存储起来,最后通过键盘电路与发
    发表于 10-17 13:57

    智能遥控器 红外发射接收系统

    前一段时间在做一个科技创新的项目,智能红外遥控器,既具有学习功能的遥控器,在网上找资料找的好辛苦,网上大多数资料都是红外发射或者接收的一部分
    发表于 04-25 22:36

    红外遥控器原理。

    `红外遥控器原理图什么怎么样的?请问这块遥控器的电路图谁有吗?里面的原理是怎么回事?`
    发表于 07-13 00:17

    学习红外遥控器设计

    有没有前辈知道怎么写基于MSP430F149的学习红外遥控器设计程序的?麻烦联系我。O(∩_∩)O谢谢984300719
    发表于 05-01 15:22

    常用万能学习红外遥控器设计资料.pdf

    ,部分厂商推出了具备红外学习遥控器,它的主要特点是:遥控器内置一个动态编码库,具备红外学习功能,可由用户自主录入编码, 通过对具备红外学习
    发表于 03-02 00:36

    如何设计基于NiosⅡ的学习遥控器

    遥控装置,这类遥控器大多数采用复制遥控器红外波形达到学习目的,其方法简单,实现起来较方便,通过对不同普通
    发表于 10-16 07:01

    红外遥控器怎么相互兼容?

    学习红外遥控器的设计与实现
    发表于 11-08 09:00

    学习红外遥控器的设计与实现

    学习红外遥控器的设计与实现 给出了自学习红外遥控器的一种设计,采用测量脉冲宽度的原理,适用于
    发表于 05-04 21:43 7362次阅读
    自<b class='flag-5'>学习</b><b class='flag-5'>红外</b><b class='flag-5'>遥控器</b>的设计与实现

    学习红外遥控器的设计与实现

     给出了自学习红外遥控器的一种设计,采用测量脉冲宽度的原理,适用于大多数电子产品的遥控器。介绍了转发红外信号的方法。 &nb
    发表于 05-09 12:08 2251次阅读
    自<b class='flag-5'>学习</b><b class='flag-5'>红外</b><b class='flag-5'>遥控器</b>的设计与实现

    基于NiosⅡ的红外学习遥控器设计

      本文设计了一种基于NiosⅡ的红外学习遥控器,把载波频率测量、红外信号解调、脉宽测量、调制发送IP核集中到FPG
    发表于 12-15 10:39 2436次阅读

    红外遥控器编码大全

    红外遥控器编码大全红外遥控器编码大全
    发表于 11-30 11:55 83次下载

    智能学习红外空调遥控器分析

    为了解决空调遥控器不兼容问题,设计了一款基于Atmega16单片机的智能空调遥控器。该遥控器采用测量脉冲宽度的方法学习红外信号,同时使用游程
    发表于 10-16 11:11 14次下载
    智能<b class='flag-5'>学习</b>型<b class='flag-5'>红外</b>空调<b class='flag-5'>遥控器</b>分析

    红外学习遥控器方案说明

    红外学习遥控器可通过学习操作学习其它遥控器上的部分按键,实现同一遥控器
    的头像 发表于 10-18 11:31 3403次阅读