极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: 37℃画面感

求助 红外遥控,发送无效

[复制链接]
 楼主| 发表于 2013-8-30 00:37:37 | 显示全部楼层
本帖最后由 37℃画面感 于 2013-8-30 00:39 编辑

终于搞定了.感谢@瘦网虫的帮助.看了他的文章另外经过多次试验.具体方法如下:

  1. #include <IRremote.h>
  2. //开关按钮
  3. unsigned int bStop[]={1338,386,1293,392,457,1186,1340,388,1299,386,458,1188,497,1186,499,1186,499,1187,496,1186,500,1187,1339,7087,1343,386,1300,385,457,1187,1340,386,1299,386,457,1185,501,1186,495,1189,497,1189,497,1188,499,1189,1337,7089,1269,458,1300,386,456,1187,1342,384,1301,384,457,1187,496,1186,500,1188,496,1188,497,1187,493,1193,1338,7095,1333,389,1298,387,457,1190,1335,389,1227,458,453,1190,496,1192,494,1195,486,1194,493,1192,495,1190,1338,7089,1336,390,1295,390,383,1260,1338,389,1294,391,455,1190,490,1194,494,1191,491,1193,493,1193,492,1192,1268,7161,1268,458,1227,458,450,1195,1268,458,1294,391,384,1259,426,1260,490,1196,424,1260,425,1261,495,1189,1269,7161,1268,458,1227,458,384,1259,1269,458,1227,458,453,1192,425,1259,426,1260,425,1260,425,1261,424,1260,1269,7162,1267,458,1227,458,384,1261,1268,458,1227,458,384,1259,426,1261,424,1260,425,1259,426,1261,424,1260};
  4. //风速按钮
  5. unsigned int bSpeed[]={1256,459,1226,459,453,1191,1334,392,1293,392,383,1262,423,1261,424,1263,491,1191,425,1262,1266,458,383,8006,1334,391,1226,459,453,1192,1266,458,1227,459,451,1195,421,1262,423,1262,493,1192,423,1263,1265,459,384,8006,1334,391,1226,459,383,1261,1335,390,1227,458,383,1262,491,1194,424,1262,490,1196,423,1262,1335,390,452,7936,1268,458,1227,459,383,1264,1332,391,1298,387,453,1193,487,1199,491,1192,489,1198,422,1261,1267,458,384,8006,1266,458,1293,393,453,1192,1337,389,1298,387,452,1194,423,1262,423,1265,487,1195,423,1261,1336,352,489,7937,1267,459,1295,390,450,1194,1336,389,1227,459,383,1262,423,1262,423,1263,422,1262,492,1193,1267,459,454,7936,1266,459,1295,390,383,1262,1266,459,1226,458,450,1196,422,1262,490,1194,424,1260,425,1263,1265,458,383,8006,1266,459,1226,459,383,1262,1336,389,1226,459,451,1194,424,1262,489,1196,423,1263,422,1261,1267,459};
  6. //摇头按钮
  7. unsigned int bShake[]={1336,350,1336,384,457,1188,1342,383,1227,458,457,1190,492,1193,1338,385,458,1189,496,1190,492,1193,491,7939,1335,386,1297,388,457,1192,1336,385,1301,383,455,1192,493,1193,1334,354,490,1192,492,1194,489,1194,494,7937,1332,357,1260,458,453,1194,1264,458,1227,458,451,1198,485,1201,1263,458,384,1265,487,1199,419,1266,418,8044,1228,458,1228,458,384,1265,1263,425,1260,424,418,1265,420,1265,1263,424,418,1265,420,1264,421,1264,421,8008,1264,458,1227,425,417,1266,1263,424,1261,458,384,1266,419,1265,1263,423,419,1264,421,1266,419,1265,420,8009,1264,424,1261,458,384,1265,1264,425,1260,425,417,1265,420,1266,1263,425,417,1265,420,1265,420,1266,419,8009,1263,427,1258,424,418,1265,1263,458,1228,426,416,1266,419,1266,1263,425,417,1265,420,1265,420,1265,420,8009,1263,425,1261,457,384,1265,1263,426,1259,424,418,1265,420,1264,1264,458,384,1264,421,1264,421,1266};
  8. //定时按钮
  9. unsigned int bTimer[]={1265,423,1334,387,383,1263,1331,393,1294,392,383,1263,422,1264,421,1261,1267,421,422,1259,493,1196,492,7924,1279,424,1261,459,383,1263,1333,390,1227,458,455,1192,422,1262,423,1262,1266,459,452,1194,423,1264,492,7938,1334,389,1298,386,453,1194,1334,389,1293,393,383,1262,494,1192,422,1261,1334,391,452,1195,493,1192,493,7936,1334,390,1298,387,450,1196,1335,355,1334,386,451,1194,491,1194,495,1190,1335,352,491,1192,493,1194,492,7936,1337,388,1296,352,491,1193,1265,459,1299,386,454,1193,492,1193,493,1190,1266,458,384,1262,492,1193,494,7936,1265,458,1298,387,384,1264,1333,356,1331,389,454,1190,424,1262,423,1263,1333,391,451,1196,421,1264,421,8008,1264,458,1294,391,384,1261,1337,388,1295,391,452,1195,422,1264,490,1193,1266,424,488,1193,492,1193,422,8006,1335,390,1291,394,384,1264,1265,458,1295,390,384,1263,422,1262,423,1262,1331,394,450,1197,422,1262};
  10. IRsend irsend;
  11. void setup()
  12. {
  13.                 Serial.begin(9600);
  14. }

  15. void loop()
  16. {
  17.                  if (Serial.read()!=-1)
  18.                 {
  19.                                 Serial.println( "SendIR");
  20.                                 irsend.sendRaw(bTimer, sizeof(bTimer),38);
  21.                 }
  22.                 delay(40);
  23.                
  24. }
复制代码


操作步骤:
1.用逻辑分析仪获取原来红外遥控器的数据

2.导出数据


3.导出的CSV文件在Excel里计算



4.将计算结果发送出去就可以了(由于数据要放在数组里,数据比较多)
5. 此步骤是整理数据的一个方法,不是必须的 <1>先把Excel计算结果考到一个txt文件(excel导出来,每行都会自动带一个换行\n 用python主要是要把\n去掉),然后用一段python来转换成程序可以用的1234,2323,3223.... 这种形式,然后可以直接考到程序中,省得改
python 如下

import re
p1=re.compile("\s")
file=open("d://a.txt","r")
output=""
for line in file:
    output+=line+","
output=re.subn(p1,"",output);
print (output)

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-2 12:02 , Processed in 0.041035 second(s), 15 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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