Помогите разобраться с модулем nRF24L01

Тема в разделе "Arduino & Shields", создана пользователем SDV, 24 мар 2019.

  1. SDV

    SDV Нерд

    Добрый день. Подскажите пожалуйста, в чем может быть проблема?

    Суть такая: подключил модуль nRF24L01 к Ардуино про мини по схеме, как указано на картинке, соединения все припаял. Прошиваю через Ардуино уно. Заливаю скетч, мониторинга каналом. И вот в мониторе порта, вижу что мол все канала заняты… такого быть не может. Подскажите в чем дело?

    Код (C++):
    [code]
    #include <SPI.h>
    #include "nRF24L01.h"
    #include "RF24.h"

    RF24 radio(9,10); // инициализировать модуль на пинах 9 и 10 Для Уно
    //RF24 radio(9,53);// Для Меги

    const uint8_t num_channels = 128;
    uint8_t values[num_channels];
    void setup(void)
    {
      Serial.begin(9600);
      printf_begin();
      radio.begin();
      radio.setAutoAck(false);
      radio.startListening();

      radio.printDetails();  // Вот эта строка напечатает нам что-то, если все правильно соединили.
      delay(5000);              // И посмотрим на это пять секунд.

      radio.stopListening();
      int i = 0;    // А это напечатает нам заголовки всех 127 каналов
      while ( i < num_channels )  {
        printf("%x",i>>4);
        ++i;
      }
      printf("\n\r");
      i = 0;
      while ( i < num_channels ) {
        printf("%x",i&0xf);
        ++i;
      }
      printf("\n\r");
    }
    const int num_reps = 100;

    void loop(void)
    {
      memset(values,0,sizeof(values));
      int rep_counter = num_reps;
      while (rep_counter--) {
        int i = num_channels;
        while (i--) {
          radio.setChannel(i);
          radio.startListening();
          delayMicroseconds(128);
          radio.stopListening();
          if ( radio.testCarrier() )
            ++values[i];
        }
      }
      int i = 0;
      while ( i < num_channels ) {
        printf("%x",min(0xf,values[i]&0xf));
        ++i;
      }
      printf("\n\r");
    }
    int serial_putc( char c, FILE * ) {
      Serial.write( c );
      return c;
    }

    void printf_begin(void) {
      fdevopen( &serial_putc, 0 );
    }
     
    Схема подключения и то что показывает монитор порта:
    https://1drv.ms/f/s!Ai-6GhJNEDRoskufKVM1Y1qLGWCU
     
  2. ImrDuke

    ImrDuke Гик

    Модуль только один?
    На другом нет возможности проверить?
    И как выглядит модуль?
     
  3. SDV

    SDV Нерд

    Модуля два. Оба показывают зашумленность. Сам модуль, с антенкой, черный и стабилизатор напряжения к нему.
     
  4. parovoZZ

    parovoZZ Гуру

    Вот это схема, а не то, что ты показал (обычно на левые ссылки не захожу, но сделал исключение):
    scheme.png
     
    Daniil нравится это.
  5. Un_ka

    Un_ka Гуру