一段时间后,通过nRF24L01模块的两个Arduino之间的通信将停止

时间:2019-09-13 15:23:09

标签: memory-leaks arduino

我们在两个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);
    }
}

0 个答案:

没有答案