Общение модулей nRF24L01+
- Войдите на сайт для отправки комментариев
Пнд, 10/10/2016 - 19:50
Доброго времени суток.
Приобрел россыпью десяток модулей nRF24L01+. Запускал тестовый скетч из библиотеки. Работает. Ардуины кидаются сообщениями. Конденсаторы напаял (и электролит, и керамику). На меге у передатчика отдельное питание со стабилизатора на 0,5А 3,3В. На Atmega328 питание идет с самой платы (она у меня самодельная). А вот собственный код не работает( 328 мега должна раз в 2 секунды скидывать значение переменной на Мегу, которая после приемки его должна вывести в порт. Но Мега ничего не выводит.
передатчик
#include <SPI.h> #include "nRF24L01.h" #include "RF24.h" //подключаем библиотеки RF24 radio(9, 10); // UNO передатчик int out = 19641; //то, что будем передавать const uint64_t pipe01 = 0xE8E8F0F0E2LL; //адрес void setup() { Serial.begin(57600); delay(200); radio.begin(); //запускаем радиомодуль radio.setChannel(0x22); //выбор канала для передачи radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_MAX); //уровень сигнала radio.openWritingPipe(pipe01); } void loop() { radio.write(&out, sizeof(out)); delay(5000); Serial.print(out); out++; } /* RF24 radio(7, 6); // MEGA приемник RadioVybor = 1; const uint64_t pipe00 = 0xE8E8F0F0E1LL; */
Приемник
#include <SPI.h> #include "nRF24L01.h" #include "RF24.h" //подключаем библиотеки RF24 radio(7, 6); // MEGA приемник int in; const uint64_t pipe01 = 0xE8E8F0F0E2LL; void setup() { delay(2000); Serial.begin(57600); radio.begin(); //запускаем радиомодуль radio.setChannel(0x22); //выбор канала для передачи radio.setDataRate(RF24_250KBPS); radio.setPALevel(RF24_PA_MAX); //уровень сигнала radio.openReadingPipe(1, pipe01); radio.startListening(); } void loop() { bool done = false; //Вспомогательная переменная; if ( radio.available() ) { while (!done) { // Упираемся и done = radio.read( &in, sizeof(in) ); // по адресу переменной in функция записывает принятые данные; } Serial.print(in); } } /* RF24 radio(9, 10); // UNO передатчик const uint64_t pipe01 = 0xE8E8F0F0E2LL; //адрес */
Пробовал запускать сканер с Амперки. Мега. Децимия.
и в приемник и передатчик добавить код после radio.begin(); вот этот код
и в приемник и передатчик добавить код после radio.begin(); вот этот код
Нет, это не помогло.
в передатчик в 20 строке добавить
в передатчик в 20 строке добавить
И это, к сожалению, не помогло.
а библиотека новая
https://github.com/TMRh20/RF24
а тут читали?
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
Ваш скетч работает
Осталось понять, что с моим не так(
а библиотека новая
https://github.com/TMRh20/RF24
а тут читали?
http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo
Библиотека новая, там не читал, но сейчас прочел, вроде бы ничего нового не нашел.