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

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

Добавлено: 07 июн 2022, 06:00
ru0aog
Приветствую всех!
Уже давно и периодически всплывает тема дистанционного управления разной хренью на малых расстояниях (до 50...100 м).

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

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

Добавлено: 07 июн 2022, 06:52
ru0aog
Прошил простейшую программку на основе библиотеки 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. Причём они "разбегаются" и "дробятся" в зависимости от ориентации передающей антенны.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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