RF-2400W

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

народ кто работал с этими радио модулями? можно ли ими передавать и ими же принимать сигнал?
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Сообщение ibiza11 »

Transceiver - переводится как приемо-передатчик.
4-pin SPI interface with maximum 8 MHz clock rate
Проблем не должно быть, пробовали хоть?
Ставим плюсы: )
Реклама
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

нет не пробывал. купил 15 шт и не знаю как запустить их ))
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

нашёл тут библы http://www.tinkerer.eu/AVRLib/nRF24L01 вот как всё это дело заюзать, передать пакет например

Код: Выделить всё

void Send(){

unsigned char bit,i;
unsigned int Buffer;

    if(i==44){
        for(bit=0;bit<16;bit++)  {
            if (!(PINB & (1<<2)))  Buffer|=1;  
 }

if(Buffer!=0) {
передать(Buffer); 
  }
}
может кто подскажет кому не сложно?
там где написал передать это данные накопленные в буфере нужно выкинуть в эфир.
Последний раз редактировалось kotriks Пт май 31, 2013 17:37:49, всего редактировалось 1 раз.
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

по твоему же линку все написано
#define mirf_PAYLOAD 16
16 байт буфер
делаеш char buffer [mirf_PAYLOAD] = {инфа в байтах};
потом mirf_send(buffer,mirf_PAYLOAD);
для налача можеш поставить 1 байт
тематические ответы только в форуме, в приват не пишите
Реклама
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

это максимальное значение 16 байт буф или можно и 100 поставить?
серавно не пойму как передать мой код в виде юарта и получить его на юарт :o
Реклама
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

народ может есть желающие помочь? в замен могу 6 модулей подарить.
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

хотел себе такую передавалку сделать, но сейчас пока лень
модули у меня и так 10 штук

найди код считывания с юарт в буфер, такого навалом и я давно использовал
потом вызывай передачу по заполнению буфера и все
тематические ответы только в форуме, в приват не пишите
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

да вот понять бы как сделать чтобы из буфера в 200 байт сделать выброс по воздуху и получить его в по юарту на компе уже. пример бы я уже бы сделал потом.
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Передача и прием пакетов детально описана в ДШ на модуль. Работа с ними аналогична модулям из статьи
http://radiokot.ru/circuit/analog/receiv_transmit/33/
Там-же и исходник есть для приема по UART.
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

да то что в даташите описано это понятно, кто бы показал на примере есть у меня буфер скопилась в нём инфа в 200 байт вот как её отправить?
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Коротко - из этой инфы надо сформировать пакет, см. формат пакета в ДШ или в статье выше. Затем загрузить его в FIFO передатчика через SPI и затем послать в передатчик команду на передачу. Подробнее см. исходники в статье выше. С длиной инфы в 200 байт будет немного сложнее чем в статье, т.к. размер FIFO передатчика меньше. Инфу или надо будет резать на куски и передавать по частям или подгружать ее по мере освобождения FIFO. Такого готового программного решения у меня нет.

Однако, если не хотите заморачиваться с программизмом всего этого, у Anaren есть готовое решение в виде "Wireless UART"
http://www.anaren.com/air/software-demos-examples
Правда, по-моему их пока еще нет в продаже (новый продукт), но появится в этом году. У меня эта система, однако, есть (спасибо Anaren-у) и я собираюсь написать о ней статью вскоре.
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

может я вопрос не так ставлю или вы меня не понимаете, просто помогите примером как из буфера в котором накопилась инфа из вне, например подал я на ногу контроллера сигнал в виде прямоугольной прямой звук она записалась в буфер контроллера и после того как записалась выплюнуть её :(
вот например код

Код: Выделить всё


setup();
mirf_init();
_delay_ms(50);
mirf_config();
uint8_t buffer[5] = {14, 123, 63, 23, 54};
uint8_t buffersize = 5;
 
while(1) {
  mirf_send(buffer,buffersize);
  _delay_ms(1000);
 
  // If maximum retries were reached, reset MAX_RT
  if (mirf_max_rt_reached()) {
    mirf_config_register(STATUS, 1<<MAX_RT);
  }
}
тут посылает 14, 123, 63, 23, 54
но это внутри кодная посылка а мне надо из вне.
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

ну у тебя есть же переменная буфера?
найди код, который принимает из юарт байт в прерывании и записывает в буфер
у меня сейчас нет того примера 100% рабочего под рукой, давно делал еще
вот я за тебя сделал 50% работы
http://www.avrfreaks.net/index.php?name ... ic&t=83876
http://intranet.daiict.ac.in/~ranjan/es ... _uart.html
тематические ответы только в форуме, в приват не пишите
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

посылку то можно сделать и не через юарт, а при получении вывести, что получил в терминал, но как отправить то с буфера ни чё не понимаю.
пс. или я не прав?
Грызет канифоль
Сообщения: 274
Зарегистрирован: Чт апр 28, 2011 15:08:58

Сообщение kotriks »

везде в примерах идёт посылка буфер буфер тобиш

Код: Выделить всё

mirf_send(buffer,buffersize);
а если сделать вот так на моём коде где у меня в буфере хранятся данные и выплюнуть их тупо

Код: Выделить всё

mirf_send(Buffer);
тобиш так

Код: Выделить всё

void Send(){

unsigned char bit,i;
unsigned int Buffer;

    if(i==44){
        for(bit=0;bit<16;bit++)  {
            if (!(PINB & (1<<2)))  Buffer|=1; 
 }

if(Buffer!=0) {
mirf_send(Buffer);
  }
}
сработает ли это?
Друг Кота
Сообщения: 13796
Зарегистрирован: Чт сен 20, 2007 14:08:00

Сообщение kalobyte »

функция отправки в буфер подразумевает 2 аргумента
сам буфер и его размер, а ты размер не указываеш и при компиляции будет ошибка

а что делает твой код - никому не известно

сделай один приемник и один передатчик, который в цикле будет принимать 1 байт и выводить в терминал
как разберешся с модулями, то можеш уже дальше писать свой код, это стандартный подход при разработке
тематические ответы только в форуме, в приват не пишите
Ответить

Вернуться в «Периферия»