7.2的例程有些不懂得请教下-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3900|回复: 8

[已解决] 7.2的例程有些不懂得请教下

[复制链接]
发表于 2014-6-11 10:19 | 显示全部楼层 |阅读模式
请教下
#include <IRremote.h>
int led=5;
int RECV_PIN = 11;
char n;
char m;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
  pinMode(5,OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void loop()
{
  if (irrecv.decode(&results))
  {
    Serial.println(results.value, HEX);
    irrecv.resume();
  }

switch(results.value)
{
case  FFA25D: digitalWrite(led,LOW) ;
break;
case  1:  digitalWrite(led,HIGH);
break;


}
}

要怎么改下啊,
QQ图片20140611101803.jpg
发表于 2014-6-11 10:55 | 显示全部楼层
改成 0xFFA25D
发表于 2014-6-11 11:38 | 显示全部楼层
FFA25D未定义,或者如奈何说的改成0xFFA25D或者定义一个变量或者宏起名叫FFA25D然后赋值
 楼主| 发表于 2014-6-11 11:46 | 显示全部楼层
qhdtc5 发表于 2014-6-11 11:38
FFA25D未定义,或者如奈何说的改成0xFFA25D或者定义一个变量或者宏起名叫FFA25D然后赋值 ...

恩,可以了,再问个问题irsend.sendRaw(ch1,67,38)这个函数会一次性将数组ch1里面的数据发送出去吗,我用的2560的板子;
#include <IRremote.h>
IRsend irsend;
unsigned int ch1[]={9000,4450,650,450,650,500,600,550,550,550,600,
500,650,500,600,500,600,500,600,1650,600,1650,600,1650,550,1700,
600,1600,600,1650,600,1650,650,1600,600,1650,600,500,600,1650,600,
500,600,500,650,500,600,1650,600,550,550,550,600,1650,550,550,600,
1650,550,1700,600,1650,600,500,650,1600,600};
void setup()
{
Serial.begin(9600);
}

void loop()
{
irsend.sendRaw(ch1,67,38);
delay(5000);
Serial.println("just ");

}
看串口时会显示just,但我用另一块板子做的接收端却接收不到数据,书上和论坛里用arduino Uno 做的,接的3口,那用2560时接口一样吗?
 楼主| 发表于 2014-6-11 11:47 | 显示全部楼层

恩,可以了
发表于 2014-6-11 11:54 | 显示全部楼层
我这没有2560板子,需要对照图纸才知道3口是不是相同的;

看IRsend::sendRaw代码,第二个参数是发送数据长度,ch1里面有多少数据,你就把第二个参数改成多少
 楼主| 发表于 2014-6-11 12:02 | 显示全部楼层
qhdtc5 发表于 2014-6-11 11:54
我这没有2560板子,需要对照图纸才知道3口是不是相同的;

看IRsend::sendRaw代码,第二个参数是发送数据长 ...

找到原因了,我接收用的mini,发送用的2560,接收不到,换成了两个mini板就可以通信了
 楼主| 发表于 2014-6-11 15:00 | 显示全部楼层
qhdtc5 发表于 2014-6-11 11:54
我这没有2560板子,需要对照图纸才知道3口是不是相同的;

看IRsend::sendRaw代码,第二个参数是发送数据长 ...

我想发送多维数组,这样写貌似不对irsend.sendRaw(ch[68][1],68,38);
在文件开始我定义了:unsigned int ch[68][10];
应该怎么改下,才能正确发送啊。。。。。。。。。。
发表于 2014-6-11 22:36 | 显示全部楼层
C数组下标从0开始,如果你想发送二维数组,这样写:
IRsend.sendRaw(ch[68],68,38)或者IRsend.sendRaw(&ch[68][0],68,38)
数组这样定义:unsigned int ch[x][y]其中的y的值要大于等于68
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-5 10:10 , Processed in 0.081001 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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