使用IRremote库红外遥控家里的电器-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: 奈何col

使用IRremote库红外遥控家里的电器

  [复制链接]
发表于 2013-8-24 13:36 | 显示全部楼层
奈何col 发表于 2013-8-23 12:19
这个不清楚了

[mw_shl_code=c,true]#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

IRsend irsend;
unsigned int buf[85]=
    {3650,1800,600,1050,650,1050,600,1050,650,1000,650,500,600,500,650,1050,600,500,650,1000,650,1000,700,500,550,550,600,500,650,450,600,1100,600,500,650,500,600,1050,650,1050,600,1050,650,500,550,550,600,1050,650,500,3650,1800,550,1100,600,1050,600,1100,600,1100,550,550,600,500,650,500,550,550,600,500,650,450,600,550,600,500,650,1050,600,1050,650,1050,600,1050,650};

void setup()
{
  pinMode(13,OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void dump(decode_results *results) {
  int count = results->rawlen;
  Serial.print("Raw (");
  Serial.print(count, DEC);
  Serial.print("): ");

  for (int i = 0; i < count; i++) {
    if ((i % 2) == 1) {
      Serial.print(results->rawbuf*USECPERTICK, DEC);
    }
    else {
      Serial.print(-(int)results->rawbuf*USECPERTICK, DEC);
    }
    Serial.print(" ");
  }
  Serial.println("");
}


void loop() {
  digitalWrite(13,HIGH);
  delay(1000);
  irsend.sendRaw(buf,85,38);
  delay(3000);
  digitalWrite(13,LOW);
  delay(1000);
  if (irrecv.decode(&results)) {
    dump(&results);
    irrecv.resume();
  }
}[/mw_shl_code]
发表于 2013-9-6 16:02 | 显示全部楼层
我今天测试了一下,代码报错,不知道是什么原因?
微博桌面截图_20130906160149.jpg

点评

前面少个分号  详情 回复 发表于 2013-9-6 21:50
 楼主| 发表于 2013-9-6 21:50 | 显示全部楼层
巴顿的师兄 发表于 2013-9-6 16:02
我今天测试了一下,代码报错,不知道是什么原因?

前面少个分号
发表于 2013-9-25 15:28 | 显示全部楼层
请问下。为什么要把负号删除呢。
发表于 2013-10-27 19:00 | 显示全部楼层
其实第一位删掉不用也可以的。。。
怎么能让它具有虚席功能呢???
发表于 2013-10-28 16:39 | 显示全部楼层
风中的承诺 发表于 2013-8-24 13:36
[mw_shl_code=c,true]#include

int RECV_PIN = 11;

你这代码你在同一电路板实现发送同时接收?
发表于 2013-11-4 16:05 | 显示全部楼层
没有发射模块,只有两根针的发射端,请问能使用吗?
发表于 2013-11-6 17:38 | 显示全部楼层
一个按键的编码是不是太长了点,曾经看过某篇文章,接收的是“十六进制”,编码上有没有更方便处理的方案?

点评

这个帖子里写的是记录信号的变化时间,而非你说的“编码”  详情 回复 发表于 2013-11-6 19:42
 楼主| 发表于 2013-11-6 19:42 | 显示全部楼层
fyp83 发表于 2013-11-6 17:38
一个按键的编码是不是太长了点,曾经看过某篇文章,接收的是“十六进制”,编码上有没有更方便处理的方案? ...

这个帖子里写的是记录信号的变化时间,而非你说的“编码”
发表于 2013-12-13 22:59 | 显示全部楼层
void dump(decode_results *results)
{  int count = results->rawlen;  Serial.print("Raw (");  Serial.print(count, DEC);  Serial.print("): ");   for (int i = 0; i < count; i++) {    if ((i % 2) == 1) {      Serial.print(results->rawbuf[i]*USECPERTICK, DEC);    }     else {      Serial.print(-(int)results->rawbuf[i]*USECPERTICK, DEC);    }    Serial.print(" ");  }  Serial.println("");}
能解释下吗‘
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 03:45 , Processed in 0.149013 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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