极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 34106|回复: 15

arduino红外发射的问题

[复制链接]
发表于 2014-4-26 16:36:26 | 显示全部楼层 |阅读模式
这是一个每秒发射一次红外数据的程序,但是串口接收到的只有32位1,也就是全高电平。怎么回事?
#include <IRremote.h>            
IRsend irsend;                       
void setup()
{
}
void loop()
{
  irsend.sendNEC(1234567891,32);
  delay(1000);
}
回复

使用道具 举报

发表于 2014-4-26 16:59:44 | 显示全部楼层
你只发了一个数“1234567891”,这个数是否溢出了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 17:01:25 | 显示全部楼层
林定祥 发表于 2014-4-26 16:59
你只发了一个数“1234567891”,这个数是否溢出了。

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

使用道具 举报

发表于 2014-4-26 17:18:54 | 显示全部楼层
本帖最后由 林定祥 于 2014-4-26 17:24 编辑
mjyshark 发表于 2014-4-26 17:01
我转换到二进制后发现没益处啊,而且发送其他数也全都是1.


我是用过RAW发数组方式。

“1234567891”转换成16进制为“0x499602d3”,用这个数发下试试看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 19:31:15 | 显示全部楼层
林定祥 发表于 2014-4-26 17:18
我是用过RAW发数组方式。

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

试过了,还是一样啊
回复 支持 反对

使用道具 举报

发表于 2014-4-26 19:53:59 | 显示全部楼层
mjyshark 发表于 2014-4-26 19:31
试过了,还是一样啊

讲讲你怎么发,怎么收的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 20:09:49 | 显示全部楼层
林定祥 发表于 2014-4-26 19:53
讲讲你怎么发,怎么收的。

这是接收程序,硬件就是用一个红外接收头接另一块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
这是接收程序,硬件就是用一个红外接收头接另一块arduino开发板连接电脑。
#include

建议,pin11换成其他脚试一试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-26 20:59:52 | 显示全部楼层
林定祥 发表于 2014-4-26 20:45
建议,pin11换成其他脚试一试。

换成了8脚了,结果还是一样啊。
回复 支持 反对

使用道具 举报

发表于 2014-4-26 22:24:27 | 显示全部楼层
mjyshark 发表于 2014-4-26 20:59
换成了8脚了,结果还是一样啊。

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

使用道具 举报

 楼主| 发表于 2014-4-26 22:38:46 | 显示全部楼层
林定祥 发表于 2014-4-26 22:24
接收管应该5v,不知用对了了吗?建议用一个其他的遥控器收一下,看看收这边是否正常。
同样不知道收发管 ...

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

使用道具 举报

发表于 2014-4-26 23:29:07 | 显示全部楼层
mjyshark 发表于 2014-4-26 22:38
接的是5V,也用其他遥控器试过了,接收一切正常,就是接收我写的发射程序就是不行。刚才试了下把延时改低 ...

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

使用道具 举报

发表于 2014-4-26 23:40:01 | 显示全部楼层
这是一个每秒发射一次红外数据的程序,但是串口接收到的只有32位1,也就是全高电平。怎么回事?

你不妨试试库里的测试代码
里面有个IRtest文件下的程序,如果不行 ,我觉得可能是硬件的问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-27 11:04:11 | 显示全部楼层
Fortware 发表于 2014-4-26 23:40
你不妨试试库里的测试代码
里面有个IRtest文件下的程序,如果不行 ,我觉得可能是硬件的问题

那个TEST程序是发射TEST还是接收TEST?
回复 支持 反对

使用道具 举报

发表于 2014-4-27 19:52:30 | 显示全部楼层
那个TEST程序是发射TEST还是接收TEST?

你没认真看吗
发射的吧
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-5 21:15 , Processed in 0.084322 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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