网站首页 > 博客文章 正文
红外遥控功能,因其电路简单,控制方便,在电子制作和毕业设计中常常使用。
涉及知识点
- GPIO中断接收
- STM32中定时器的用法
- 红外接收头的使用
外部中断和定时器的内容比较多,之后网文再详细分享。
一体化红外接收头VS1838B简介
- 工作电压: 2.7V~5.5V
- 应用电路
- 外观、封装及尺寸 把接收头面向自己,左边为1脚,1脚OUT,2脚GND,3脚VCC。
应用场景
- 视听器材(音箱、电视、录影机、碟机)
- 家庭电器(冷气机、电风扇、电灯)
- 其他红外线遥控产品
编码标准
红外接收头的型号有很多HS0038、VS1838B等,功能大致相同,只是引脚封装不同。
红外接收有几种统一的编码方式,采样哪种编码方式取决于遥控器使用的芯片,接收头收到的都是一样的。
电视遥控器使用的是专用集成发射芯片来实现遥控码的发射,通常彩电遥控信号的发射,就是将某个按键所对应的控制指令和系统码(由0和1组成的序列),调制在38KHz的载波上,然后经放大、驱动红外发射管将信号发射出去。
不同公司的遥控芯片,采样的遥控码格式也不一样,较普遍的有两种,一种NEC标准,一种是PHILIPS标准。
NEC标准: 当某个键按下时,系统首先发射一个完整的全码,如果按键超过108ms仍未松开,接下来发射的代码(连发代码)将由起始码(9ms)和结束码(2.5ms)组成。
一个完整的全码 = 引导码 +用户码 +用户码 + 数据码 + 数据反码。
其中,引导码高电平9ms,低电平4.5ms;
用户码和数据码共32位;其中前16位为用户识别码,能区别不同的红外遥控设备,以防止不同的机种遥控码互相干扰。 后16位数据码为8位的操作码和8位的操作反码,用于核对数据是否接收准确。
接收端根据数据码的不同做出相应的动作。
连发代码是在持续按键时发送的码。它告知接收端。某键是在被连续的按着。
PHILIPS标准: 逻辑“0”和逻辑“1”的定义。
我们使用的遥控器模块使用的是NEC标准,当我们点击红外遥控器上第一个按键Ch- 时,用示波器测量VS1838B的OUT引脚,示波器中抓取的信号如下:
我们可以看出跟下图标准的NEC协议的典型脉冲链的定义是一致的:
上图为NEC协议的典型脉冲链。协议规定低位首先发送。
首先发送9ms+4.5ms的引导码,接下来是两字节用户码,第三字节是数据码(按键码),用来判断按键值,第四字节是数据反码,可以用来校验,提高按键的准确性。
注意: 我们会发现上面两个图中波形的高低电平 实际上是相反的,因为红外接收头将38K载波信号过滤,接收到的波形刚好与发射波形相反。
难点:数据0和1的判断: 所谓的解码就是一个区分脉冲宽度的过程。红外信号的“0”和“1”是通过脉冲持续时间的长短来区分的,NEC标准的“0”和“1”的定义如下:
引导码:9ms 的载波+4.5ms 的空闲。 比特值“0”:560us 的低电平+560us 的高电平。 比特值“1”:560us 的低电平+1.68ms 的高电平。
VS1838B 这个红外一体化接收头,当收到有载波的信号的时候,会输出一个低电平,空闲的时候会输出高电平。
数据处理流程
结果展示
接线
与VS1838B连接:
- 红外接收头的OUT引脚连接PA7
- VCC连接3.3V
- GND接地
与USB转TTL串口相连: 用于打印调试信息
- USB转TTL串口的TXD与核心板的PA10相连
- USB转TTL串口的RXD与核心板的PA9相连
- USB转TTL串口的VCC与3V3跳线短接
键码值输出
按红外遥控的各个按键,串口打印输出各个按键值如下:
对红外遥控器键码值整理如下:
下面视频中抓取的是第一个按键的脉冲信号:
我们通过观察视频发现它的四个字节的数据如下: 00000000 11111111 10100010 01011101
其中: 头两个字节00000000 11111111,即用户码,值为:0x00FF; 第三个字节就是Command命令字,10100010,这个数字对应十进制就是162,对应16进制就是0xA2。
一般我们就利用第三个字节的值,进行不同的功能定义。 第四字节01011101,可以看出与第三字节10100010互为反码。
但是我们通过上面NEC编码部分的介绍可知,NEC协议规定低位首先发送。所以上面打印输出的162(10100010),需要高低位反过来,即第一个按键的二进制真实编码为:01000101,即十六进制的0x45。
我们将所有的按键重新计算,所有编码就能够得到网上的按键编码图了。
其实我们只要每个按键能准确得到一个不同键码值,然后程序中根据不同值,执行不同流程即可,对于“CH-”键码值是162还是0x45,其实对功能的实现没有影响。
喜欢请关注微信公众号:程序员小哈
有问题可以加我微信号:chengxuyuanxiaoha(程序员小哈)
猜你喜欢
- 2024-10-07 思科和NEC合作为巴西电信公司部署5G自动化传输网络
- 2024-10-07 STM32 NEC红外遥控器解码(stm32f103红外遥控)
- 2024-10-07 神奇魔力:12岁小同志如何驱动红外遥控器?
- 2024-10-07 硬件监控-IPMI协议简析(什么是ip监控)
- 2024-10-07 遥控器拆解,这些电子知识赶紧学起来
- 2024-10-07 联想集团(00992)与NEC成立合营公司所订立的过渡服务协议续期至6月30日
- 2024-10-07 红外线遥控协议简介及编程思路(红外线遥控接收器接线图)
- 2024-10-07 NEC将旗下锂离子电池公司卖给了金沙江资本
- 2024-10-07 NEC和Fortinet达成5G网络安全协议
- 2024-10-07 日本NEC与Milano合作,在意大利米兰打造基于光纤的传感网络
你 发表评论:
欢迎- 07-08Google Cloud Platform 加入支持 Docker 的容器引擎
- 07-08日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 07-08美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- 07-08GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 07-08谷歌推出Cloud Dataproc,缩短集群启动时间
- 07-08Infovista与Google Cloud携手推进射频网络规划革新
- 07-08比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- 07-08BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- 最近发表
-
- Google Cloud Platform 加入支持 Docker 的容器引擎
- 日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 谷歌推出Cloud Dataproc,缩短集群启动时间
- Infovista与Google Cloud携手推进射频网络规划革新
- 比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- NCSA和Google Cloud合作开发AI驱动的网络防御系统,加强泰国网络空间的安全性
- SAP将在沙特阿拉伯 Google Cloud 上推出BTP服务
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)