Работа с радио-модулями 433Mhz без библиотеки
- Войдите на сайт для отправки комментариев
Ср, 28/08/2019 - 17:47
Привет всем. Есть два простых радио-модуля
Я предполагаю, что логика работы модулей такая:
1. На передатчике подаём импульс на ноге data определённой длительности
2. На приёмнике с помощью прерывания или просто считыванием сигнала с помощью digitalRead (или pulseIn) я считываю сигнал на ноге data
Но вот ничего подобного, не считывается с помощью digitalRead (прерывание не пробовал). Был где-то код для тиньки по работе с этими модулями, но найти не могу. Вроде бы всё просто...
В чём ошибка в логике?
Есть два простых радио-модуля
неудачный выбор, лучше вот эти:
https://ru.aliexpress.com/item/32311933574.html
а как работать и какие библиотеки - в поиске все есть
https://yandex.ru/search/?text=rf433%20arduino&fyandex=1&lr=11
Попробуйте и расскажите, что получится.
Ошибка, как всегда, в строке №38 скетча.
Должна быть какая то веская причина чтобы не применять nrf24l01 или подобные. Ну или надежность неважна... тогда можно и такие если уже есть.
Должна быть какая то веская причина чтобы не применять nrf24l01 или подобные. Ну или надежность неважна... тогда можно и такие если уже есть.
Хм, а чем rf433 связь ненадежна? На расстоянии у меня до 20 метров пока проблем не видел, да и сигнализации авто промышленные работают на пару километров - тоже надёжно.
Так надо алгоритм обработки городить какой то.
Ага. Надо.
И надо учитывать что у тех кто в тундре эфир чистый. А в мегаполисе на приемник постоянно валится куча пакетов, зачастую перекрывающаяся. Одних только автосигналок вокруг сотни тысяч, а еще легион всяких ДУ, радиотелефонов и прочей лабудени. Так все в эфир гадят - код приема еле отладить возможно. Так что заявы про все надежно нужно дополнять еще и уточнение за сколько км до цивилизации.
Надёжность неважна. Модули будут общаться максимум в пределах комнаты. Есть и эти модули nrf24l01, но ими займусь позже. Прерывания попробую и отпишусь.
Попробуйте и расскажите, что получится.
Ошибка, как всегда, в строке №38 скетча.
Код вы выкладывал, так как как обычные digitalRead и digitalWrite. Если это поможет, то вот код
Передатчик 5 секунд выдаёт 1, 2 секунды 0.
Приёмник через каждые 0.5 секунды читает состояние цифрового порта.
Я бы попробовал имульсы на порядок-два короче, черт его знает как оно там устроено, под рукой сейчас таких нет. Осциллографа нет глянуть что на выходе ?
Осциллографа, увы, нет
Сменил временные тайминги. 1 держится 1 секунду, 0 держится 0.5 секунды. Приёмник читает состояние порта через 0.02 секунды. результат тотже, всегда 0.
NoAlex, у меня есть такие модули и осциллограф тоже есть, я могу собрать и поковыряться в выходные. Если Вам не горит, то давайте так и сделаем.
Давайте
Повешал прерывание CHANGE на 3 порт меги. Тишина, такое ощущение, что передатчик молчит
NoAlex, у меня есть такие модули и осциллограф тоже есть, я могу собрать и поковыряться в выходные. Если Вам не горит, то давайте так и сделаем.
Для повторения точно такого же сбора опишу всё, что есть.
1. Передатчик:
- arduino nano
- 433 модуль передатчика (+3.3, data к пину D3)
- код для передатчика ниже
2. Приёмник:
- arduino mega 2560
- 433 модуль приёмника (+3.3, data к пину D2)
- код для приёмника ниже
Мне это не надо, я код и всё остальное буду сам делать. Если получится, то расскажу как получилось. Модкули такие же, как на фото, а остальное я буду делать сам.
Привет всем. Есть два простых радио-модуля
Я предполагаю, что логика работы модулей такая:
1. На передатчике подаём импульс на ноге data определённой длительности
2. На приёмнике с помощью прерывания или просто считыванием сигнала с помощью digitalRead (или pulseIn) я считываю сигнал на ноге data
Но вот ничего подобного, не считывается с помощью digitalRead (прерывание не пробовал). Был где-то код для тиньки по работе с этими модулями, но найти не могу. Вроде бы всё просто...
В чём ошибка в логике?
1. Напряжение питания приемника и передатчика?
2. Не мудрить с isread, а написать отдельные программы для приемника и передатчика. Передавать, например, импульсы по 0.2 сек через 1 сек, а на приемнике крутить цикл без задержек.
Мне это не надо, я код и всё остальное буду сам делать. Если получится, то расскажу как получилось. Модкули такие же, как на фото, а остальное я буду делать сам.
Дальше стола не пошли: это был типовой пример проектного глупства. После получения модулей и их тестирования был таки прочитан TFM и обнаружено, что штатные свойства модулей для моей задачки совершенно не подходят.
Пробовал 3.3 и 5 (на ардуинке и отдельным источником), писал отдельные скетчи, тайминги менял, результат нулевой.
Сейчас подключил библиотеку RCSwitch и пробую через неё, результат нулевой.
Эти модули при получении я проверял (как раз библиотекой RCSwitch, но на двух mega 2560, но думаю разницы нет), они в рабочем состоянии (ахаха, не испортились же из-за того, что лежали). Проверил вторую пару, тоже такая же картина.... хммм...
Пробовал 3.3 и 5 (на ардуинке и отдельным источником)
Чего? Вообще-то питание этого передатчика - 12В. На 5 он работает, но "еле-еле".
Так, ладно, как и обещал, провёл эксперименты. Вы хотели ...
Я предполагаю, что логика работы модулей такая:
1. На передатчике подаём импульс на ноге data определённой длительности
2. На приёмнике с помощью прерывания или просто считыванием сигнала с помощью digitalRead (или pulseIn) я считываю сигнал на ноге data
Поэтому я вообще не подключал их ни к какому контроллеру. Просто подал питание, подавал сигналы на ногу data передатчика и смотрел, что на ноге data приёмника. Питались оба от 5В (что для передатчика на пределе, вообще-то ему нужно 12) и у обоих не было напаяно антенн. Правда располагались они в сантиметре друг от друга.
Результаты.
1.
Ногу data передатчика соединяеем с землёй. На ноге data приёмника нечто маловразумительное на промышленной частоте, что можно отнести к влиянию наводок.
2.
Ногу data передатчика соединяеем с питанием. На ноге data приёмника вот такой сигнал с частотой 3.6Гц
3.
Наконец, на ногу data передатчика подаём меандр. На ноге data приёмника получаем сигнал с той же самой частотой, но сдвинутый по фазе (красный - сигнал на ноге передатчика и синий - сигнал на ноге приёмника).
Сдвиг фазы на приёмнике не очень стабилен и иногда плавает, причем стабильность сильно зависит от частоты меандра на передатчике.
Ну, я думаю, что знающие люди (например, ua6em) расскажут Вам как называется такой тип передатчкиа, но, похоже, так просто, как Вы хотели, здесь не получится.
Попробую запитать от 12 вольт, даже мысль такая в голову не пришла, что может 5 вольт мало :-) сколько смотрел на сайтах, от 5 вольт питают... Там, где я заказывал нет информации по питанию.
С удовольствием послушал бы ua6em
Запитал передатчик (прилепил антенну на него) от 12 В, приёмник от 9 В (не было возможности от одного 12 вольтового источника запитать). Ничего не приходит (на приёмнике повешал обработку 0 прерывания на 2-ом порту).
Даже если сигнал сдвинут по фазе, это не означает, что он не должен появляться на приёмнике О_о или я чего-то не знаю?
приёмник от 9 В
Приёмник-то за что? Ему 5В надо! Жив ещё?
Даже если сигнал сдвинут по фазе, это не означает, что он не должен появляться на приёмнике
Ну, у меня же появляется - зря я что ли Вам осциллограмму привёл?
или я чего-то не знаю?
Не знаю, что Вы знаете или не знаете. Подайте меандр на передатчик (как я делал) и ловите его на приёмнике. Если всё исправно, должно ловится. У меня же ловится. Если нет, то внятно и вразумительно выкладывайте схему, как подаёте, как ловите, как питаете.
нормально (те RF которые я по ссылке давал) они работают от 5 вольт и ниже:
Передатчик с метровой антеной (кусок провода) при 3.3 вольт и приемник без антены (штатная спиралька) ловят в городских условиях до 6 метров стабильно через бетонную внешнюю стену.
Передатчик с метровой антеной (кусок провода) при 5 вольт и приемник без антены (штатная спиралька) ловят в деревенских условиях (без помех) до 50 метров при прямой видимости и до 35 метров через кирпичную стену.
Проверено собственноручно.
Пробовал 3.3 и 5 (на ардуинке и отдельным источником), писал отдельные скетчи, тайминги менял, результат нулевой.
Сейчас подключил библиотеку RCSwitch и пробую через неё, результат нулевой.
Оставьте в покое все библиотеки. Скетч передатчика - tone(outPin, 1000), скетч приемника - if (digitalRead(inPin) == HIGH) {чем-то мигаем или пищим}
Когда (если) примете сигнал, будете подключать свои библиотеки для кодировки\раскодирования и т.п.
====
для "посмотреть сигнал" на выходе приемника достаточно имитации осциллографа из звуковой платы компьютера. Или даже просто подключить к выходу приемника вход комповской колонки и наслаждаться звучанием.
=========
и ещё - желательно для начала экспериментировать с нормальными 5-вольтовыми ардуинами.
Точно такие-же радиомодули есть на 315Мгц, и соответственно если один на из модулей на 315, а второй на 433 установить связь будет не возможно. А вообще для работы с модулями желательно иметь осцилограф и элементарный анализатор спектра на основе DVT
приёмника. Стоимость на АЛИ в пределах 500р.
Вот что творится с приёмником и передатчиком.
У меня есть несколько предположений:
1. После моих экспериментов с 12в на приёмнике, он склеил ласты
2. Разная частота работы приёмника и передатчика (пробовал на приёмнике крутить резистор подстроечный, эффекта нет)
3. Происходит неведомая магия
Ну и меня смущает максимальный вольтаж, который отображает программа на приёмнике в 516.8 вольт (это какая-то херь, так как на аттенюаторе стоит х1, а у осциллографа максимум ~5 вольт при таком множителе)!
Вот что творится с приёмником и передатчиком.
У меня есть несколько предположений:
1. После моих экспериментов с 12в на приёмнике, он склеил ласты
Ну и меня смущает максимальный вольтаж, который отображает программа на приёмнике в 516.8 вольт (это какая-то херь, так как на аттенюаторе стоит х1, а у осциллографа максимум ~5 вольт при таком множителе)!
Как можно проверить вышел из строя или нет? Вся проблема в том, что всего два приёмника и над обоими я извращался 12 вольтами. Есть ещё nRF модуль, но вот не знаю, сможет ли он в таком простом режиме работать, типа есть ток на пине или нет, он же вроде более "умный". На этот модуль не переходил, сначала хочу мотыгой пользоваться научиться! Может подскажете, можно их подружить (чисто для тестов) или покупать придётся (его похоже и так придётся покупать :) ) приёмник?
Выкинуть и купит новые, опять же рекомендую более стабильные , ссылка была в начале.
Кто-нибудь ещё подскажет?
вот типовые схемы на эти модули. Ничего там от 12В не сгорит, в приемнике - одна микросхема ОУ LM358. Ей 12В похеру.
Это "сверхгенеративный" приемник с низкой собственной частотой. Диапазон нормального приема где-то 100-4000 Гц. То есть собственная частота низкая, но не 0, все же это сверхгенератор, просто "состояние пина" он не может держать.
у сверхрегенератора очень широкая полоса пропускания, то-есть точность настройки приёмника на частоту сигнала не столь важна
То есть он не может на пину поднять 5в? Я верно понял?
Просто принять сам факт существования несущей и отличить его от отсутствия? - нет не может. Несущая должна быть промодулирована с частотой не ниже чего-то-там, проверять надо.
Построй простую схему, выдающую меандр на передатчик. Понижай частоту до тех пор, пока приемник уверенно принимает твой сигнал.
сидел, ленился пойти автобус чинить дальше... ;)) Проверил способности модулей. Предел длительности импульса, который ловит такой модуль у меня - 200 мс.
вот картинка: синий - передатчик, красный приемник. Задан 100 мс "0" и 250 мс "1". Видно, что желтый спад происходит раньше, чем кончился импульс на синем графике. Это особенности сверхгенератора. У него есть нижний предел частоты модуляции, который он может принять. Понятно ли, что он НЕ МОЖЕТ просто принять состояние передатчика "включен" или "выключен"? Даже если передатчик постоянно включен, через 200мс приемник перестанет на это реагировать.
Даже если передатчик постоянно включен, через 200мс приемник перестанет на это реагировать.
для обхода этого ограничения на любом радореле есть режим "триггер" :
короткий импульс -> включить, следующий импульс - выключить
Даже если передатчик постоянно включен, через 200мс приемник перестанет на это реагировать.
Ужас. Просто гадость! Не знал я про сверхгенератор такое. А той пары что https://ru.aliexpress.com/item/32311933574.html это тоже касается?
сверхрегенератор
видимо это касается именно этого приёмника, а так, обычный приёмник, в котором для увеличения чувствительности используется сверхрегенеративный режим
сверхрегенератор
хмм.. брал здесь. #37
//Видно, что желтый спад происходит раньше, чем кончился импульс на синем графике. Это особенности сверхгенератора.
Я правильно понял, у https://ru.aliexpress.com/item/32311933574.html скорей всего такого эффекта нет?
правильно
//Видно, что желтый спад происходит раньше, чем кончился импульс на синем графике. Это особенности сверхгенератора.
Я правильно понял, у https://ru.aliexpress.com/item/32311933574.html скорей всего такого эффекта нет?
Если ты не ёрничаешь, что я определять не умею, то отвечу:
Никакой радиокомплект не умеет передавать постоянный ток. Модули из темы у меня есть, и я их проверил - 200 мс постоянного уровня - предел. У других будет другой предел, но нигде не будет возможности принимать потенциально бесконечный импульс.
Вот более точная схема:
С6 отделяет приемный каскад от усилителя, С11 - усилитель от триггера Шмидта. Оба не пропустят постоянный ток ;))).
=====================
ЗЫ: про твои модули не знаю, нужно смотреть схему и тыкать осцилом. ;))
Когда то игрался с такими модулями. Заказчику нужен был один приёмник на несколько передатчиков (4). Как я понимаю, их правильно модулировать Манчестером, я же для простоты применял UART. На 2400 bps и при 12в питании передатчика пакеты нормально принимались на расстоянии 30 м. Пакеты были небольшие, с CRC16, вот формат:
Никакой радиокомплект не умеет передавать постоянный ток.
Детекторный и прямого преобразования принимают постоянны сигнал хоть 100500 лет. ("передавать постоянный ток" - это что-то из наследия Тесла, обсуждать не стоит).
ЗЫ: про твои модули не знаю, нужно смотреть схему и тыкать осцилом. ;))
Это не мой, его andycat в #1 рекомендовал. Прежде чем отписаться для констатации своего незнания читай тему.
Пока принимаю за истину мнение ua6em
Ой! Я же тебе не рабби, принимай за истину, что угодно. ;))) Я же - лучше проверю.
Тут, если ты не станешь понтоваться, а просто послушаешь, есть некая традиционность проектировщиков. А именно разделительные конденсаторы между каскадами. Причину долго объяснять, если не знаешь. Если знаешь - то и объяснять не нужно. Вкратце - так гораздо проще проектировать каскадную схему. А конденсатор постоянный ток не пропускает. В примере выше - заряда разделительного C6, разряжающегося через R7+C6, хватило на 200мс (откуда получаем ненаписанное значение C6 - примерно 1мкФ). C11 разряжается через входные цепи ОУ, там токи порядка 50 nA, его можно не учитывать.
================================
Заказал пару комплектов. Схемы там фактически нет, это "однокристальный приемник". Доставка "saver shipping" это не сильно приятно - может и два месяца ползти в Москву. Как придет тем же тестом проверю. Самому интересно.
Ой! Я же тебе не рабби, принимай за истину, что угодно. ;))) Я же - лучше проверю.
Тут, если ты не станешь понтоваться, а просто послушаешь, есть некая традиционность проектировщиков. А именно разделительные конденсаторы между каскадами. Причину долго объяснять, если не знаешь. Если знаешь - то и объяснять не нужно. Вкратце - так гораздо проще проектировать каскадную схему. А конденсатор постоянный ток не пропускает. В примере выше - заряда разделительного C6, разряжающегося через R7+C6, хватило на 200мс (откуда получаем ненаписанное значение C6 - примерно 1мкФ). C11 разряжается через входные цепи ОУ, там токи порядка 50 nA, его можно не учитывать.
================================
Заказал пару комплектов. Схемы там фактически нет, это "однокристальный приемник". Доставка "saver shipping" это не сильно приятно - может и два месяца ползти в Москву. Как придет тем же тестом проверю. Самому интересно.
Ты же не рабби, а талмуд бубниш. Причем еще и не понимаешь что к чему. Разделительные конденсаторы - не "некая традиционность проектировщиков", а средство согласования выхода каскада с входом последующего по постоянному току. Одно из средств. Это применяется только в каскадах переменного тока, например ЗЧ, где постоянная составляющая не представляет интереса. В схемах постоянного тока это не применяют. И нахрена ты оту хрень сюда пишешь? Недержание знаний в одном месте или старческая жажда в нравоучениях? Так давай в другом месте изливайся и кому подурней себя. Здесь же был задан конкретный вопрос о конкретном железе, ты же:
1. Как работает оно не знаешь.
2. Проявляется ли гадкий эффект конкретно в нем, о чем собственно и спрашивал, не знаешь.
3. В руках это железо не держал.
4. После получения ответа от знающего человека прилез с хамоватыми оборотами флудить о чем попало.
5. Счезни бл.! Тут много тем, где ты еще не отписался в форме "ЗЫ: про твои модули не знаю"
ПС.
Новый раввин в синагоге. Читает молитву «Шма» и тут половина синагоги встаёт. Другая половина начинает на них шикать и говорить: «Сядьте!», а первая возражает второй: «Это вы встаньте!».
Ребе в затруднении заканчивает и наутро идет к цадику.
Спрашивает: мол, я не знаю, какова верная традиция во время чтения «Шма».
Евреям нужно вставать?
— Нет, такой традиции нет… — отвечает цадик.
— То есть традиция велит сидеть?
— Нет, не велит, — отвечает цадик, — такой традиции нет.
— Так почему одна половина синагоги переругалась с другой?!
— А вот такая традиция у нас есть!
ПС. От нахера ты "вставал"?
Не угодил, извини... Я считаю, что эффект проявляться будет. Подождем модулей. Зачем поносить на форуме?
Ну вот, как и обещал. Пришли мне модули WL101/2-341. 101 - это приемник, 102 - передатчик. Приемник не сверхгенератор, а супергетеродин.
Вот осциллограмма, далее пояснения.
Желтая линия - передатчик, синяя приемник. Сигнал 200мс+200мс. Супергетеродин, как и следовало ожидать не любит не включенное, а ВЫКЛЮЧЕННОЕ состояние. как мы видим паразитная генерация начинается примерно после 150мс "тишины" в эфире.
Таким образом мы видим, что сверхгенератор не любит длинную "единицу" и начинает падать после 200 мс сигнала в эфире, а супергетеродин, наоборот, начинает "ловить то, чего нет" после 150 мс тишины.
=================
Вывод: Постоянный сигнал в эфире невозможно передавать любым испытанным комплектом. То есть "радио-удлиннитель пинов", как некоторые тут хотели, невозможен. Нужно делать умное устройство, с протоколом, обработкой состояний, сигналов и всего, что положено! ;))) Успехов.
================
Фото стенда. Кликабельно. К модулям припаяны антенны 173мм, из витой пары. Нанка генерит прямоугольный сигнал для передатчика, приемник смотрим осциллографом. Забыл про два диода над нанкой. WL102-341 передатчик на 3.3В и (вроде?) не толерантен к 5В. Два диода делают примерно 3.3 из 5. ;)))
Приемник не сверхгенератор, а супергетеродин.
И какая у него ПЧ, ежли он суперпупер?