学习型红外遥控器设计(3) 红外遥控解码学习

news/2024/12/3 0:27:27/

学习型红外遥控器设计(0) 摘要   (1) 绪论  (2) 方案设计   (3) 遥控解码   (4) 编码还原  (5) 硬件实现   (6) 总结展望

如方案设计所述,制作红外接收解码装置,该装置至少具有面向用户和设计者的两种检测方法,能够完成采用RC-5编码协议遥控器(SAA3010)的红外接收和解码,要求基于用户的检测方法简单直观,基于设计者的检测能准确显示解码数据格式。

3.1  基本原理

3.1.1  红外接收

接收部分的红外接收管是一种光敏二极管。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种,如图3.1所示:

图3.1  常用红外一体化红外接收头

图3.1 常用红外一体化红外接收头

成品红外接收头均有三只引脚,即VDD(5V)、GND和OUT。当红外接收头接收到38KHZ红外载波引脚OUT为低电平,否则为高电平(5V),供单片机查询。红外遥控常用的载波频率为38kHz,它是由专用编码芯片的晶振(一般455kHz)12分频得到的。

3.1.2  ISP技术

ISP(In-System Programming)即在系统编程技术,指电路板上的空白器件可以编程写入最终用户代码,而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。

ISP技术是未来发展方向,实现简单,一般做法是内部的存储器可以由上位机的软件通过串口来改写。对于单片机来讲可以通过SPI或其它的串行接口接收上位机传来的数据并写入存储器中。所以将芯片焊接在电路板上,只要留出串口,就可以实现芯片内部存储器的改写,无须再取下芯片,ISP革命性编程方式使得修改程序的容易程度接近仿真器。

参考STC89C52RC的datasheet,得到其ISP编程电路如图3.2所示:

图3.2  STC89C52RC单片机ISP编程电路

图3.2 STC89C52RC单片机ISP编程电路

ISP技术的优势是不需要编程器就可以进行单片机的实验和开发,芯片可以直接焊接到电路板上,免去了调试时频繁地插入取出芯片带来的不便。

3.2  红外接收解码装置设计

3.2.1  RS232串口红外接收板

仿效网络流行的PC遥控DIY制作[5],本文选取了电脑作为红外接收设备(基于用户检测方法)。

首先对接收板的原理作简要介绍,RS232串口红外接收板通过SM0038接收红外信号,送至单片机AT89C2051的串口RXD,由软件通过查询采集红外信号进行解码,简单处理后通过串口送至PC,PC软件Grider3.2收到解码信息按照预定义命令执行相应操作(比如显示音量、运行软件、关机等)。

RS232串口红外接收板的电路设计如图3.3所示:

图3.3  RS232串口红外接收板电路图

图3.3 RS232串口红外接收板电路图

上述电路图有两点需要注意:

1、串口窃电,电脑串口被打开后,RS232的4和7脚电平会发生变化,产生高于10V的电压,通过整流二极管D1和D2,采用电阻R2分压后得到5.1V的稳压(通过稳压二极管D3实现),再加上串口供电电流最大20mA,基本满足供电要求。

2、串口通信,单片机的串口一般使用TTL正逻辑电平标准,其逻辑1电平是5V,逻辑0电平是0V,而电脑串行口所使用的是RS232C的负逻辑电平标准,它的逻辑1电平是-3V--12V,逻辑0电平是+3V-+12V。两者的电平范围相差很远,所以连接时需要用到电平转换电路,一般来说商业化的成品会用到MAX232,DS275等专用的RS232、TTL电平转换集成电路,由于系统采用波特率为9600,要求不高,故依据经验使用小功率三极管搭建的电平转换电路,节约设计成本。

RS232串口红外接收板的软件流程如图3.4所示:

图3.4  RS232串口红外接收板软件流程图

图3.4 RS232串口红外接收板软件流程图

3.2.2  带液晶显示的红外接收板

带液晶显示的红外接收板的解码部分跟RS232串口红外接收板大致相同,不同在于增加显示功能、更换单片机型号为AT89S52,显示部分采用型号为12864带汉字字库的液晶屏(全屏最多可显示4*8个字符)。单片机AT89S52运行速度高(可支持24M晶振),片上资源丰富(8K字节程序存储器,256字节数据存储器),借助P3_2引脚接收红外信号,经过软件处理,分离出起始码、控制码、系统码、用户码,然后送显示。

带液晶显示的红外接收板的硬件电路如图3.5所示:

图3.5  带液晶显示红外接收板电路图

图3.5 带液晶显示红外接收板电路图

带液晶显示的红外接收板的软件流程如图3.6所示:

图3.6  带液晶显示红外接收板软件流程图

图3.6 带液晶显示红外接收板软件流程图

3.2.3  制作遥控矩阵表

