433 МГц модули и их применение

Аватара пользователя
ru0aog
Сообщения: 942
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 125 раз
Поблагодарили: 138 раз

433 МГц модули и их применение

Сообщение ru0aog » 07 июн 2022, 06:00

Приветствую всех!
Уже давно и периодически всплывает тема дистанционного управления разной хренью на малых расстояниях (до 50...100 м).

Некоторое время назад пробовал модули FS1000A и XY-MK-5V.
Передатчик - простой кварцевый генератор с ключом:
TX-01.jpg
TX-02.jpg
Приёмник - сверхрегенератор:
RX-01.jpg
RX-02.jpg
Их схемы:
Shem_01.jpg

Аватара пользователя
ru0aog
Сообщения: 942
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 125 раз
Поблагодарили: 138 раз

433 МГц модули и их применение

Сообщение ru0aog » 07 июн 2022, 06:52

Прошил простейшую программку на основе библиотеки iarduino_RF433
Spoiler

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

#include <iarduino_RF433_Transmitter.h>

iarduino_RF433_Transmitter radioTX(4);
char                     i[]="Hello World";

void setup(){

    Serial.begin(9600);
    radioTX.begin(1000);
    radioTX.setDataRate(i433_1KBPS);
    radioTX.openWritingPipe(5);
}

void loop(){
    radioTX.write(&i, sizeof(i));
    delay(200);
}
Залил в ардуину, включил. Смотрю - действительно по 4-ой ноге гонит пачки импульсов.

Включил передатчик и посмотрел SDR-свистком, что там в эфире делается:
TX-03.jpg
Центральная частота 433,950 МГц.
Побочные каналы видны на: 433,800 и 434,100. Причём они "разбегаются" и "дробятся" в зависимости от ориентации передающей антенны.

Попробовал принимать - не впечатлило.
Сверхрегенератор шумит в отсутствие сигнала. На выходе случайные нули-единицы, отфильтровывать которые - целое дело.


Аватара пользователя
ru0aog
Сообщения: 942
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 125 раз
Поблагодарили: 138 раз

433 МГц модули и их применение

Сообщение ru0aog » 07 июн 2022, 07:03

Потом пробовал модули NRF24L01+PA+LNA, что работают на 2,4 ГГц.
Там интереснее :)
Модуль с усилителем кушает в среднем 115 мА по питанию 3.3 В. В пиках - больше, поэтому на питание навешивают конденсаторов.
Попробовал и я.
IMG_20211022_171651.jpg
IMG_20211022_172446.jpg
На приём вижу работу WiFi-сетей
003a.png
Передачу контролировал анализатором - сигнал есть. А связи между модулями нет :)
Причём модуль при включении может запуститься, а может и не запуститься. Ответ по SPI всегда один и тот же, регистры не меняются. Но передача иногда есть, а иногда нет. Приём так же...
Слишком заморочано для меня.
Последний раз редактировалось ru0aog 07 июн 2022, 07:20, всего редактировалось 1 раз.

Аватара пользователя
ru0aog
Сообщения: 942
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 125 раз
Поблагодарили: 138 раз

433 МГц модули и их применение

Сообщение ru0aog » 07 июн 2022, 07:10

Сейчас получил другие модули, опять на 433 МГц (первые были такие)
Передатчик WL102-341 и приёмник RX470-4
H07e.jpg
Тут уже кварцевая стабилизация не только передатчика, но и приёмника.
И приёмник вроде бы уже супергетеродин. И в комплекте спиральные антеннки :)

Попробовал запустить передачу.
Передатчик работает точно так же, как и в модуле FS1000A: есть уровень на входе DAT - есть несущая 433,92 МГц на выходе.
Вход EN всегда подключен к питанию, поэтому в энергосберегающий режим модуль не переводится.
Передатчик питается 2,0...3,6 В. Управляется таким же уровнем. К +5В не толерантен!
Короткая антенна - для передатчика, длинная - для приёмника.

Приёмник проверю позже :)
Видимо всё же придётся программно отфильтровывать случайный шум.

RA6M
Сообщения: 120
Зарегистрирован: 13 окт 2019, 21:42
Благодарил (а): 15 раз
Поблагодарили: 26 раз

