Привет мир с NRF24L01 - PullRequest
       8

Привет мир с NRF24L01

0 голосов
/ 24 сентября 2018

У меня есть Arduino и Duinotech NRF24L01, я пытаюсь отправить строку «Hello world» с ошибкой маньяка в библиотеке RF24, однако, я думаю, что она не может обнаружить входящий радиосигнал.

    #include <SPI.h>
    #include "nRF24L01.h"
    #include "RF24.h"

    RF24 radio(7, 8); // CE, CSN

    const uint64_t pipe = 0xF0F0F0F0E1L;
    void setup() {
      Serial.begin(9600);
      radio.begin();
      radio.openReadingPipe(0, pipe);
      radio.startListening();

    }

    void loop() {
      if (radio.available()) {
        char text[32] = "";
        radio.read(&text, sizeof(text));
        Serial.println(text);
      }
      else {
        Serial.println("Data was not found"); 
      }

В прочитанном коде всегда будут выполняться данные, не найденные.Это заставляет меня думать, что, возможно, он вообще не находит РЧ-сигнал.

Вот код, который записывает данные.

 #include <SPI.h>
 #include "nRF24L01.h"
 #include "RF24.h"

 RF24 radio(7, 8); // CE, CSN
 int text = 1;
 const uint64_t pipe = 0xF0F0F0F0E1LL;

 void setup() {
   Serial.begin(9600); 
   radio.begin();
   radio.openWritingPipe(pipe);
   radio.stopListening();
 }
void loop() {
  radio.write(&text, sizeof(text)); 
  Serial.println("Sending Data");
  delay(1000); 
 }

1 Ответ

0 голосов
/ 27 сентября 2018

Попробуйте это

Для передатчика Вместо const uint64_t pipe = 0xF0F0F0F0E1LL; используйте const byte address[6] = "00001"; в качестве адреса и затем отмените настройку, как показано ниже:

void setup() {
  radio.begin();
  radio.openWritingPipe(address);
  radio.setPALevel(RF24_PA_MIN);
  radio.stopListening();
}

Затем убедитесь, что у вас естьзначение, установленное для передаваемой тестовой переменной, как указано ниже

 void loop() {
      const char text[] = "Hello World"; 
      radio.write(&text, sizeof(text));
      Serial.println("Sending Data");
      delay(1000);
    }

На стороне получателя этот код имеет значение

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00001";
void setup() {
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(0, address);
  radio.setPALevel(RF24_PA_MIN);
  radio.startListening();
}
void loop() {
  if (radio.available()) {
    char text[32] = "";
    radio.read(&text, sizeof(text));
    Serial.println(text); //This will print out the received value 
  }
}

PS: убедитесь, что все соединения выполнены справаконтакты

И вы можете проверить правильность подключения микросхемы NRF24L01, добавив приведенный ниже код

bool result = radio.isChipConnected ();

Serial.println (result);

. На последовательном мониторе должна выводиться 1, если микросхема NRF24L01 подключена правильно

...