mjyshark 发表于 2014-4-26 16:36:26

arduino红外发射的问题

这是一个每秒发射一次红外数据的程序,但是串口接收到的只有32位1,也就是全高电平。怎么回事?
#include <IRremote.h>            
IRsend irsend;                     
void setup()
{
}
void loop()
{
irsend.sendNEC(1234567891,32);
delay(1000);
}

林定祥 发表于 2014-4-26 16:59:44

你只发了一个数“1234567891”,这个数是否溢出了。

mjyshark 发表于 2014-4-26 17:01:25

林定祥 发表于 2014-4-26 16:59 static/image/common/back.gif
你只发了一个数“1234567891”,这个数是否溢出了。

我转换到二进制后发现没益处啊,而且发送其他数也全都是1.

林定祥 发表于 2014-4-26 17:18:54

本帖最后由 林定祥 于 2014-4-26 17:24 编辑

mjyshark 发表于 2014-4-26 17:01 static/image/common/back.gif
我转换到二进制后发现没益处啊,而且发送其他数也全都是1.

我是用过RAW发数组方式。

“1234567891”转换成16进制为“0x499602d3”,用这个数发下试试看。

mjyshark 发表于 2014-4-26 19:31:15

林定祥 发表于 2014-4-26 17:18 static/image/common/back.gif
我是用过RAW发数组方式。

“1234567891”转换成16进制为“0x499602d3”,用这个数发下试试看。

试过了,还是一样啊

林定祥 发表于 2014-4-26 19:53:59

mjyshark 发表于 2014-4-26 19:31 static/image/common/back.gif
试过了,还是一样啊

讲讲你怎么发,怎么收的。

mjyshark 发表于 2014-4-26 20:09:49

林定祥 发表于 2014-4-26 19:53 static/image/common/back.gif
讲讲你怎么发,怎么收的。

这是接收程序,硬件就是用一个红外接收头接另一块arduino开发板连接电脑。
#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}

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

林定祥 发表于 2014-4-26 20:45:46

mjyshark 发表于 2014-4-26 20:09 static/image/common/back.gif
这是接收程序,硬件就是用一个红外接收头接另一块arduino开发板连接电脑。
#include



建议,pin11换成其他脚试一试。

mjyshark 发表于 2014-4-26 20:59:52

林定祥 发表于 2014-4-26 20:45 static/image/common/back.gif
建议,pin11换成其他脚试一试。

换成了8脚了,结果还是一样啊。

林定祥 发表于 2014-4-26 22:24:27

mjyshark 发表于 2014-4-26 20:59 static/image/common/back.gif
换成了8脚了,结果还是一样啊。

接收管应该5v,不知用对了了吗?建议用一个其他的遥控器收一下,看看收这边是否正常。
同样不知道收发管子是否用对,分开试一下吧,看看问题出在哪儿。

mjyshark 发表于 2014-4-26 22:38:46

林定祥 发表于 2014-4-26 22:24 static/image/common/back.gif
接收管应该5v,不知用对了了吗?建议用一个其他的遥控器收一下,看看收这边是否正常。
同样不知道收发管 ...

接的是5V,也用其他遥控器试过了,接收一切正常,就是接收我写的发射程序就是不行。刚才试了下把延时改低点后发现时其他数据,但每次接收到都不一样,估计是乱码。是否和延时有关?

林定祥 发表于 2014-4-26 23:29:07

mjyshark 发表于 2014-4-26 22:38 static/image/common/back.gif
接的是5V,也用其他遥控器试过了,接收一切正常,就是接收我写的发射程序就是不行。刚才试了下把延时改低 ...

这样接收端是正常的,发射端建议用raw方式,主要raw可以定义发射频率,担心是否两边时钟差的太多造成不能稳定接收。

Fortware 发表于 2014-4-26 23:40:01

这是一个每秒发射一次红外数据的程序,但是串口接收到的只有32位1,也就是全高电平。怎么回事?
你不妨试试库里的测试代码
里面有个IRtest文件下的程序,如果不行 ,我觉得可能是硬件的问题

mjyshark 发表于 2014-4-27 11:04:11

Fortware 发表于 2014-4-26 23:40 static/image/common/back.gif
你不妨试试库里的测试代码
里面有个IRtest文件下的程序,如果不行 ,我觉得可能是硬件的问题

那个TEST程序是发射TEST还是接收TEST?

Fortware 发表于 2014-4-27 19:52:30

那个TEST程序是发射TEST还是接收TEST?
你没认真看吗
发射的吧
页: [1] 2
查看完整版本: arduino红外发射的问题