利用带液晶显示的红外接收板制作,本文解析SAA3010遥控器所有按键编码,制作了SAA3010遥控矩阵表,如表3.1所示:

 表3.1  SAA3010遥控矩阵表

image045 按键 起始(2b) 控制(1b) 系统码(5b) 指令码(6b) 全码(14b)
开关 11 1 00000 001100 11100000001100
静音 11 1 00000 001101 11100000001101
1 11 1 00000 000001 11100000000001
2 11 1 00000 000010 11100000000010
3 11 1 00000 000011 11100000000011
4 11 1 00000 000100 11100000000100
5 11 1 00000 000101 11100000000101
6 11 1 00000 000110 11100000000110
7 11 1 00000 000111 11100000000111
8 11 1 00000 001000 11100000001000
9 11 1 00000 001001 11100000001001
0 11 1 00000 000000 11100000000000
单双 11 1 00000 001010 11100000001010
调谐 11 1 00000 011110 11100000011110
节目+ 11 1 00000 100000 11100000100000
节目- 11 1 00000 100001 11100000100001
微调+ 11 1 00000 101011 11100000101011
微调- 11 1 00000 101100 11100000101100
音量+ 11 1 00000 010000 11100000010000
存储 11 1 00000 101001 11100000101001
召回 11 1 00000 001111 11100000001111
音量- 11 1 00000 010001 11100000010001
爱好 11 1 00000 001110 11100000001110
定时 11 1 00000 100110 11100000100110
对比+ 11 1 00000 011100 11100000011100
色彩+ 11 1 00000 010100 11100000010100
亮度+ 11 1 00000 010010 11100000010010
录像 11 1 00000 111000 11100000111000
对比- 11 1 00000 011101 11100000011101
色彩- 11 1 00000 010101 11100000010101
亮度- 11 1 00000 010011 11100000010011
电视 11 1 00000 111111 11100000111111

以上编码信息均符合按照RC-5协议,其中的控制码每按键一次,其值反转一次。

3.3  装置性能检测

装置性能检测之前,先给出两个装置的实物图,分别如图3.7、图3.8所示:

图3.7  RS232串口红外接收板

图3.7 RS232串口红外接收板

 

图3.8  带液晶显示的红外接收板

图3.8 带液晶显示的红外接收板

3.3.1  红外干扰测试

由于遥控器多数时间用于室内,为此本文选择了带有日光灯的寝室作为测试环境,如图3.9所示:

图3.9  测试环境

图3.9 测试环境

以上测试环境中充满了红外辐射源,如日光灯、人体等,所以必然造成红外接收受到干扰,借助串口调试工具,在遥控器没有工作的情况下,打开日光灯,并将手掌置于遥控接收头周围,串口接收情况如图3.10所示:

图3.10  串口调试工具接收干扰信号

图3.10 串口调试工具接收干扰信号

按照Grider32的要求,单片机一次发送的数据为6个字节,其中前三个字节相同,后三个字节相同,故串口得到的干扰信号解码后得到数据如表3.2所示:

表3.2  干扰数据

D7 D7 D7 FC FC FC C7 C7 C7 F8 F8 F8
E3 E3 E3 FE FE FE E3 E3 E3 FC FC FC
F1 F1 F1 FE FE FE F1 F1 F1 FE FE FE
CF CF CF F8 F8 F8 CF CF CF F8 F8 F8
E7 E7 E7 FC FC FC C7 C7 C7 FC FC FC
E3 E3 E3 FE FE FE E3 E3 E3 FE FE FE
8F8F8F F1 F1 F1 E3 E3 E3 FC FC FC
C7 C7 C7 F8 F8 F8 E3 E3 E3 FE FE FE
E3 E3 E3 FC FC FC 8F8F8F F1 F1 F1
F1 F1 F1 FE FE FE C7 C7 C7 F8 F8 F8
8F8F8F F1 F1 F1 E3 E3 E3 FC FC FC
C7 C7 C7 F8 F8 F8 F1 F1 F1 FE FE FE
E3 E3 E3 FC FC FC 8F8F8F F1 F1 F1
F1 F1 F1 FE FE FE C7 C7 C7 FE FE FE
8F8F8F F9 F9 F9  

数据的波动正是外界红外辐射源随机信号的体现,通过反复测试发现,人体对于接收的影响最大,处于三米外的日关灯只有在开启和关闭时刻产生干扰,处于0.5m范围外的人体干扰基本可以忽略,为此遥控接收板使用时尽量远离人体(2-3m),据此,将遥控作为发射装置,电脑串口接收情况如图3.11所示:

图3.11  串口调试助手接收遥控器信号

图3.11 串口调试助手接收遥控器信号

接收的数据如表3.3所示:

表3.3  正确数据

