使用红外遥控空调,就必须先了解红外遥控的原理,数据的定义等。本博客解析了空调的最基本的功能的红外编码,包括:开关,温度,定时,风速,扫风,校验码。其他的功能因为空调型号不同而差别较大,所以暂时不作解析。同时,空调大部分时间工作在制冷模式下,其他模式下的编码也暂时未解析。

文章目录

  • 一,红外遥控原理
    • 1,红外线
    • 2,工作原理
  • 二,实验波形
  • 三,红外编码解析
    • 第一段数据:
    • 第二段数据:
  • 四,小结

一,红外遥控原理

1,红外线

红外线是波长在760nm到1mm的电磁波,根据波长的不同可分为可见光(0.38um-0.76um)和不可见光。使用红外线作为遥控的话,由于红外发射管与红外接收管的响应波长一般为0.8um-0.94um,所以选择波长为0.76um-1.5um的红外光作为通讯的波长。

红外通信广泛应用于家电控制,其优点是抗干扰能力强(频率低),功耗小,性价比高等。

2,工作原理

发射器发射38khz方波为载波的红外光(占空比50),即红外光以38khz的频率闪烁着,接收器接收到以此频率闪烁的红外光时,会在其信号脚输出高电平信号,否则输出低电平。

根据这个最基本的原理来,来实现编码解码数据。数据就是一组二进制的数据,0和1的区别就是高低电平时间的不同。比如,以下例子中,0与1的区别就是1的高电平时间较长。发射器首先需要编码,根据二进制数据每一位的内容,发射持续时间不一样的红外光(控制低高电平时间),而接收器则需要判断高低电平的时间来解码数据。

二,实验波形

本实验是基于格力空调的红外数据
一帧红外编码数据的组成如下:
起始码+35位数据+连接码+32位数据+结束码
其中多次测量得出:

起始码:9000us 低电平 + 4500us高电平;
连接码:646us低电平 + 20000us高电平;
结束码:646us低电平 + 高电平;

数据0:646us低电平 + 516us高电平;
数据1:646us低电平 + 1643us高电平;

数据码中的0和1,经过多次的测量,取众数作为依据,实验数据如下:

三,红外编码解析

知道了一帧红外数据的0和1的表示,我们就可以自由的组成一帧数据。接下来需要了解的是在一帧数据中,数据位中的每一个bit代表的意思。
这里以25℃,制冷模式,低风速,无扫风,打开,定时时间为0的一帧数据为例子:

第一段数据:

开关:bit3;

0:关闭;1:开启

风速:bit4,bit5;

自动风速:00
一级风速:10
二级风速:01
三级风速:11

扫风开关:bit6,以及第二段bit0;

0:关闭;1:开启

温度:bit8,bit9,bit10,bit11;

16℃: 0000
17℃: 1000
18℃: 0100
19℃: 1100
20℃: 0010
21℃: 1010
22℃: 0110
23℃: 1110
24℃: 0001
25℃: 1001
26℃: 0101
27℃: 1101
28℃: 0011

定时分钟数:bit12,bit13,bit14;

由于我的手机只能发送定时半小时为最小单位的定时时间,所以只有定时30分钟的数据

30min: 100

bit15 定时开关;

0:关闭;1:开启

定时小时数:bit16,bit17,bit18,bit19;

一小时:1000
两小时:0100
三小时:1100

第二段数据:

第二段数据比较简单,需要注意的就是bit0是扫风的开关,她与第一段数据中的bit6是一样的数值。另外是后四位bit28,bit29,bit30,bit31组成的校验码。
网上也有许多关于校验码的公式,但是我试了后发现并不适用,于是自己尝试出了一条公式:
校验码 = 温度 - 18 + 定时小时数 + 空调开关 × 8;
例如以上例子的校验码是:25 - 18 + 0 + 1× 8 = 15 = 0xf;

四,小结

红外遥控的实现大同小异,最好还是要自己有测试的设备进行代码的测试。红外接收管和逻辑分析仪是你的不二选择。

友情连接:
esp32实现红外发射与接收

作者才疏学浅,难免有错误,希望指正。如果文章对你有帮助,帮忙点个赞呗。

