极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15871|回复: 5

格力空調控制

[复制链接]
发表于 2013-8-9 21:39:17 | 显示全部楼层 |阅读模式
本帖最后由 Be1ieve 于 2013-8-9 21:40 编辑

開始還是要推薦blueleafxp這篇:http://www.geek-workshop.com/thread-5146-1-1.html
還有瘦網蟲這篇:http://www.geek-workshop.com/thread-5095-1-1.html
沒有上面那兩篇大概我也解不出來,雖然最後還是買邏輯分析儀來解最快
房間空調用的是YAD0F,用IRremote解至少長度要開到280,加上定時長度要420

下面是控制代碼:
  1. /*
  2. * 格力頭: 9000 高 4400 低
  3. */
  4. void sendGreeHeader(){
  5.   irsend.mark(9000);
  6.   irsend.space(4400);
  7. }

  8. /*
  9. * 格力編碼:650高 1600或550低
  10. * 編碼中斷超過10000會出問題?先以迴圈解
  11. */
  12. void sendGreeMark(int time){
  13.   irsend.mark(650);
  14.   while(time > 10000){
  15.     irsend.space(10000);
  16.     time -= 10000;
  17.   }
  18.   irsend.space(time);
  19. }

  20. /*
  21. * 送整組編碼,單BIT壓縮
  22. */
  23. void sendGreeBits(byte* irCode, int length){
  24.   
  25.   for(int i=0 ; length > 0 ; i++){ // Has unsent codes
  26.     byte bitMask = 0x80; // Highest bit of a Byte
  27.     int bitLength = (length >= 8)? 8:(length % 8);
  28.     for(int j=0 ; j < bitLength ; j++){
  29.       if(irCode[i] & bitMask) sendGreeMark(1600); // Signal high
  30.       else sendGreeMark(550); // Signal low
  31.       bitMask >>= 1; // Shift right
  32.     }
  33.     length -= 8;
  34.   }
  35. }

  36. /*
  37. * 格力編碼組:頭+35碼+中斷+32碼+中斷
  38. */

  39. void sendShortGreeCode(byte *code){
  40.   sendGreeHeader();
  41.   sendGreeBits(&code[0],35); // 35 bits in 5 bytes
  42.   sendGreeMark(20000);
  43.   sendGreeBits(&code[5],32); // 32 bits in 4 bytes
  44.   sendGreeMark(40000);
  45. }

  46. /*
  47. * 長編碼:兩段短編碼組成
  48. */
  49. void sendLongGreeCode(byte *code){
  50.   sendShortGreeCode(&code[0]);
  51.   sendShortGreeCode(&code[9]);
  52. }
复制代码

附件是用分析儀解碼的方式最後再用byte方式存起來就變成下面這樣:
  0x90, 0x50, 0x04, 0x0A, 0x40,
  0x00, 0x44, 0x00, 0x0F,
  0x90, 0x50, 0x04, 0x0E, 0x40,
  0x00, 0x00, 0x00, 0x0B,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-8-17 10:34:54 | 显示全部楼层
请问一下遥控器的编码规则是怎么找到的呀?
我想直接发送raw格式的,总是失败,会不会是dump出来的代码有问题?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-17 22:19:35 | 显示全部楼层
建議先看這個http://www.geek-workshop.com/thread-5146-1-1.html
blueleafxp是把整個編碼長度定在270以下,如果解出來的長度頂到270就加大吧

dump出來的第一碼估計是完整編碼要求的間隔,接下來的就是一正一負的訊號
複製到最後面會少一個負的訊號,補個間隔進去就完成了

另外如果用uno要注意因為只有1K內存,raw碼太長很容易滿出來
回复 支持 反对

使用道具 举报

发表于 2013-11-26 22:29:01 | 显示全部楼层
您好 请问有格力遥控器的红外编码规则说明吗 它的35+32代表的意思
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-11-26 23:59:15 | 显示全部楼层
編碼規則大概要看格力肯不肯放出來,或有沒有人去解
這邊的數據都是在遙控器設定後讀到的
回复 支持 反对

使用道具 举报

发表于 2018-6-4 11:57:00 | 显示全部楼层
https://wenku.baidu.com/view/2197b3400b4e767f5bcfce34.html
--格力空调遥控器红外编码透析(长码)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-24 22:16 , Processed in 0.043886 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表