Страница 1 из 2

ATmega8 and RF 433mhz

Добавлено: Чт авг 07, 2014 14:34:19
skript
Здравствуйте, мужики подскажите, купил на днях mega8 и решил научить её общаться с arduino по 433 частоте
радио модули такие (FS1000A / XD-RF-5V) http://www.ebay.com/itm/433Mhz-RF-trans ... 2ed2fc8634

Приёмник - Ардуино
Передатчик - mega8

Скетчи проверял между двумя ардуинами всё работало, а вот с мега8 нечего не приходит(нажимаю мониторинг порта, там пусто). помогите пожалуйста разобраться, в этом деле я новенький так что не пинайте сильно если что не так изложил

загрузчик залит(фьюзы). mega8 прошиваю с помощью ардуино. в мегу заливал тестовый скетч (мигание светодиода), всё моргает

скетч для mega8(передатчик)
Спойлер#include <VirtualWire.h>
void setup()
{
pinMode(13, OUTPUT);
vw_set_ptt_inverted(true); // Необходимо для DR3100
vw_setup(2000); // Устанавливаем скорость передачи (бит/с)
}

void loop()
{
if(digitalRead(14)==HIGH)//если кнопка нажата ...
{
digitalWrite(13,HIGH);
String strMsg = "30041989_01_1";
char msg[14];

strMsg.toCharArray(msg, 14);
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Ждем пока передача будет окончена

digitalWrite(13,LOW);//инвертируем состояние пина
delay(50);//небольшая защита от "дребезга" контактов кнопки
}
}
скетч для arduino(приёмник)
Спойлер#include <VirtualWire.h>

void setup()
{
Serial.begin(9600);
vw_set_ptt_inverted(true); // Необходимо для DR3100
vw_setup(2000); // Задаем скорость приема
vw_rx_start(); // Начинаем мониторинг эфира
}

void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN]; // Буфер для сообщения
uint8_t buflen = VW_MAX_MESSAGE_LEN; // Длина буфера

if (vw_get_message(buf, &buflen)) // Если принято сообщение
{
int i = 0;
char Msg;
String strMsg ;
while (i!= 13)
{
Msg= buf;
strMsg+=Msg;
i++;
}
Serial.println(strMsg);
}


бутлоадер mega8(для внешнего кварца)
Спойлер##############################################################
#
# ATmega8 16MHz external clock
#
atmega8_16mhz.name=ATmega8 16MHz standalone no-bootloader
atmega8_16mhz.upload.protocol=arduino
atmega8_16mhz.upload.maximum_size=7680
atmega8_16mhz.upload.speed=9600

atmega8_16mhz.bootloader.low_fuses=0xff
atmega8_16mhz.bootloader.high_fuses=0xc9
atmega8_16mhz.bootloader.path=atmega8
atmega8_16mhz.bootloader.file=ATmegaBOOT.hex
atmega8_16mhz.bootloader.unlock_bits=0x3F
atmega8_16mhz.bootloader.lock_bits=0x0F

atmega8_16mhz.build.mcu=atmega8
atmega8_16mhz.build.f_cpu=16000000L
atmega8_16mhz.build.core=arduino
atmega8_16mhz.build.variant=standard
#
##############################################################


ATmega8 - Распиновка и соответсвие выводам Arduino
СпойлерИзображение


Cхема подключения mega8
СпойлерИзображение

Re: ATmega8 and RF 433mhz

Добавлено: Чт авг 07, 2014 17:29:31
icedev
Тоже не так давно колупал эту штуку
Вот может поможет:
http://radiokot.ru/forum/viewtopic.php?f=28&t=105689

Re: ATmega8 and RF 433mhz

