Arduino Pro Micro + nrf24l01 (не удается подключить)

Тема в разделе "Arduino & Shields", создана пользователем eviltwin, 30 ноя 2013.

  1. prohor-nastya

    prohor-nastya Нерд

    Извините дублирую из другой ветки, очень нужна помощь!

    И снова здравствуйте!
    как оказалось у микро выводы SPI не подключены ни к каким цифровым вход/выходам, как на Arduino Uno, они доступны только на соединителе ICSP и ближайших выводах, маркированных MISO, MOSI и SCK.
    подключив NRF на соответствующие пины она стала видеть каналы. Но информация о настройках модуля все равно не выводится....
    может нужно на других пинах инициализировать?
    используем следующий код.



    Код (C++):
    #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 );
    }
     
  2. parovoZZ

    parovoZZ Гуру

    В этом нет смысла. Мало того, ещё и правилам противоречит.
     
    ИгорьК нравится это.
  3. mrDobryj

    mrDobryj Нерд

    Друзья. Мне сказали что библиотеки нрф24 не подходят под про микро или надо переписывать. Вы стандартными пользовались или всё таки искали ?
     
  4. parovoZZ

    parovoZZ Гуру

    Я с nrf24 вообще без библиотек работаю. Смогу завести на абсолютно любом МК.