nRF24L01

Тема в разделе "Проводная и беспроводная связь", создана пользователем vit373, 11 апр 2017.

  1. vit373

    vit373 Нуб

    Добрый день!!! Кто подскажет в чем проблема и как это исправить приобрел два модуля(один точно рабочий ) но не могу их соединить, загружаю скетч теста выдает такую информацию, я так понимаю у них разная скорость передачи данных????
    upload_2017-4-11_22-55-39.png

    upload_2017-4-11_22-57-8.png



    И на одном модуле при тестировании порта все время разная скорость. upload_2017-4-11_22-59-42.png
     
    Последнее редактирование: 11 апр 2017
  2. sslobodyan

    sslobodyan Гик

    Вообще-то это тест наличия несущей в каналах для определения чистых каналов. Или проверки некой работоспособности модуля. На установленную скорость в этом скетче не обращайте внимания. Ну или установите желательную принудительно в сетапе.
     
  3. vit373

    vit373 Нуб

    Пробывал поменять скорость,безуспешно
     
  4. sslobodyan

    sslobodyan Гик

    Что безуспешно? Мне показалось, что я достаточно подробно написал, что данный скетч только для проверки чистоты каналов. Никаких соединений с другими устройствами не производится. И что скорость в нем по барабану - проверяется наличие несущей.
     
  5. vit373

    vit373 Нуб

    У меня два модуля заливаю один скетч, изменяю скорость на одном она применяется на другом модуле нет
     
  6. vit373

    vit373 Нуб

    И я так понимаю во второй строчке сверху не должно быть нулей?
     
  7. sslobodyan

    sslobodyan Гик

    покажите полностью скетч и скрины результата с обоих модулей
     
  8. vit373

    vit373 Нуб

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

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

    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;
    }
    }
    int i = 0;
    while ( i < num_channels ) {
    printf("%x",min(0xf,values&0xf));
    ++i;
    }
    printf("\n\r");
    }
    int serial_putc( char c, FILE * ) {
    Serial.write( c );
    return c;
    }

    void printf_begin(void) {
    fdevopen( &serial_putc, 0 );
    }
     
  9. vit373

    vit373 Нуб

    Первые два скрина в начале статьи это они
     
  10. vit373

    vit373 Нуб

    На дном модуле каждый раз при открытии монитора порта последнии четыре строчки всегда разные кроме модели модуля
     
  11. vit373

    vit373 Нуб

    RX_ADDR_P0-1 = 0xe7e7e7e7e7 0xc2c2c2c2c2
    TX_ADDR = 0xe7e7e7e7e7

    Я так понимаю в этих строчках не должно быть нулей?
     
  12. sslobodyan

    sslobodyan Гик

    В инициализации можно добавить принудительное выставление адресов труб
    Код (C++):
    byte addresses[][6] = {"1Node","2Node"};

    radio.openWritingPipe(addresses[1]);
    radio.openReadingPipe(1,addresses[0]);
     
    И проверить поменяются ли ваши адреса реально (2,3 и 4 строчки вывода). Если меняются - все подключено правильно и ядро модуля живое. Иначе модуль на пропайку или сразу в мусор.
     
  13. sslobodyan

    sslobodyan Гик

    Кстати, модули с квадратной микрухой или черной кляксой?
     
  14. vit373

    vit373 Нуб

    С квадратной
     
  15. sslobodyan

    sslobodyan Гик

    Уже лучше. Ну че там, адреса устанавливаются?
     
  16. ИгорьК

    ИгорьК Гуру

    Какой знакомый код...
     
    MickNich нравится это.
  17. vit373

    vit373 Нуб

    Нет адрес не меняется(
     
  18. sslobodyan

    sslobodyan Гик

    Печалька... Зато все здоровы :) У меня было видов 4-5 разных, некоторые не пережили издевательств. Бывает.