格力空调红外编码解析相关推荐

  1. 格力空调红外编码分析

    最近一个月一直在弄智能家居的东西,从最底层的硬件开始,找资料,学着用Altium Designer画电路图,PCB打样,再到电子元器件采购和焊接,中间出了些问题,也学到很多东西.不废话了,这里主要分析 ...

  2. 格力空调遥控器红外编码透析(长码)

    格力空调遥控器(YB0F2)红外码组成如下,按解码顺序排列 起始码(S)+35位数据码+连接码(C)+32位数据码 1.各种编码的电平宽度: 数据码由"0""1" ...

  3. 美的空调红外遥控解析

    关于安卓发射红外信号请看:点击打开链接 一.简单介绍红外基础 1.首先要在App工程的AndroidManifest.xml中补充红外权限配置 <!-- 调用红外设备权限声明 --> &l ...

  4. HTTP1.1中CHUNKED编码解析(转载)

    HTTP1.1中CHUNKED编码解析 一般HTTP通信时,会使用Content-Length头信息性来通知用户代理(通常意义上是浏览器)服务器发送的文档内容长度,该头信息定义于HTTP1.0协议RF ...

  5. tcpip数据包编码解析(chunk and gzip)_space of Jialy_百度空间

    tcpip数据包编码解析(chunk and gzip)_space of Jialy_百度空间 // 使用zlib库的代码#include "zlib/zlib.h"void u ...

  6. 音频之WAV格式编码解析

    学习目标: 音频之WAV格式编码解析 学习内容: 介绍 WAV是最常见的声音文件格式之一,wav文件分为两个部分,第一个部分是wav头文件,第二个部分是PCM编码的音频数据部分.是微软公司专门为Win ...

  7. B编码与BT种子文件分析,以及模仿json-cpp写一个B编码解析器

    B编码与BT种子文件分析,以及模仿json-cpp写一个B编码解析器 1.什么是B编码 2.B编码格式 3.种子文件结构 3.1.主文件结构 3.2.info结构 4.简单的例子了解一下种子文件和B编 ...

  8. java chunked编码解码_HTTP协议中的CHUNKED编码解析

    HTTP协议中的TRANFER-ENCODING:CHUNKED编码解析 通常情况下,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输.c ...

  9. Protobuf编码解析

    protobuf的安装 tar zxvf protobuf-cpp-3.8.0.tar.gz cd protobuf-3.8.0/ ./configure CXXFLAGS="-O2&quo ...

最新文章

  1. LeetCod中等题之复数乘法
  2. in和exists的区别与执行效率问题解析
  3. 深入剖析SolrCloud(二)
  4. 基于visual Studio2013解决C语言竞赛题之1085相邻之和素数
  5. qt icon如何显示gif_收集Qt支持的emoji表情-第五弹
  6. Linux下root密码丢失和运行级别错误的解决办法
  7. sigv linux 信号,LINUX 信号处理
  8. 一张图学会python高清图-一张图带你学会Python,学习Python的非常简单,附教程
  9. 排除某个类_Spark Troubleshooting(故障排除)
  10. PHP里面用ichartjs,ichartjs插件的使用
  11. MySQL的基本学习(三)——DD/M/QL三类SQL语言和SQLyog
  12. 如何正确地在Spring Data JPA和Jackson中用上Java 8的时间相关API(即JSR 310也即java.time包下的众神器)...
  13. BZOJ1050 旅行comf
  14. GGSN -- 解释
  15. yii mysql gii_Yii整合mongodb和mysql 使用mongodb gii
  16. 阿里巴巴国际站产品标题的组合和优化方法一览
  17. GPS定位基本原理浅析
  18. 【CocosBuilder 开发系列之一】cocos2dx使用CocosBuilder(编辑器)完成基础骨骼动画
  19. CSS属性以及属性值(样式)
  20. 群晖添加第三方套件源提示无效位置的解决方法(解决群晖 CA 根证书过期的问题)

热门文章

  1. HBase实现分析:HFile
  2. GD32F4移植STM32F4
  3. linux基础学习第五天
  4. Golang基于学习总结
  5. 运行opencv程序后出现runtime error! R6025-pure virtual function call 错误提示的解决方法
  6. EndNote20如何下载并安装中文参考文献格式GBT7714
  7. 电容式触摸芯片在电容式触摸按键中的应用
  8. 动态路由ofps协议配置
  9. 加拿大魁北克投资移民申请费用一览表
  10. 视频翻译软件有哪些?视频该怎么翻译