笑冰冰 发表于 2015-12-19 19:49:29

求助315M模块程序问题


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

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

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

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

void loop() {
if (mySwitch.available())
{
if(mySwitch.getReceivedValue()==14505456)//(我试过int value=mySwitch.getReceivedValue(),不能用)
{
digitalWrite(3, HIGH);
delay(10);             //消除重复的信号
}
if(mySwitch.getReceivedValue()==14505423)
{
digitalWrite(3, LOW);
delay(10);
}
                         //此处省略一些按键代码
mySwitch.resetAvailable();
}

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

chensg 发表于 2015-12-20 10:46:02

可能是delay时间太短,那个模块发射数据慢需等较长时间,可改长时间试试。

笑冰冰 发表于 2015-12-20 17:45:20

好了。谢谢。我换100了。没问题了

笑冰冰 发表于 2015-12-20 22:22:13

不是delay的问题。现在还没找到原因,插三路继电器的时候没一次出问题。只要四路插上,过一段时间继电器一出滋滋的电流声就不行了。拔掉任意一路才能工作。供电的问题么?电流小?

PINKWALKMAN 发表于 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啊。唉

cciew 发表于 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 static/image/common/back.gif
mySwitch.enableReceive(0);// Receiver on inerrupt 0 => that is pin #2
}



把零直接该成你想要的pin,我的nano 都没问啊。12,11,10我都用过
页: [1]
查看完整版本: 求助315M模块程序问题