Вопросы по NRF24L01

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
Пакет принимается приёмником,приёмник настраивается на передачу и шлёт подтверждение)))
Это всё на аппаратном уровне,с точки зрения программы ничего не меняется.
В режиме NOACK статус RX_DR ставится сразу при "вылете" пакета в эфир.
В режиме ACK статус RX_DR ставится только после получения подтверждения от приёмника.Естественно времени требует больше.
Для автоподтверждения,если не ошибаюсь,нужно включить канал 0,ну и другой канал для данных. Остальное по умолчанию. Должно сработать.
Вот хорошая статейка,правда не Ардуино,а по-человечьи)) https://aterlux.ru/article/nrf24l01p
 

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
У меня с усилителем работает от Pro mini,которая,в свою очередь, от программатора через УСБ. Главное конденсаторы по питанию! С усилителем вроде порядка 10мВт,это ничто.
 

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
1. Лора принимает пакет
2. настраиваем ШИМ как требуется
3. Передаём пакет по НРФ24
Но чует сердце,автор поста не по зубам задачку выбрал,судя по вопросам
Вообще,на Ардуино может и нельзя два устройства на SPI вешать. Надо библиотеку смотреть что да как. А при нормальном программировании,да,согласен
MOSI, MISO, SCK - подключаются вместе у обоих плат.
Остальные ноги раздельно на другие выводы.
Не должны они конфликтовать.
 

bort707

★★★★★★✩
21 Сен 2020
2,895
860
Вообще,на Ардуино может и нельзя два устройства на SPI вешать.
не обижайтесь, но если вы настолько не шарите в "ардуинах" - может не стоит и лезть? Форум-то тематический :) Или хотя бы перед ответом потратить 3 минуты на поиск в гугле...
 
  • Лойс +1
Реакции: DAK

rkit

★★★✩✩✩✩
5 Фев 2021
479
114
Ищи визуально короткое замыкание на своем модуле. Или ошибки подключения. Не найдешь - выбрасывай.
 
  • Лойс +1
Реакции: te238s

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
Или хотя бы перед ответом потратить 3 минуты на поиск в гугле...
Критика приветствуется)
Лень смотреть было библиотеки,признаюсь. Просто вопрос в том, указывается вывод SS шины SPI в экземпляре класса( коих можно создать по количеству устройств) или назначается один SS на все.
Прошу сильно не ругать,этот же форум. Все учаться у друг друга.
 

bort707

