Несколько nrf24l01 к одному ардуино.
Несколько nrf24l01 к одному ардуино.
Есть 5 модулей nrf24l01, один Arduino UNO и один Nano.
По типовым схемам и скетчам получается только последовательно их включать и то только на UNO, потому, что у него количество выводов позволяет и в loop.
Требуется включить на передачу одновременно все 5 модулей но на разных каналах. Возможно ли это сделать?
По типовым схемам и скетчам получается только последовательно их включать и то только на UNO, потому, что у него количество выводов позволяет и в loop.
Требуется включить на передачу одновременно все 5 модулей но на разных каналах. Возможно ли это сделать?
- Реклама
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: Несколько nrf24l01 к одному ардуино.
Да хоть 50 штук. Лишь бы выводов у МК хватило.
Там же обычный SPI, со своим CS.
Там же обычный SPI, со своим CS.
Спойлер
Re: Несколько nrf24l01 к одному ардуино.
даchip_1 писал(а):включить на передачу одновременно все 5 модулей но на разных каналах. Возможно ли это сделать?
https://www.radiokot.ru/forum/viewtopic ... 8&t=185219
Re: Несколько nrf24l01 к одному ардуино.
[uquote="roman.com",url="/forum/viewtopic.php?p=4383794#p4383794"]
https://www.radiokot.ru/forum/viewtopic ... 8&t=185219[/uquote]
Перерыл, не нашел там подключения нескольких модулей..
Добавлено after 3 minutes 20 seconds:
[uquote="Аlex",url="/forum/viewtopic.php?p=4383763#p4383763"]Да хоть 50 штук. Лишь бы выводов у МК хватило.
Там же обычный SPI, со своим CS.
[/uquote]
А как? В первом топике я написал, что делал, но модули работают не одновременно. Цикл Loop же работает, перебирая выводы для активации модулей.
даchip_1 писал(а):включить на передачу одновременно все 5 модулей но на разных каналах. Возможно ли это сделать?
https://www.radiokot.ru/forum/viewtopic ... 8&t=185219[/uquote]
Перерыл, не нашел там подключения нескольких модулей..
Добавлено after 3 minutes 20 seconds:
[uquote="Аlex",url="/forum/viewtopic.php?p=4383763#p4383763"]Да хоть 50 штук. Лишь бы выводов у МК хватило.
Там же обычный SPI, со своим CS.
Спойлер
А как? В первом топике я написал, что делал, но модули работают не одновременно. Цикл Loop же работает, перебирая выводы для активации модулей.
- Реклама
Re: Несколько nrf24l01 к одному ардуино.
chip_1 писал(а):А как?
значит надо выкинуть библиотеку ардуины... и написать всё самому...chip_1 писал(а):модули работают не одновременно.
я так и сделал))
Loop можно оставить...
хотя я его тоже выкинул))
Re: Несколько nrf24l01 к одному ардуино.
[uquote="roman.com",url="/forum/viewtopic.php?p=4383835#p4383835"]
я так и сделал))
Loop можно оставить...
хотя я его тоже выкинул))[/uquote]
Библиотеки писать не умею, так как совсем начинающий писарь скетчей )) Хочется пока воспользоваться тем, что есть..
chip_1 писал(а):А как?
значит надо выкинуть библиотеку ардуины... и написать всё самому...chip_1 писал(а):модули работают не одновременно.
я так и сделал))
Loop можно оставить...
хотя я его тоже выкинул))[/uquote]
Библиотеки писать не умею, так как совсем начинающий писарь скетчей )) Хочется пока воспользоваться тем, что есть..
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1916
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: Несколько nrf24l01 к одному ардуино.
Почему 5 устройств на разных каналах к одному мастеру? Каждое устройство уникально (pipe), отправляете информацию только ему, только то, что опознано - оно отвечает. На один канал.
Re: Несколько nrf24l01 к одному ардуино.
Мне не важно, главное, что бы передавали одновременно, потоком данные. Данные будут одни и те же. Т.е. повторяться.
Re: Несколько nrf24l01 к одному ардуино.
пока ты ведёшь тут переписку... уже бы давно всё собрал и настроил))
модуль nrf24l01 слишком простой)) ему н нужны библиотеки...
управление модулем nrf24l01, как и всеми другими модулями, осуществляется через простые команды... по SPI...
переходим по ссылке... https://www.radiokot.ru/forum/viewtopic ... 8&t=185219
какаем список основный команд модуля nrf24l01... согласно даташиту... в даташите много команд... но для нормальной работы модуля nrf24l01 этих команд достаточно:
// 0x00 CONFIG
// 0x01 EN_AA
// 0x03 SETUP_AW (3,4,5 bytes)
// 0x04 SETUP_RETR
// 0x05 RF_CH RF Channel
// 0x06 RF_SETUP
// 0x07 STATUS
// 0x0A RX_ADDR_P0
// 0x10 RX_ADDR_P0
// 0x11 RX_PW_P0
всего то надо знать 10 команд))