433 МГц модули и их применение

Сообщение RA6M » 07 июн 2022, 21:09

только одна неприятность. модуль может одновременно выполнять одну команду.
я обжёгся на этом. мне нужно было, чтобы работало минимум 2 команды :(

Oleg
Сообщения: 363
Зарегистрирован: 22 окт 2019, 16:06
Позывной: R2AVB
Город: Москва
Имя: Олег
Благодарил (а): 48 раз
Поблагодарили: 117 раз

433 МГц модули и их применение

Сообщение Oleg » 07 июн 2022, 22:47

RA6M писал(а):
07 июн 2022, 21:09
только одна неприятность. модуль может одновременно выполнять одну команду.
Эти модули полностью аналоговые и их единственная задача - передавать/принимать "нули" и "единицы" двоичного кода.
Модуляция - ООК (On Off Keying) через вывод DAT.
Никаких "команд" они не понимают.
Тем не менее, к ним легко можно подключить какие-нибудь простенькие MCU для кодирования и декодирования цифрового сигнала.
Если использовать Arduino то есть готовые библиотеки, например Virtualwire.
Олег
R2AVB

Аватара пользователя
ru0aog
Сообщения: 942
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 125 раз
Поблагодарили: 138 раз

433 МГц модули и их применение

Сообщение ru0aog » 08 июн 2022, 18:23

Та же фигня :)
Когда сигнала нет, то ловится всякая хрень
0001..png
Как только появляется несущая, так на выходе приёмника = 0

Но это для медленно изменяющихся сигналов.
Если задать частоту 5 Гц, то получается вполне себе чёткий меандр
0002.png
на 50 Гц
0003.png
Хм, на 500 Гц тоже
0004.png

Аватара пользователя
ru0aog
Сообщения: 942
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 125 раз
Поблагодарили: 138 раз

433 МГц модули и их применение

Сообщение ru0aog » 08 июн 2022, 19:54

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

Аватара пользователя
ru0aog
Сообщения: 942
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 125 раз
Поблагодарили: 138 раз

433 МГц модули и их применение

Сообщение ru0aog » 08 июн 2022, 20:13

Чтобы на практике разобраться с уровнями, я к передатчику приделал кнопку, а к приёмнику подключил осциллограф :)
Итак,
1. при непрерывной работе передатчика на выходе приёмника - логический 0.
0003.png
2. Если кратковременно отключить передачу, а затем снова включить, то получаем одиночный импульс логической 1
шириной до 80 мс
0005.png
3. Если отключить передачу на подольше, то после обратного включения получаем второй импульс
0004.png
4. Если просто прекратить передачу, то сразу после отключения несущей мы получаем лог 1, а через некоторое время - шум
0006.png

Аватара пользователя
ru0aog
Сообщения: 942
Зарегистрирован: 30 сен 2021, 05:50
Позывной: ru0aog
Город: Красноярск
Имя: Станислав
Благодарил (а): 125 раз
Поблагодарили: 138 раз

433 МГц модули и их применение

Сообщение ru0aog » 09 июн 2022, 07:11

Похоже, чтобы эта фиговина нормально работала, надо постоянно излучать несущую, изредка прерываясь для формирования импульсов...

Сначала думал на малой скорости отслеживать фронты импульсов через прерывания, записывать в массив направление фронта и системное время в мкс. Потом вычистить короткие выбросы малой длительности из массива. А затем проанализировать принятый кусок данных, выбрать в нём последовательность, соответствующую протоколу, декодировать и передать полученный байт в массив принятой информации.
Жаль только, что в прерывании системный таймер не работает.

Но потом гляжу - если передатчик работает постоянно, то можно просто попробовать UART туда подключить. И пускай модем сам синхронизируется и распознаёт данные :)
Как раз высокий уровень на передающем модеме (означающий паузу) запустит генератор несущей.
Правда на приёмной стороне мы из приёмника вместо 1 получим 0. Надо инвертировать.

На малых расстояниях должно быть без ошибок, и быстро и просто :)

Ответить

Вернуться в «Микроконтроллеры и программирование»