我们在两个Arduino之间进行了简单的通信。发送器发送数据,接收器接收数据并控制继电器,非常简单。 经过数小时的完美工作,此过程停止。
重置发射器或接收器可以暂时解决问题,但这不是真正的解决方案。
两个Arduino都以相同的方式供电:通过输出5V和2.4A的220V变压器(USB电缆)。我想这没关系,因为该项目可以工作几个小时。
会是内存泄漏吗?我将发布发送方和接收方的代码。
发射机的代码:
#include <SPI.h>
#include <RF24.h>
RF24 radio(7,8);
const byte address = "00001";
void setup() {
pinMode(2, INPUT_PULLUP);
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_LOW);
radio.stopListening();
}
void loop() {
const char text[] = "porta";
radio.write(&text, sizeof(text));
delay(20000);
}
收件人代码:
#include <SPI.h>
#include <RF24.h>
RF24 radio(7,8);
const byte address = "00001";
void setup() {
pinMode(4, OUTPUT); //relay
digitalWrite(4, LOW); //relay
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_LOW);
radio.startListening();
}
void loop() {
if (radio.available()) {
char text[32] = "";
radio.read(&text, sizeof(text));
Serial.println(text);
digitalWrite(4, LOW);
delay(100);
digitalWrite(4, HIGH);
delay(100);
digitalWrite(4, LOW);
delay(100);
digitalWrite(4, HIGH);
delay(1000);
}
}