极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15073|回复: 7

求助315M模块程序问题

[复制链接]
发表于 2015-12-19 19:49:29 | 显示全部楼层 |阅读模式

连接如图
315遥控器输出控制信号给315Mhz接收模块。arduino接收信号并发送控制。
程序现在控制几次后就死掉。需要按arduino 重启键才能使用。
代码如下

  1. #include <RCSwitch.h>
  2. RCSwitch mySwitch = RCSwitch();

  3. void setup() {
  4.   pinMode(3, OUTPUT);
  5.   pinMode(4, OUTPUT);
  6.   pinMode(5, OUTPUT);
  7.   pinMode(6, OUTPUT);

  8.   mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
  9. }

  10. void loop() {
  11. if (mySwitch.available())
  12. {
  13.   if(mySwitch.getReceivedValue()==14505456)  //(我试过int value=mySwitch.getReceivedValue(),不能用)
  14.   {
  15.   digitalWrite(3, HIGH);
  16.   delay(10);             //消除重复的信号
  17.   }
  18.   if(mySwitch.getReceivedValue()==14505423)
  19.   {
  20.   digitalWrite(3, LOW);
  21.   delay(10);
  22.   }
  23.                          //此处省略一些按键代码
  24.   mySwitch.resetAvailable();
  25. }
复制代码


是程序问题么??有时候按键几十次没事。但最终程序总会死掉!按任何键都不管用了。
我是新手请高手指点下。

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2015-12-20 10:46:02 | 显示全部楼层
可能是delay时间太短,那个模块发射数据慢需等较长时间,可改长时间试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-20 17:45:20 | 显示全部楼层
好了。谢谢。我换100了。没问题了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-20 22:22:13 | 显示全部楼层
不是delay的问题。现在还没找到原因,插三路继电器的时候没一次出问题。只要四路插上,过一段时间继电器一出滋滋的电流声就不行了。拔掉任意一路才能工作。供电的问题么?电流小?
回复 支持 反对

使用道具 举报

发表于 2015-12-21 08:24:58 | 显示全部楼层
电磁干扰的可能性大,先把继电器去掉测试一下,有可能是继电器干扰的缘故。或者把继电器的5V供电电源与arduino板子电源分开试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-12-24 09:46:32 | 显示全部楼层
本帖最后由  笑冰冰 于 2015-12-24 09:50 编辑

谢谢网友们的回答。我找到问题了,是5V供电的问题!默认是4路全通电,这样5V电源板的供电被拉到3.4V左右,继电器模块使用没问题。但315模块电压低就不干活了。继电器模块和315模块改为arduino 板供电了。默认4路继电器关的状态,我做太阳能控制器无线控制用,就两路常闭或常开,两路点动。ardunino的电够用了。
电源转换板被忽悠了么?四路继电器模块我用万用表就260mA电流。不应该拉低到3.4V啊。唉
回复 支持 反对

使用道具 举报

发表于 2016-3-30 16:21:45 | 显示全部楼层
mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

可以用其他中断吗? 经试验只能用mySwitch.enableReceive(0)和mySwitch.enableReceive(1);  如果用第三个中断,该怎么设置,用的atmega16芯片
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-19 15:45:45 | 显示全部楼层
cciew 发表于 2016-3-30 16:21
mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2
}

把零直接该成你想要的pin,我的nano 都没问啊。12,11,10我都用过
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-20 16:51 , Processed in 0.069472 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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