Добавлено: Пт авг 08, 2014 07:30:56
skript
уже весь инет перерыл((

Re: ATmega8 and RF 433mhz

Добавлено: Пт авг 08, 2014 08:45:46
koteika
радио модули редкостное говно, простите конечно. пока передатчик спит приемник такую херню принимает из шумов что просто ппц.

Re: ATmega8 and RF 433mhz

Добавлено: Сб ноя 01, 2014 18:05:02
aleksandr-zh
пользуюсь более года, расстояния до 50 м в условиях небольшого города. БП в схеме - импульсное
Всё работает. Замечаний нет
Просто вы их готовить не можете: протоколы обмега, контрольные суммы и прочее ;)

http://ugolok-mastera.ru/proekt/billiard/billiard.htm
фото внизу страницы

Re: ATmega8 and RF 433mhz

Добавлено: Вт ноя 04, 2014 17:50:39
phanis
Вот так
IAR_RXTX.rar
(118.22 КБ) 461 скачивание
реализовал прием/передачу на подобном устройстве (AT86RF211)за основу брал Arduino.

Re: ATmega8 and RF 433mhz

Добавлено: Вт ноя 04, 2014 18:01:25
ks0
koteika писал(а):радио модули редкостное говно, простите конечно. пока передатчик спит приемник такую херню принимает из шумов что просто ппц.
Это сверхрегенерат, так и должно быть. Нужно кодирование и контрольная сумма.
За городом на 200 с лишним метров от кроны работает.

Re: ATmega8 and RF 433mhz

Добавлено: Пт янв 29, 2016 12:18:59
dandan
ks0 писал(а):
koteika писал(а):радио модули редкостное говно, простите конечно. пока передатчик спит приемник такую херню принимает из шумов что просто ппц.
Это сверхрегенерат, так и должно быть. Нужно кодирование и контрольная сумма.
За городом на 200 с лишним метров от кроны работает.
Подскажите, можно приемник организовать на аппаратном UART? Не могу понять, как оно будет работать если когда нет сигнала едет хаос на входе UART, после которого будет передаваться реальный байт информации.

Re: ATmega8 and RF 433mhz

Добавлено: Пт янв 29, 2016 12:52:32
Vov123
ну, вероятно, приклеивать к массиву данных контрольную сумму

Re: ATmega8 and RF 433mhz

Добавлено: Пт янв 29, 2016 14:10:15
dandan
А как начать пакет данных, он же будет идти после мусора?

Re: ATmega8 and RF 433mhz

Добавлено: Пт янв 29, 2016 14:18:24
Vov123
Начать передавать? или начать принимать?
Передавайте с crc, а приёмник примет и подсчитает, crc - верно, массив принят, нет...ну на "нет" и суда нет

Re: ATmega8 and RF 433mhz

Добавлено: Пт янв 29, 2016 17:17:41
Belerafon
Ковырялся тоже с подобными модулями, там же все просто, пиши протокол или бери готовый и вперед, 4 байта пробовал передавать, по комнате ловило хорошо, зависит от питания. Ловил на сколько я помню в прерывании. Короче дрыгай ногами и передавай 0 или 1. Мусора кстати небыло, вот только crc не делал и иногда получал некорректные данные.

Re: ATmega8 and RF 433mhz

Добавлено: Вс янв 31, 2016 22:39:05
shads
Я для подобных целей написал библиотечку http://asis-kbr.ru/forum/viewtopic.php? ... p=750#p750

Re: ATmega8 and RF 433mhz

Добавлено: Пн фев 01, 2016 17:44:58
roman.com
dandan писал(а):А как начать пакет данных, он же будет идти после мусора?
Рекомендую почитать как работают заводские радиомодули...

-Перед передачей пакетов, сначало обычно передают преамбулу -10101010.. один или больше байт... По ней приёмник определяет что началась передача данных...
-Для борьбы с шумами, заводские радиомодули используют цифровые фильтры...

Re: ATmega8 and RF 433mhz

Добавлено: Вт фев 02, 2016 08:13:14
shads
О... roman.com... а куда сочинение исчезло, такое интересное? )))))

Re: ATmega8 and RF 433mhz

Добавлено: Вт фев 02, 2016 13:36:03
roman.com
Это всё ещё ктото читает...))) Да что там интересного... всё придумано до нас))