55 55 55 D2 D2 D2 55 55 55 B2 B2 B2
55 55 55 D2 D2 D2 55 55 55 B2 B2 B2
55 55 55 D3 D3 D3 55 55 55 B3 B3 B3
55 55 55 D3 D3 D3 55 55 55 B3 B3 B3
55 55 55 AB AB AB 55 55 55 B4 B4 B4
55 55 55 AB AB AB 55 55 55 B4 B4 B4
55 55 55 AC AC AC 55 55 55 B5 B5 B5
55 55 55 AC AC AC 55 55 55 B5 B5 B5
55 55 55 AC AC AC 55 55 55 CA CA CA
55 55 55 AD AD AD  

 

不难发现,接收的数据稳定性较好,没有干扰出现,这说明上述使用策略是有效的。

3.3.2  红外解码测试

从用户的角度考虑,本文选取grider32作为上位机软件,测试遥控接收有效性。Girder是个能接收几乎任何计算机输入(键盘、遥控器、网络等等),并利用这些信号来控制你的计算机,如千千静听、暴风影音或是关闭计算机。Girder能控制红外线接收装置、各种serial(RS-232)装置等等。Girder操作界面如图3.12所示:

图3.12  gider3.2界面

图3.12 gider3.2界面

按照测试要求对SAA3010遥控器部分按键进行预定义,如表3.4所示:

表3.4  遥控器的部分按键功能定义

1 2 3 4
界面窗口居中 界面窗口位于左上角 显示一张照片 显示音量
5 6 7 8
增加音量 静音显示 屏幕保护 关闭显示

 

测试的结果如图3.13、图3.14所示:

图3.13  静音显示

图3.13 静音显示

图3.14  音量显示

图3.14 音量显示

这说明装置成功的实现了遥控PC操作,遥控接收板接收解码有效。


http://www.ppmy.cn/news/208557.html

相关文章

红外遥控模块学习

红外遥控原理 红外接收头的主要参数如下 工作电压:4.8~5.3V 工作 电流:1.7~2.7mA 接收频 率:38kHz 峰值波长: 980nm 静态输出:高电平 输出低电平:≤0.4V 输出高电平:接近…

Arduino基础入门之九 红外遥控

一 硬件 这套元件是红外接收头(左)和红外遥控器(右),遥控器按一下,红外接收头接收到并让UNO执行相应的操作。卖家给的资料里面依然是不给力地没有标清楚接收头三个引脚具体接法,我只能反复试&am…

红外遥控功能的实现

喜欢请关注微信公众号:嵌入式从0到1 公众号内容面向在校大学生、电子爱好者、嵌入式工程师; 涉及电子制作、模块使用、单片机技术、物联网相关知识分享; 软硬件全栈工程师,玩模块,学硬件,带你从0走到1 文章目录 涉及知识点一体化红外接收头VS1838B简介应用场景编码标准…

STM32F103C8T6红外遥控解码

目录 一、红外遥控 二、输入捕获初始化 捕获两个上升沿或者下降沿得到他们之间一个周期为1US的的波计次数来得到时间 三、NEC解码 四、IC.h函数 红外按键 五、主函数 六、总结 推荐STM32学习课程: [6-5] TIM输入捕获_哔哩哔哩_bilibili[6-5] TIM输入捕获是S…

Arduino简单实例之七_红外遥控接收

1) 说明: 红外接收模块适用于红外线遥控和红外线数据传输。对于不同的遥控器,区别只是接到的数字不同。 注意要买三脚的红外接收头,而不是直接购买红外对管。当然也可以买电子积木的红外接收模块,它还多了一块小板和小灯&a…

OpenMMLab-AI实战营第二期——3.基于RTMPose的耳朵穴位关键点检测(Colab+MMPose)

文章目录 1. Colab和Google云端硬盘1.1 建立项目文件和jupyter文件1.2 Colab运行时选择1.3 关联Colab中的文件和Google云端硬盘的文件 2. Colab和MMPose2.1 环境配置2.2 配置文件修改 3. Colab相关知识 1. Colab和Google云端硬盘 参考: 利用Colab上的TPU训练Keras…

C语言遥控器程序,红外遥控

红外遥控器的发送装置和接收装置以及关于载波等一些原理大家可参看《手把手教你学51单片机》文档第16章知识内容,这里笔者只简单说明如何运用该模块并讲解代码的实现。 1.接收装置 HS0038这个元器件是用来接收红外遥控器发送来的信号做处理的,我们知道红…

单片机红外线遥控

项目简介: (TC9012)红外遥控器发送红外信号, 红外接收模块接收到信号后,通过外部中断0传送给(51)单片机; 单片机对接收到的每帧数据解码后将相应的按键值显示在LCD1602上; 并实现对相应外设的控制:0-开buzzer, 1-关buzzer; 2-开LED, 3-关LED。 TC9012遥控器相关参数…