Помогите разобраться с датчиком NRF24L01+PA+LNA

не можем заставить работать FM датчик NRF24L01+PA+LNA :) Нам нужно чтобы fm датчик с корабля передавал на другой fm данные которые получает, а тот в свою очередь передавал полученные данные в COM-порт для дальнейших действий в другой программе. Вот коды которые я использовала, но они не работают:

Передатчик:

#include <SPI.h>                                               // Подключаем библиотеку для работы с шиной SPI
#include <nRF24L01.h>                                          // Подключаем файл настроек из библиотеки RF24
#include <RF24.h>                                              // Подключаем библиотеку для работы с nRF24L01+
RF24           radio(9, 10);                                   // Создаём объект radio для работы с библиотекой RF24, указывая номера выводов nRF24L01+ (CE, CSN)
int            data[1];                                        // Создаём массив для передачи данных (так как мы будем передавать только одно двухбайтное число, то достаточно одного элемента массива типа int)
                                                               // Для данного примера, можно использовать не массив data из одного элемента, а переменную data типа int
void setup(){
    radio.begin();                                             // Инициируем работу nRF24L01+
    radio.setChannel(5);                                       // Указываем канал передачи данных (от 0 до 127), 5 - значит передача данных осуществляется на частоте 2,405 ГГц (на одном канале может быть только 1 приёмник и до 6 передатчиков)
    radio.setDataRate     (RF24_1MBPS);                        // Указываем скорость передачи данных (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS), RF24_1MBPS - 1Мбит/сек
    radio.setPALevel      (RF24_PA_HIGH);                      // Указываем мощность передатчика (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm)
    radio.openWritingPipe (0xAABBCCDD11LL);                    // Открываем трубу с идентификатором 0xAABBCCDD11 для передачи данных (на одном канале может быть открыто до 6 разных труб, которые должны отличаться только последним байтом идентификатора)
}
void loop(){
    data[0] = "CHEBUREK 189";                                  // считываем значение с аналогового входа A0
    radio.write(&data, sizeof(data));                          // отправляем данные из массива data указывая сколько байт массива мы хотим отправить. Отправить данные можно с проверкой их доставки: if( radio.write(&data, sizeof(data)) ){данные приняты приёмником;}else{данные не приняты приёмником;}
    delay(50);                                                 // устанавливаем задержку на 50 мс, за это время приемник успеет принять и обработать данные этого и другого передатчика.
}

Приёмник:

#include <SPI.h> // Подключаем библиотеку
#include <nRF24L01.h> // Подключаем файл настр
#include <RF24.h> // Подключаем библиотеку

RF24 radio(9, 10); // Создаём объект radio


int data[1]; // Создаём массив
uint8_t pipe; // Создаём переменную
// Для данного примера,
void setup(){
  Serial.begin(9600);
  delay(1000);

  radio.begin(); // Инициируем работу nRF
  radio.setChannel(5); // Указываем канал приём
  radio.setDataRate (RF24_1MBPS); // Указываем скорость пе
  radio.setPALevel (RF24_PA_HIGH); // Указываем мощность пе
  radio.openReadingPipe (1, 0xAABBCCDD11LL); // Открываем 1 трубу с и
  radio.openReadingPipe (2, 0xAABBCCDD22LL); // Открываем 2 трубу с и
  radio.startListening (); // Включаем приемник, на
// radio.stopListening (); // Выключаем приёмник, е
}
void loop(){
  if(radio.available(&pipe)){ // Если в буфере имеются
    radio.read(&data, sizeof(data)); // Читаем данные в масси
  if(pipe==1){Serial.println("111");} // Если данные пришли от
  if(pipe==2){Serial.println("222");} // Если данные пришли от
}
}

Этот сайт - единственное что я нашла где всё более менее всё работает и откуда я всё брала


Ответы (0 шт):