★★★★★★✩
21 Сен 2020
2,895
860
Просто вопрос в том, указывается вывод SS шины SPI в экземпляре класса(
какого класса? В ардуино сотни библиотек, использующих SPI. В каких-то указывается. где-то забито намертво... но это же опен-сорс, вы всегда можете взять исходник библиотеки и переписать как хочется
 

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
@bort707,мы можем переписать,кто-то ещё может. А вот автор темы возможно не может,судя по его вопросам. На то и Ардуино,упростить жизнь начинающим. Кто может и хочет вылезает из Ардуино во "взрослый" мир МК.
Посему по умолчанию надо считать ардубиблиотеки "чёрным ящиком".
 

bort707

★★★★★★✩
21 Сен 2020
2,895
860
@te238s, я о другом. О том что в ардуино нет принципиальных ограничений на использование нескольких устройств про SPI шине
 
  • Лойс +1
Реакции: te238s

Геннадий П

★★★★★★✩
14 Апр 2021
1,834
589
44
@bort707, Да не только в ардуине нет, а вообще нет. Главное чтобы хватало свободных пинов для CS под каждое устройство. А если и их не хватает, то в принципе можно и расширителем портов или просто дешифратором увеличить.
 

rejjin

✩✩✩✩✩✩✩
12 Сен 2022
1
0
Всем привет. Не получается победить NRF24L01. Делаю минимальные примеры - как будто какой-то шум в эфире:



Каналы пробовал множество разных, питание с лабораторного БП 3.3V, так и от самого arduino uno. С конденсатором впаянным на плату радиомодуля, так и без.
В итоге просто передатчик отключаешь - а приемник выводит какой-то "шум". Но, видимо, не "шум" это вовсе, а проблема в чем-то другом.

Код приемника:
C++:
#include <nRF24L01.h>
#include <RF24.h>

RF24 radio(7, 8);
int receivedData[5];
uint8_t pipe;
uint8_t i;

void setup() {
  Serial.begin(9600);

  radio.begin();
  radio.setChannel(100);
  radio.setDataRate(RF24_1MBPS);
  radio.setPALevel(RF24_PA_HIGH);
  radio.openReadingPipe(1, 0xF0F1F2F3F4LL);
  radio.startListening();
}

void loop() {
  if (radio.available(&pipe)) {
    radio.read(&receivedData, sizeof(receivedData));
    Serial.print("Данные [ ");
    for (i = 0; i < 5; i++) {
      Serial.print((char) receivedData[i]);
      Serial.print(' ');
    }
    Serial.print("] пришли по трубе ");
    Serial.println(pipe);
  }
}
В передатчике таким образом отправляется:

C++:
int dataToBeTransmitted[5] = {'0', '1', '2', '3', '4'};
if (radio.write(&dataToBeTransmitted, sizeof(dataToBeTransmitted))) {
    Serial.println("Данные были корректно приняты приёмником");
} else {
    Serial.println("Данные не приняты или дошли с ошибкой CRC");
}
Из пары десятков раз попыток отправки лишь одна успешная. Модули пробовал разные, если судить по маркировке на микросхеме, то из разных партий
 
Изменено:

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
Попробуй стандартный код сканера,где приемник по всем каналам показывает уровень сигнала. По крайней мере видно будет есть ли связь с МК и рабочий ли нрф.
Потом пробовать без автоподтверждения передавать. Не исключено что ошибка в настройке.
У меня попадался модуль нерабочий,так это видно было по отсутствию связи по SPI.
 

VictorArx

★★✩✩✩✩✩
22 Мар 2021
471
78
Этот модуль довольно капризный. Не обязательно он не рабочий. У меня в радиоуправлении заработал только после того, как поменял местами на передатчике и приёмнике. Гайвер советует вместо разъёмов подпаивать провода к нему.
 

Михаил_Таг

✩✩✩✩✩✩✩
3 Окт 2022
2
0
Здравствуйте. Помогите, пожалуйста. Приобрел на Али Arduino Pro Micro с NRF24L01 https://aliexpress.ru/item/4000457007865.html
Понять не могу, как с ней начать работать. Это два независимых устройства на одной плате, или они уже по каким то пинам соединены между собой?
1664790986349.png1664790986349.png
 
Изменено:

DAK

★★★✩✩✩✩
8 Окт 2020
517
137
Судя по количеству ножек, модуль уже подключен по spi, пробуйте почитать тут, можно взять мультиметр и потыкать, куда какая из 5 ног приходит на arduino
 
Изменено:
  • Лойс +1
Реакции: Михаил_Таг

DAK

★★★✩✩✩✩
8 Окт 2020
517
137
Ну если верить фоткам, то похоже CS идёт на 7 ногу, но это не точно, под подозрением ещё 15
 
  • Лойс +1
Реакции: Михаил_Таг

Михаил_Таг

✩✩✩✩✩✩✩
3 Окт 2022
2
0
Все получилось, огромное спасибо!
Только при изучении контроллера под лупой выяснил, что подключены пины 6, 7, а не 7, 8:
RF24 radio(6, 7); // CE, CSN
 

sadovi4

✩✩✩✩✩✩✩
17 Ноя 2022
1
1
В общем, столкнулся с похожей проблемой при освоении этих модулей.
Все решилось очень просто, после 3 дней мучений, удаляем нафиг библиотеку которую раздает Гайвер, и ставим ту которая есть в этой теме, и все работает!
 
  • Лойс +1
Реакции: Дмитрий Ш

te238s

★★✩✩✩✩✩
14 Ноя 2021
375
94
Проблема возможно кроется в расстройке частоты передатчика. Лень даташит смотреть,но помню момент про то что передатчик при включении передачи свой синтезатор(PLL) синхронизирует. Дальше со временем нарастает расстройка частоты. Рекомендуют не менее чем через каждые 4 или 10мс переводить нрф в приём или СтепДаун чтобы при очередной передаче производилась калибровка.
Возможно что-то путаю.
 

Денис Сергеевич

✩✩✩✩✩✩✩
24 Янв 2020
5
0
Добрый день купил модули nrf24l01, покупал в магазине wavgat то есть модули оригинал. Пробовал скетчей 10, и они между собой не подключаются. Все подключал правильно, по схеме Алекса. В чем может быть проблема?

1 модуль 1675190943452.png
2 модуль1675191023933.png
 

Вложения

Геннадий П

★★★★★★✩
14 Апр 2021
1,834
589
44
Модули с нарисованной антенной или с нормальной внешней?
Для начала мощность передачи минимальную поставь.