К теме передатчика на 50 см- купите две пары, будет Вам двухсторонняя передача. Лучше далеко не выкидывать, сантиметров 30, я полагаю, максимум, да и то экранировать надо.
All, как правильно отключать трансивер, когда я работаю, скажем, со сдвиговым регистром?
Допустимо ли просто сделать на CS единицу, а потом вернуть на место ноль? Или там может быть не ноль, и надо как-то выяснять состояние до того как? Вообще, все библиотечные функции заканчиваются командой, делающей на CS лог. 1. Можно ли просто забить на CS трансивера и работать с регистром? типа:
- CS регистра в ноль
- передача
- назад в единицу
Ессно, в то время пока не делается приём или передача трансивером.
Народ подскажите плиз (киньтесь ссылочкой) как передать через nrf четыре различных пакета последовательно, с сервера клиенту, как организовать связь с сервером по запросу? (Сервер спросил - клиент ответил)
Модуль nrf24 может работать на прием с 6 передатчиками. Буфер приемника 32 байта для каждого передатчика (т.е. общий буфер в чипе 6х32 байта). Каждый буфер можно читать , например:
int in; //Переменная для приема информации;
uint8_t pipe_num; //Переменная, которая покажет нам из какой трубы достали информацию;
bool done = false; //Вспомогательная переменная;
if ( radio.available(&pipe_num) ) { //Скармливаем функции адрес переменной, которая покажет нам номер трубы;
while (!done) { // Упираемся и
done = radio.read( &in, sizeof(in) ); // по адресу переменной in функция записывает принятые данные;
}
}
Постоянный вызов указанного выше кода позволяет последовательно прочитывать содержимое буферов, если там что-то есть, то есть в переменной in будет полезная информация, а в переменной pipe_num - номер трубы, из которой она поступила.
Что будет если я установлю все адреса труб приемников одинаковыми в чипе. И буду последовательно посылать три посылки по 32 байта, при этом не разгребая очередь на приемнике.
Вариантов видится 2
1. При приеме второй посылки возникнет переполнение буфера и данные будут потеряны
2. Первая посылка попадет в первую "трубу" вторая во вторую трубу и т.д (адреса одинаковые установлены). т.е. данные не потеряются. И получается что есть буфер на 6 посылок.
Друзья, решил изучить модули и столкнулся с проблемой. Модули общаются нормально, только если отключить у передающего CE и просто оставить висеть в воздухе. Как только подключаю обратно - посылки перестают идти. Использую библиотеку RF24. В чем может быть причина такого поведения? Модули питаются от отдельных стабилизаторов, конденсатор на платы припаял.
NOTE: These units VCC connection must go to 3.3V not 5.0V, although the Arduino itself may run at 5.0V and the signals will be OK. The NRF24L01+ IC is a 3.3V device
Думаю , что оптимальная работа в использование NRF24L01+ это возможность двухсторонней связи-возможность приема и передачи модуля. В чем я и нуждаюсь. Задача передача с модуля 3х команд(кнопок) прием с выводом на светодиоды 3х команд с 1секундной свечением. Все три модуля одинаковы и дублируют друг друга. Есть рабочий скеч передатчика и приемника рабочие– но не могу соединить в одно целое - не получается. Нужна ваша помощь.
а конденсатор по питанию прямо на модуль? и почему напрямую от модуля 3.3В берешь. там стабилизатор используется от ch340, а ток вообще не держит. на уно проверяй если там отдельный стабилизатор есть на 3.3В, если нет и уно 3.3В питания достаточно не дает
я питание беру от лабораторного блока питания, 3,3v , ток потребления модуля 20-50мА, кондер ставить не стал т.к. он ставится если идут сбои, а у меня вообще не видит ее, на уно стоит не ch340 а atmega16u
Думаю , что оптимальная работа в использование NRF24L01+ это возможность двухсторонней связи-возможность приема и передачи . Тоже проблема в двухсторонней передаче. Работает передатчик и приемник - а соеденить в 1 целое не получяется.
А самое интересное- что ни где и не кто не показал работу в скетче обмена NRF24L01+ между собой не команд ни информации именно между 2х блоков-(обмена). Я не прав? Только прием и передачу.
Хотя-бы кусок где указана настройка с задачей приема и передачи и первые шаги к выполнению - чтобы понять кокая передача , прием выполняется. Как пример
Две недели я копал этот модуль на предмет приемопередачи, но больше не было времени, так как на днях уже сдаю проект.
Что я смог понять: Пытаться организовать приемопередачу просто командами start stop, read write было глупо. Не работает никак. В лучшем случае в одну сторону.
Единственное чего мне удалолсь добиться, так это отсыла ОДНОЙ переменной (любого типа. я шлю float) обратно от приемника к передатчику. Только переменная. Массив и структура не передается. ХЗ почему. Может кто разгадает
Делается это командой ACKpayload. Мы получаем две переменные, эта та, что отослали и 1-0 статуса соединения. Последнюю я применил как индикатор связи. Если пакеты передаются, то экран пишет Connected, если нет, но наоборот и сбрасываются все переменные (управление мотором все таки)
Ну вот как то так. Код длинный, могу скинуть в личку
Спасибо буду рыть. В моем случие есть скетч рабочий на прием передачу - но написан древние года и я не могу решить простую как может для многох проблему.
4. Один комплект запускаю на передачу, другой на прием
тишина в эфире, передающая сторона пишет ошибки передачи:
Now sending 12456... failed.
Failed, response timed out.
Проверял десять раз правильность подключения, менял модули (всего в наличии 4 штуки) - не работает.
Что интересно, при отключении GND на передающей стороне, ошибка передачи пропадает, приходит некий ответ непонятно откуда (т.е. работает при выключенном приемнике).
4. Один комплект запускаю на передачу, другой на прием
тишина в эфире, передающая сторона пишет ошибки передачи:
Now sending 12456... failed.
Failed, response timed out.
Проверял десять раз правильность подключения, менял модули (всего в наличии 4 штуки) - не работает.
Что интересно, при отключении GND на передающей стороне, ошибка передачи пропадает, приходит некий ответ непонятно откуда (т.е. работает при выключенном приемнике).
К теме передатчика на 50 см- купите две пары, будет Вам двухсторонняя передача. Лучше далеко не выкидывать, сантиметров 30, я полагаю, максимум, да и то экранировать надо.
All, как правильно отключать трансивер, когда я работаю, скажем, со сдвиговым регистром?
Допустимо ли просто сделать на CS единицу, а потом вернуть на место ноль? Или там может быть не ноль, и надо как-то выяснять состояние до того как? Вообще, все библиотечные функции заканчиваются командой, делающей на CS лог. 1. Можно ли просто забить на CS трансивера и работать с регистром? типа:
- CS регистра в ноль
- передача
- назад в единицу
Ессно, в то время пока не делается приём или передача трансивером.
Народ подскажите плиз (киньтесь ссылочкой) как передать через nrf четыре различных пакета последовательно, с сервера клиенту, как организовать связь с сервером по запросу? (Сервер спросил - клиент ответил)
Спасибо.
Задам свой вопрос сюда -))
Модуль nrf24 может работать на прием с 6 передатчиками. Буфер приемника 32 байта для каждого передатчика (т.е. общий буфер в чипе 6х32 байта). Каждый буфер можно читать , например:
Постоянный вызов указанного выше кода позволяет последовательно прочитывать содержимое буферов, если там что-то есть, то есть в переменной in будет полезная информация, а в переменной pipe_num - номер трубы, из которой она поступила.
Что будет если я установлю все адреса труб приемников одинаковыми в чипе. И буду последовательно посылать три посылки по 32 байта, при этом не разгребая очередь на приемнике.
Вариантов видится 2
1. При приеме второй посылки возникнет переполнение буфера и данные будут потеряны
2. Первая посылка попадет в первую "трубу" вторая во вторую трубу и т.д (адреса одинаковые установлены). т.е. данные не потеряются. И получается что есть буфер на 6 посылок.
Какой вариант верен??????
Разобрался самостоятельно.
Чип имеет три буфера для приема первых трех посылок (вне зависимости от труб) при чтении можно прочитать какая труба приняла.
Код чтения следующий:
Код выгребает всю очередь (до 3 посылок) pipe в цикле принимает номер трубы в массиве адресов (от 0 до 5)
Друзья, решил изучить модули и столкнулся с проблемой. Модули общаются нормально, только если отключить у передающего CE и просто оставить висеть в воздухе. Как только подключаю обратно - посылки перестают идти. Использую библиотеку RF24. В чем может быть причина такого поведения? Модули питаются от отдельных стабилизаторов, конденсатор на платы припаял.
ErRRoR, здесь читали?
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
NOTE: These units VCC connection must go to 3.3V not 5.0V, although the Arduino itself may run at 5.0V and the signals will be OK. The NRF24L01+ IC is a 3.3V device
а зачем вообще отключать?
Думаю , что оптимальная работа в использование NRF24L01+ это возможность двухсторонней связи-возможность приема и передачи модуля. В чем я и нуждаюсь. Задача передача с модуля 3х команд(кнопок) прием с выводом на светодиоды 3х команд с 1секундной свечением. Все три модуля одинаковы и дублируют друг друга. Есть рабочий скеч передатчика и приемника рабочие– но не могу соединить в одно целое - не получается. Нужна ваша помощь.
Народ. Подскажите куда копать или сразу выбрасить
Купил на али 2 модуля NRF24L01 + spf-pa мшу
один модуль подключил отдельно 3.3в от лабораторного БП ставил на УНО и НАНО но не как не мог запустить
первый модель выдавал ток 1А и грелся неимоверно, выяснилось что у него короткое VCC и земля
второй вроде норм но ничего с ним сделать не могу менял пины местами библеотека https://github.com/maniacbug/RF24 и много разных пробовал
это получается что чип дохлый?!?!
https://yadi.sk/d/CXjuENmaEEwun
архив rf24
сnарую либу удали. примеры из этой либы используй. для одного модуля status
фото модулей приложи
ничего особо не изменилось
подключаю
а в коде пины менял?
9 и 10? нет
может у тебя 10 и 9 должно быть
возможно, но нет
попробывал сейчас всяко, и 9,10 и 10,9 и на уно местами и .....
а конденсатор по питанию прямо на модуль? и почему напрямую от модуля 3.3В берешь. там стабилизатор используется от ch340, а ток вообще не держит. на уно проверяй если там отдельный стабилизатор есть на 3.3В, если нет и уно 3.3В питания достаточно не дает
я питание беру от лабораторного блока питания, 3,3v , ток потребления модуля 20-50мА, кондер ставить не стал т.к. он ставится если идут сбои, а у меня вообще не видит ее, на уно стоит не ch340 а atmega16u
а земли блока питания и ардуины объеденил?
Да объяденил земли, реакции ноль
как проверить работоспособность выходов ардуино 9-13?!?!
Зажигание светодиодов пойдет?
конечно пойдет
модуль без усилителя есть?
пока нет, заказал жду, придет хз когда
вот отсюда проверил ардуинку, все норм
http://arduino.ru/forum/apparatnye-voprosy/szheg-arduino-nano-est-smysl-chinit#comment-22427
были бы обычные модули можно было бы понять. а так хз
У меня эти самые NRF24l01+ PA LNA отвечають...
что за библиотека, как подключал, фотку если можно подключения
Ребят, а кто пробовал двухстороннюю связь? У меня ничего не получается
Думаю , что оптимальная работа в использование NRF24L01+ это возможность двухсторонней связи-возможность приема и передачи . Тоже проблема в двухсторонней передаче. Работает передатчик и приемник - а соеденить в 1 целое не получяется.
У меня еще и передача массива свалилась. Перестала передавать. У кого такое было?
Что гадать скинь скеч.
Там скетч на 3 страницы :) вроде начало получаться.
В другой теме советовали передавать не массив, а структуру, но структура не передается
всем спасибо разобрался с модулем
Все оказало намного проще, как и предполагалось они дохлые сразу 2 модуля
Заказал пришло 10шт(заказ был от 10шт), поставил на теже панельки с тойже платой и прогой, завелась с пол оборота
А самое интересное- что ни где и не кто не показал работу в скетче обмена NRF24L01+ между собой не команд ни информации именно между 2х блоков-(обмена). Я не прав? Только прием и передачу.
Прав. Мне это удалось, хотя эту информацию почему то все держат в секрете. Позже скину код
Я Вам очень буду благодарен за такую - конкретную помощь.
Какая именно информация интересует?
Хотя-бы кусок где указана настройка с задачей приема и передачи и первые шаги к выполнению - чтобы понять кокая передача , прием выполняется. Как пример
Две недели я копал этот модуль на предмет приемопередачи, но больше не было времени, так как на днях уже сдаю проект.
Что я смог понять: Пытаться организовать приемопередачу просто командами start stop, read write было глупо. Не работает никак. В лучшем случае в одну сторону.
Единственное чего мне удалолсь добиться, так это отсыла ОДНОЙ переменной (любого типа. я шлю float) обратно от приемника к передатчику. Только переменная. Массив и структура не передается. ХЗ почему. Может кто разгадает
Делается это командой ACKpayload. Мы получаем две переменные, эта та, что отослали и 1-0 статуса соединения. Последнюю я применил как индикатор связи. Если пакеты передаются, то экран пишет Connected, если нет, но наоборот и сбрасываются все переменные (управление мотором все таки)
Ну вот как то так. Код длинный, могу скинуть в личку
Спасибо буду благодарен.
Спасибо буду рыть. В моем случие есть скетч рабочий на прием передачу - но написан древние года и я не могу решить простую как может для многох проблему.
001
Никак не получается заставить работать модуль.
Что сделал:
1. Взял два комплекта: клон Uno + NRF24l01+
2. Установил библиотеку https://github.com/maniacbug/RF24
3. Прошил пример https://github.com/maniacbug/RF24/tree/master/examples/GettingStarted
4. Один комплект запускаю на передачу, другой на прием
тишина в эфире, передающая сторона пишет ошибки передачи:
Проверял десять раз правильность подключения, менял модули (всего в наличии 4 штуки) - не работает.
Что интересно, при отключении GND на передающей стороне, ошибка передачи пропадает, приходит некий ответ непонятно откуда (т.е. работает при выключенном приемнике).
Куда дальше рыть? Что проверить?
керамические конденсаторы по питанию прямо на модуль припаять 1-10 мКф
Никак не получается заставить работать модуль.
Что сделал:
1. Взял два комплекта: клон Uno + NRF24l01+
2. Установил библиотеку https://github.com/maniacbug/RF24
3. Прошил пример https://github.com/maniacbug/RF24/tree/master/examples/GettingStarted
4. Один комплект запускаю на передачу, другой на прием
тишина в эфире, передающая сторона пишет ошибки передачи:
Проверял десять раз правильность подключения, менял модули (всего в наличии 4 штуки) - не работает.
Что интересно, при отключении GND на передающей стороне, ошибка передачи пропадает, приходит некий ответ непонятно откуда (т.е. работает при выключенном приемнике).
Куда дальше рыть? Что проверить?
А статусы модулей что показывают?
А статусы модулей что показывают?
Имеется в виду это?
керамические конденсаторы по питанию прямо на модуль припаять 1-10 мКф
Попробовал керамические и электролиты. Результат тот же :(
согласно http://forum.amperka.ru/threads/nrf24l01-%D0%BF%D0%BE%D0%B1%D0%B5%D0%B6%D0%B4%D0%B0%D0%B5%D0%BC-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C.3205/page-34#post-63283
это еще не показатель не работы модулей
1. для начала удали свою старую библиотеку поставь http://arduino.ru/forum/programmirovanie/nrf24l01?page=12#comment-165781 от сюда
2. передача данных с аналогового входа. Приемник
передача данных с аналогового входа. Передетчик
у меня так заработало и видно что происходит
1. для начала удали свою старую библиотеку поставь http://arduino.ru/forum/programmirovanie/nrf24l01?page=12#comment-165781 от сюда
Почему старую? Я брал свежайшую из первоисточника (https://github.com/maniacbug/RF24).
я пользуюсь этой библиотекой
https://github.com/TMRh20/RF24
Припаял конденсатор 2.2uF, до этого просто подключал через разъемы.
Модули пишут об успешной отправке.
Первый: Отправка ok, ответ timeout
Второй: Отправка ok, получен ответ (непонятно откуда)
Первый:
Второй:
Припаял конденсатор 2.2uF, до этого просто подключал через разъемы.
Модули пишут об успешной отправке.
попробуй из моего примера, там доложно число идти до 1000 в зависимости от прикосновения пальцем к А0 контакта
может эти примеры не совсем подходят, или что еще с ними не так
попробуй из моего примера, там доложно число идти до 1000 в зависимости от прикосновения пальцем к А0 контакта
может эти примеры не совсем подходят, или что еще с ними не так
Не помогает. Пробовал заменить конденсаторы на керамические - результат тот же.
Как правильно проинтерпретировать статусы девайсов? Там видна проблема?