RF 433mhz - обычный радиомодуль на сверхрегенераторе. Все сверхрегенераторы работают одинаково. Подключите осциллограф и посмотрите сигнал сверхрегенератора...
Вот пример работы сверхрегенератора, на примере Радиоуправляемых моделей (Сделано в КНР):
http://radiokot.ru/forum/viewtopic.php? ... &start=240
Так же работает сверхрегенератор в радиомодуле RF 433mhz.

В заводских радиомодулях ставят цифровые фильтры, которые уменьшают уровень шума (помех) на выходе приёмника и повышают достоверность принятых данных.
Вот для примера простой радиомодуль MRF49XA:
Изображение
Обычный цифровой фильтр низких частот, убирает высокочастотные шумы из сигнала.. В более современных радиомодулях используют АЦП.

В простых аналоговых радиомодулях (типа RF 433mhz и др.) нет цифровых фильтров... Поэтому я использую разные программные фильтры в ATmega8...
Передаём обычным манчестером... с фильтром манчестера - |10|10|10|10|10|10|10|10|
Пакеты разделены синхропаузой... с байт-синхронизацией - 11110000
Верификатор - простая проверка на совпадение несколько байтов на каждую команду... Примерно как в пульте телевизора))
http://radioparty.ru/datasheet/213-irco ... l=&start=2
Только байты не подряд, в одном пакете, а в общем потоке данных...

При передачи 3-х байт на команду и при любых помехах, некорректных данных не зафиксировал... (на самом деле корректность данных зависит от избыточности кода - количество байт на каждую команду).

Аппаратный UART так же работает по принципу цифрового ФНЧ... Вопрос только в его эффективности))

Приёмникик на прерываниях хорошо работают только для ИК пультов и по проводам)))
http://radioparty.ru/datasheet/213-irco ... l=&start=3

Для передачи по радиоканалу, использовать прерывания можно... но не эффективно (из-за высокого уровня шума).

Re: ATmega8 and RF 433mhz

Добавлено: Ср фев 24, 2016 10:22:23
dandan
Изображение
Пришли такие модули, а в приемнике китаец забыл впаять транзистор который первый от антенны. На фото не могу рассмотреть какой там должен быть. Подскажите какой можно поставить аналог или по параметрам, на что смотреть.

И еще вопрос. Принимаю сигнал ATMega8 аппаратным UART, какую скорость передачи лучше выбрать по опыту? А проверку достоверности делаю сравнением двух одинаковых байт (команд) переданных друг за другом, этого достаточно или надо усложнять?

Re: ATmega8 and RF 433mhz

Добавлено: Вт мар 15, 2016 00:03:47
dandan
Подскажите, приемник отлично работает от 5В, но если питаю от лития то при снижении напряжения чувствительность резко падает и при 3,5 расстояние приема сокращается до нуля. Схема приемника примерно как на картинке. Как его заставить нормально работать от 3,5-4В?

Re: ATmega8 and RF 433mhz

Добавлено: Вт мар 15, 2016 13:57:41
roman.com
dandan писал(а):делаю сравнением двух одинаковых байт (команд) переданных друг за другом, этого достаточно или надо усложнять?
Зависит от требуемого количества ошибок... Обычно простое сравнение двух байтов мало... Я сравниваю три.))
Количество ошибок определяет тестовая программа:
-общее количество переданных байт...
-количество принятых байт без ошибок...
-количество принятых байт с ошибками...
...
dandan писал(а):Как его заставить нормально работать от 3,5-4В?
Изменить номиналы элементов. Например подкрутить резисторы в сверхрегенераторе (установить точно рабочую точку).

В радиоуправляемых моделях такие приёмники (сверхрегенераторы) работают нормально от 3В (от стабилизатора 3В).

Re: ATmega8 and RF 433mhz

Добавлено: Вт мар 15, 2016 19:02:48
dandan
roman.com писал(а): Изменить номиналы элементов. Например подкрутить резисторы в сверхрегенераторе (установить точно рабочую точку).

В радиоуправляемых моделях такие приёмники (сверхрегенераторы) работают нормально от 3В (от стабилизатора 3В).
Спасибо, а не подскажите что крутить, или где почитать про расчет такой схемы?