затем берём ардуину (1 штука) и берём nRF24L01 (8 штук).
делаем две шины:
1-шина данных (для команд и данных).
2-шина адреса (для каждого модуля nRF24L01 отдельно). затем...
-если хотим отправить данные то:
указываем адрес (0...7) модуля nRF24L01 через который хотим передать данные,
указываем частоту (0x05 RF_CH RF Channel) для данного модуля
и отправляем данные... для данного модуля.
-если хотим отправить данные через все модули одновременно то:
указываем адрес (0...7) модуля nRF24L01, =0
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =0
указываем адрес (0...7) модуля nRF24L01, =1
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =1
указываем адрес (0...7) модуля nRF24L01, =2
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =2
указываем адрес (0...7) модуля nRF24L01, =3
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =3
указываем адрес (0...7) модуля nRF24L01, =4
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =4
указываем адрес (0...7) модуля nRF24L01, =5
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =5
указываем адрес (0...7) модуля nRF24L01, =6
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =6
указываем адрес (0...7) модуля nRF24L01, =7
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =7
и отправляем данные... на все модули одновременно (!).
в итого все модули (8 штук) будут передавать данные одновременно (!) и каждый на своей частоте (!).
и что сложного то ?

модуль nrf24l01 слишком простой)) ему н нужны библиотеки...
управление модулем nrf24l01, как и всеми другими модулями, осуществляется через простые команды... по SPI...
переходим по ссылке... https://www.radiokot.ru/forum/viewtopic ... 8&t=185219
какаем список основный команд модуля nrf24l01... согласно даташиту... в даташите много команд... но для нормальной работы модуля nrf24l01 этих команд достаточно:
// 0x00 CONFIG
// 0x01 EN_AA
// 0x03 SETUP_AW (3,4,5 bytes)
// 0x04 SETUP_RETR
// 0x05 RF_CH RF Channel
// 0x06 RF_SETUP
// 0x07 STATUS
// 0x0A RX_ADDR_P0
// 0x10 RX_ADDR_P0
// 0x11 RX_PW_P0
всего то надо знать 10 команд))
затем берём ардуину (1 штука) и берём nRF24L01 (8 штук).
делаем две шины:
1-шина данных (для команд и данных).
2-шина адреса (для каждого модуля nRF24L01 отдельно). затем...
-если хотим отправить данные то:
указываем адрес (0...7) модуля nRF24L01 через который хотим передать данные,
указываем частоту (0x05 RF_CH RF Channel) для данного модуля
и отправляем данные... для данного модуля.
-если хотим отправить данные через все модули одновременно то:
указываем адрес (0...7) модуля nRF24L01, =0
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =0
указываем адрес (0...7) модуля nRF24L01, =1
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =1
указываем адрес (0...7) модуля nRF24L01, =2
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =2
указываем адрес (0...7) модуля nRF24L01, =3
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =3
указываем адрес (0...7) модуля nRF24L01, =4
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =4
указываем адрес (0...7) модуля nRF24L01, =5
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =5
указываем адрес (0...7) модуля nRF24L01, =6
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =6
указываем адрес (0...7) модуля nRF24L01, =7
указываем частоту (0x05 RF_CH RF Channel) для данного модуля =7
и отправляем данные... на все модули одновременно (!).
в итого все модули (8 штук) будут передавать данные одновременно (!) и каждый на своей частоте (!).
и что сложного то ?
Re: Несколько nrf24l01 к одному ардуино.
Огромное спасибо за столь развернутый ответ!
Ну для меня, как новичка это сложно, и опыт приходит не сразу ))
Написал вот такой скетч для DUE: Вопрос, это тоже самое, что вы имели в виду, или всё-таки разница есть? Если есть, то в чем?
Спасибо!
(данные временно рандомные)
Для не ардуиновских проектов я совсем слаб, полный ноль, пока даже не знаю в чём программировать и чем заливать.. )
Ну для меня, как новичка это сложно, и опыт приходит не сразу ))
Написал вот такой скетч для DUE: Вопрос, это тоже самое, что вы имели в виду, или всё-таки разница есть? Если есть, то в чем?
Спасибо!
(данные временно рандомные)
Для не ардуиновских проектов я совсем слаб, полный ноль, пока даже не знаю в чём программировать и чем заливать.. )
- Вложения
-
- Скетч NRF_DUE.txt
- (2.76 КБ) 89 скачиваний
Re: Несколько nrf24l01 к одному ардуино.
аналогично можно подключить несколько интернет модулей... и несколько экранов... и т.д.
я подключал 3 экрана к одному МК...
и т.д. и т.п.
всё работает одинаково... по одной схеме:
-шина данных
-шина адреса
[uquote="chip_1",url="/forum/viewtopic.php?p=4385257#p4385257"]Вопрос, это тоже самое, что вы имели в виду, или всё-таки разница есть? Если есть, то в чем?[/uquote]
разница в том что у меня нет ардуины))
поэтому я не использую библиотеки от ардуины... и я не знаю как они работают))
// Библиотека для работы с SPI
#include <SPI.h>
// Файл с настройками для библиотеки RF24
#include <nRF24L01.h>
// Библиотека RF24
#include <RF24.h>
зато я знаю как работает сам модуль nRF24L01... и мне этого достаточно))
[uquote="chip_1",url="/forum/viewtopic.php?p=4385257#p4385257"]Для не ардуиновских проектов я совсем слаб, полный ноль, пока даже не знаю в чём программировать и чем заливать.. )[/uquote]
я программирую в CodeVisionAVR или AVR Studio
эти две программы мне хватает))
заливаю с помощью обычного программатора USBASP
через программу avrdudeprog33 или eXtreme Burner - AVR
эти две программы мне хватает))
всё работает одинаково... по одной схеме:
-шина данных
-шина адреса
[uquote="chip_1",url="/forum/viewtopic.php?p=4385257#p4385257"]Вопрос, это тоже самое, что вы имели в виду, или всё-таки разница есть? Если есть, то в чем?[/uquote]
разница в том что у меня нет ардуины))
поэтому я не использую библиотеки от ардуины... и я не знаю как они работают))
// Библиотека для работы с SPI
#include <SPI.h>
// Файл с настройками для библиотеки RF24
#include <nRF24L01.h>
// Библиотека RF24
#include <RF24.h>
зато я знаю как работает сам модуль nRF24L01... и мне этого достаточно))
[uquote="chip_1",url="/forum/viewtopic.php?p=4385257#p4385257"]Для не ардуиновских проектов я совсем слаб, полный ноль, пока даже не знаю в чём программировать и чем заливать.. )[/uquote]
я программирую в CodeVisionAVR или AVR Studio
эти две программы мне хватает))
заливаю с помощью обычного программатора USBASP
через программу avrdudeprog33 или eXtreme Burner - AVR
эти две программы мне хватает))
Re: Несколько nrf24l01 к одному ардуино.
Благодарю за наставления! Буду изучать лучше программирование напрямую. Arduino конечно интересно, но урезанно слишком.
Re: Несколько nrf24l01 к одному ардуино.
это правильно))chip_1 писал(а):лучше программирование напрямую.
купи простой программатор... https://www.youtube.com/watch?v=AxiI2gSYmnc
подключи к своей ардуине... и программируй напрямую !))
качаем две программки...
программируем напрямую...
-на Си
-на Ассемблере Итого: полный доступ к МК... без ограничений))
-
С.Н.
- Потрогал лапой паяльник
- Сообщения: 307
- Зарегистрирован: Пн окт 26, 2020 08:37:51
- Откуда: г.Волгоград
Re: Несколько nrf24l01 к одному ардуино.
Справедливости ради, следует отметить что еще есть гибридный путь (без программатора) к этому "счастью": любой Hex (из asm или c) > AvrDude по USB > Загрузчик Arduino > Flash.
Активно пользуюсь - удобно. https://radiokot.ru/forum/viewtopic.php ... 4#p4333134
Активно пользуюсь - удобно. https://radiokot.ru/forum/viewtopic.php ... 4#p4333134
ФУОЗ на платформе Ардуино: https://radiokot.ru/forum/viewtopic.php ... 6#p4366626
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
ВК - "ФУОЗ на микроконтроллере Atmega328P (МПСЗ)"
Re: Несколько nrf24l01 к одному ардуино.
Hex (из asm или c) > AvrDude по USB > Загрузчик Arduino > Flash.
не пробовал)) потому что у меня нет ардуины...
а ещё лучше так:
Hex (из asm или c) > Java по Ethernet (с PoE) > Загрузчик AVR > Flash.
не пробовал)) потому что у меня нет ардуины...
а ещё лучше так:
Hex (из asm или c) > Java по Ethernet (с PoE) > Загрузчик AVR > Flash.



