nRF24L01+ : побеждаем модуль.

Тема в разделе "Проводная и беспроводная связь", создана пользователем ИгорьК, 19 июн 2014.

  1. Zap.ck

    Zap.ck Нуб

    спасибо попробую.
     
  2. mr_Bishop

    mr_Bishop Нуб

    Добрый день, скажите пожалуйста вам удалось решить проблему, столкнулся с аналогичной ситуацией, перепробовал все не пойму в чем проблема?
     
  3. cfif

    cfif Нерд

    возникли проблемы с подключением двух nrf. Почитал форум - часть вопросов решил. Удалось законектить. Но есть нюанс)) на передающей nrf указываю канал, например 62, а приемник читает данные на канале 57. Вот тут застрял. В чем может быть проблема?
     
  4. parovoZZ

    parovoZZ Гуру

    Канал 62 - это что?
     
  5. Un_ka

    Un_ka Гуру

    Как вы это выяснили? Покажите код.
     
  6. cfif

    cfif Нерд

    код передатчика:
    Код (C++):

    #include <SPI.h>
    #include <RF24.h>
    #include "printf.h"
    RF24 radio(9, 10); // порты D9, D10: CSN CE
    const uint32_t pipe = 111156789; // адрес рабочей трубы; 111156789

    byte data;
    void setup() {
      Serial.begin(9600);
      printf_begin();
      Serial.println("TransmitterTester ON "); //Оповещаем о включении ардуины
      radio.begin();                      // Запускаем радиомодуль
      delay(3000);                        // Ждем загрузку и стабилизации его работы
      radio.setDataRate(RF24_250KBPS);    // Скорость обмена данными RF24_1MBPS или RF24_2MBPS (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS)
      radio.setCRCLength(RF24_CRC_8);     // Размер контрольной суммы 8 bit или 16 bit
      radio.setPALevel(RF24_PA_MIN);      // Уровень питания усилителя RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH and RF24_PA_MAX ((RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm, RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm).
      radio.setChannel(0x62);             // Установка канала
      radio.setAutoAck(false);            // Отключаем автоответ на пакеты
      radio.powerUp();                    // Включение или пониженное потребление powerDown - powerUp
      radio.stopListening();              // Остановить прослушивание радиоэфира
      radio.printDetails();               // Вывод текущих параметров радиомодуля
      radio.openWritingPipe(pipe);        // открыть трубу на отправку
      Serial.println("Start send...");    // Оповещаем о начале работы
    }
    void loop() {
      data = 109;
      radio.write(&data, 1);
      delay(24);
    }
    код приемника:
    Код (C++):

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

    RF24 radio(9, 10); // порты D9, D10: CSN CE

    const uint32_t pipe = 111156789; // адрес рабочей трубы;
    byte data[1];
    int scn;  //счетчик циклов прослушивания эфира
    int sg;  //счетчик числа принятых пакетов с передатчика

    void setup() {
      Serial.begin(9600);
      Serial.println("ReceiverTester ON");

      radio.begin();  // инициализация
      delay(2000);
      radio.setDataRate(RF24_250KBPS); // скорость обмена данными RF24_1MBPS или RF24_2MBPS
      radio.setCRCLength(RF24_CRC_8); // размер контрольной суммы 8 bit или 16 bit
      radio.setChannel(0x57);         // установка канала
      radio.setAutoAck(false);       // автоответ
      radio.openReadingPipe(1, pipe); // открыть трубу на приём
      radio.startListening();        // приём
    }

    void loop() {
      if (scn < 1000)
      { // прослушивание эфира
        if (radio.available())
        {
          radio.read(data, 1);

          if (data[0] == 109) {
            sg++;
          }
        }
      } else {//всего принято
        {
          Serial.println("Принято: " + String(sg) + " пакетов");
          sg = 0;
        }
        scn = 0;
      }
      scn++;
      delay(20);

      if (scn >= 1000) scn = 1000; //защита от переполнения счетчика
    }
     
    если запустить сканер каналов, то информация передается на каналах с 54 по 5В
     
  7. parovoZZ

    parovoZZ Гуру

    wi-fi соседский или радиомышь вещает. Собственно, этот сканер ничего не доказывает и не опровергает. Единственная его цель - выбор наименее шумного канала.
     
  8. cfif

    cfif Нерд

    но приемник пишет, что принято 740 пакетов на 57 канале. А на 62 и других каналах - принято 0 пакетов. Если отключаю передатчик, то помехи на каналах с 54 по 5В пропадают
     
  9. parovoZZ

    parovoZZ Гуру

    ну если так сильно смещены частотные каналы, то выкинь их перепаяй кварцы на качественные.
     
  10. cfif

    cfif Нерд

    понял))) ну меня этот факт не сильно смущает - главное - работает) хотелось из спортивного интереса разобраться.