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

发布者:MindfulCreator最新更新时间:2024-11-07 来源: elecfans关键字: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;

}

最后,测试一切正常!


关键字:GD32  红外遥控器 引用地址:零基础学习GD32 红外遥控器原理

上一篇:如何查看GD32 Keil和IAR工程的map文件
下一篇:GD32开发实战指南(基础篇) 第6章 按键

推荐阅读最新更新时间:2024-11-10 10:27

STM32到GD32移植攻略
使用STM32的芯片的朋友,可以很方便的将移植到GD32上面,下面就具体移植过程分享一下: 整个移植过程可以分为硬件和软件两个方面。 硬件方面: 首先要确定先前所使用ST芯片的flash大小和管脚数量,然后替换成GD相同大小Flash和管脚数量的芯片。 简单来说就是STM32F103xxxx替换成GD32F103xxxx。 GD和ST的命名规则相同。 软件方面: 以Keil开发环境为例,打开头文件“stm32f10x.h” 找到定义 #define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500) 替换为 #define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF) 重新
[单片机]
单片机解码万能红外遥控器C51程序
使用方法:打开串口调试助手,设置为9600 bps 单片机这边用11.0592MHz的晶振,使用sm0038或者其他型号的红外接收头按下面的电路连接好,其中out直接与单片机的p3.2脚相连.按下遥控器,串口调试助手便会出现解码值. /******************************************************************/ /* 本程序的蓝本从网上搜集,经修改并注释,万能遥控器解码成功 */ /* 晶振:11.0592MHz */ /* 整理与测试:单片机教程网 http://www.51hei.com 胡琴 2012.5.15
[单片机]
单片机解码万能<font color='red'>红外遥控器</font>C51程序
GD32和AT32哪个好?
GD32和AT32是两种不同的微控制器型号,它们都是国内开发的芯片。GD32系列由国内芯片制造商GigaDevice Semiconductor开发,而AT32系列则由友创科技(Atmel的中国合资公司)开发。这两种型号都具有自己的特点和优缺点,选择哪一个更好取决于你的具体需求。 GD32: GD32是GigaDevice Semiconductor推出的一种具有先进功能和强大的性能的微控制器。它主要用于智能家居、智能电机控制、医疗设备等领域。 GD32系列芯片采用了3种不同的内核:ARM Cortex-M0+、ARM Cortex-M3和ARM Cortex-M4。这些内核具有高效的计算能力和强大的低功耗特性,以及丰富的外设功能
[单片机]
GD32和STM32有何区别?GD32如何替换STM32呢?
GD32和STM32是两种不同的微控制器系列,一般被用于嵌入式系统开发。GD32是中国华大基因(Gigadevice)公司开发的微控制器,而STM32是瑞士意法半导体(STMicroelectronics)公司开发的微控制器。 首先,我们来看一下GD32和STM32在技术规格上的区别。GD32系列采用了中国自主研发的ARM Cortex-M3和Cortex-M4内核,而STM32系列则采用了瑞士意法半导体公司的ARM Cortex-M系列处理器。从处理器性能和架构上来看,两者基本上是相似的。然而,由于GD32系列是后来者,它在一些方面对原有的STM32系列做了一些改进和增强,例如增加了更多的外设和功能模块。 其次,GD32和STM
[单片机]
兆易创新GD32 MCU荣获“中国芯”最佳市场表现产品奖
电子网报道,2017 年10 月 23日昆山,在国家工业和信息化部软件与集成电路促进中心(简称“CSIP”)举办的第十二届“中国芯 • 新动能”中国集成电路产业促进大会上,北京兆易创新科技股份有限公司(GigaDevice)推出的GD32系列Cortex®-M内核32位通用微控制器产品GD32F130C6T6荣获“中国芯”最佳市场表现产品奖。
 
 兆易创新GD32 MCU作为中国高性能通用微控制器领域的领跑者,中国第一个推出的Arm® Cortex®-M3及Cortex®-M4 内核通用MCU产品系列,已经发展成为中国32位通用MCU市场的主流之选。并以累计超过1亿颗的出货数量,超过1万的客户数量,19个系列300余款产品选择所
[半导体设计/制造]
gd32和stm32哪个好?
GD32和STM32是两种常见的微控制器系列,是开发者们常用的开发板核心。尽管它们相似之处很多,但它们也存在着差异,本文将深入探讨GD32和STM32,分享它们的优缺点。 首先,我们从GD32说起。GD32是由国内的同时表示中心研发的一种基于ARM Cortex-M3 CPU的微控制器,该平台具有很高的兼容性、低功耗以及出色的性能。许多GD32产品也广泛用在电子产品、智能家居、工业控制系统和无人机开发等领域。 与此相反,STM32系列是ST公司基于Cortex-M3架构开发的高性能微控制器。STM32系列以其高速运算能力、出色的数据处理性能、广泛的官方支持和易用的硬件软件接口而著名。STM32可轻松完成各种任务,比如音频、显示以及
[单片机]
GD32与STM32兼容吗?
GD32与STM32是两个不同的微控制器系列,是由两个不同的公司设计和生产的。GD32系列是由国内的长沙国芯微电子设计和生产的,而STM32系列则是由欧洲的STMicroelectronics公司设计和生产的。 虽然GD32与STM32都是基于ARM Cortex-M内核的微控制器,但是它们并不完全兼容。由于两个公司的设计和生产流程不同,GD32系列和STM32系列的外设具有不同的寄存器映射和不同的寄存器位域。因此,任何在STM32上编写的应用程序不能直接在GD32上运行,需要对代码进行适当的修改。 在进行移植时,需要仔细研究两者之间的差异性,例如GPIO、串口、定时器等外设的差异,以及使用的库函数的不同。同时也需要检查时钟、中断
[单片机]
GD32 MCU 入门教程】一、GD32 MCU 开发环境搭建(1)使用Keil开发GD32
目前市面通用的MDK for ARM版本有Keil 4和Keil 5:使用Keil 4建议安装4.74及以上;使用Keil 5建议安装5.20以上版本(注意:GD32E23x系列必须使用Keil5开发)。 1.1 在Keil4中添加GD32 MCU Device 1.1.1 从GD32官网下载相关系列插件。 下面以GD32F30x为例,在官网上下载MDK-ARM_AddOn_GD32F30x_V1.0.0.rar,如图所示: 1.1.2 双击解压安装至Keil 4的目录,一般都会默认选择,如若同时安装了Keil 4和Keil 5才需要手动选择。 1.1.3 安装成功后,重新打开Keil 4,则可以在File- Device
[单片机]
【<font color='red'>GD32</font> MCU 入门教程】一、<font color='red'>GD32</font> MCU 开发环境搭建(1)使用Keil开发<font color='red'>GD32</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved