Программа для передатчика
От приемника требуется принимать пакеты и каким-то образом сигнализировать нам об этом. Полученные данные будем отправлять через последовательный порт в монитор последовательного порта Arduino IDE.
#include <SerialFlow.h>
SerialFlow rd(7,8);
void setup(void){
Serial.begin(57600);
rd.setPacketFormat(2, 1);
rd.begin(0xF0F0F0F0D2LL,0xF0F0F0F0E1LL);
}
void loop(void){
unsigned int v;
if( rd.receivePacket() ){
v = rd.getPacketValue(0);
Serial.println(v);
}
}
Здесь мы точно так же создаем объект SerialFlow с аргументами 7 и 8. Затем настраиваем параметры пакета. А в строчке:
rd.begin(0xF0F0F0F0D2LL,0xF0F0F0F0E1LL);
первым параметром указываем адрес модуля №2, а вторым — адрес модуля №1.
Загружаем программу на оба контроллера и открываем на приемнике монитор последовательного порта. Если все было сделано правильно, то каждые 100 миллисекунд в окне должны появляться значения таймера на передатчике.
Здравствуйте! Возникли проблемы с библиотекой SerialFlow. Если быть точнее, я её нигде не смог найти. Тот файл, который автор статьи выложил в сеть, вызывает ошибку в Arduino IDE. Буду благодарен за разъяснение данной проблемы.
А какая именно ошибка появляется?
Здравствуйте! В вашей статье очень не хватает картинки с подписью номеров пинов на самом радиомодуле.
Здравствуйте! Лично у меня возникала следующая проблема: я подключал выводы радиомодуля так, будто бы по картинкам с подписями они находятся с обратной стороны, т.е. зеркально, из-за того, что ножки на моем радиомодуле выведены не в лицевую сторону печатной платы, а в тыльную.
Вдруг, у кого-нибудь еще есть такая проблема? Мне кажется, она заслуживает отдельного упоминания вместе с картинкой пинов на радиомодуле.
Не могу найти библиотеку SerialFlow. пришлите, пожалуйста…
Можно скачать тут:
https://github.com/oevsegneev/arduino-dev/tree/master/libs
главное в файле SerialFlow.h раскомментировать нужный интерфейс: HardwareSerial либо RF24
Большое Вам спасибо, устройство заработало. Надо было раскомментировать RF24….
Столкнулся с такой проблемой. Все сделал, как описано на сайте, но вместо значений таймера на передатчике мне выводятся какие- то квадраты да разные буквы и символы. В чем может быть проблема?
Вероятно в мониторе COM-порта стоит неправильная скорость.
Здравствуйте. Возникает ошибка с SerialFlow rd(7,8); а именно no matching function for call to ‘SerialFlow::SerialFlow(int, int).
Нужно посмотреть SerialFlow.h файл, вероятно там установлен не тот тип передатчика в самом начале и соответственно используется другой конструктор объекта SerialFlow.
Самое интересное, что автор пишет:
«Главное, не путаем напряжение: стандартные для Ардуино 5 Вольт могут повредить модуль.»
и при этом на схеме — макета заводит с ардуины +5В на плату))) От ардуины питать не рекомендуют, так как если модуль заработает, то однозначно работать будет криво! Данный модуль очень чувствителен к питанию, ардуиновского выхода по питанию ему явно не хватает.
Всё верно, для правильной работы лучше питать от 3.3 с внешнего стабилизатора с хорошим током. В примере же используется 5В, что, действительно, весьма рискованно, но стабильно работает некоторое время.
Подредактируем урок, чтобы ни у кого не возникало желания рисковать здоровьем модуля:)
Добрый день. А где скачать библиотеку SerialFlow уже под nrf24? Или скажите какой програмой редактировать .h -файлы…
Для редактирования .h файла подойдет любой текстовый редактор. Блокнот, к примеру.
Добрый день.Подскажите, пожалуйста, по его документации у него 125 каналов, а объединяться могут только 6? Если стоит задача сделать 100 устройств, которые способны общаться между собой, то это нельзя реализовать с использованием NRF24L01?
Либо один приемник на каждые шесть передатчиков, либо сколько угодно передатчиков, но в режиме приема-передачи: делаешь запрос к конкретному передатчику, он переключается в режим передачи и отправляет данные.
Пришлось мне как-то дебажить этот приемо-передатчик.
Чтобы упростить дело, сделал такой сайтик. Может кому пригодится.
http://nrf24l01.codes/
Как в файле SerialFlow.h раскомментировать нужный интерфейс: HardwareSerial либо RF24
Живу в Деревне. Пенсионер.