Характеристики передавача FS1000A
- Робоча частота: 433.920 МГц (вказується на металевому корпусі модуля)
- Тип модуляції: ASK - амплітудна маніпуляція
- Дальність передачі: до 100 м (в зоні прямої видимості)
- Вихідна потужність: до 25 мВт
- Напруга живлення: 3 … 12В
- Струм споживання в режимі очікування: 0 мА
- Струм споживання в режимі передачі: max ≤ 40мА (при живленні 12В)
- Струм споживання в режимі передачі: min ≤ 9мА (при живленні 3В)
Характеристики приймача MX-RM-5V
- Робоча частота: 433.920 МГц
- Тип модуляції: ASK - амплітудна маніпуляція
- Дальність прийому: до 100 м (в зоні прямої видимості)
- Чутливість приймач: 100дБм (50Ω)
- Напруга живлення: 4,5 … 5В
- Струм споживання: 4 мА
Приймач та передавач можуть працювати без зовнішніх антен. Для збільшення якості зв'язку можна застосувати антену у вигляді чвертьхвильового вібратора (173мм), яка є шматком одножильного дроту, підключеного до відповідних контактів. Так само можна використовувати антену у вигляді напівхвильового вібратора (345 мм) або відрізок дроту, що дорівнює довжині хвилі (691 мм).
Плюс комплекту в тому, що в паузах передавач не споживає нічого, причому без будь-яких спеціальних режимів Sleep, просто за принципом свого пристрою (струм споживання в спокої порівняємо зі струмами колекторного витоку замкненого транзистора, тобто близько 100 нА).
Розробляючи будь-які проекти на базі цих модулів, варто згадати про можливі недоліки:
- Зважаючи на те, що на цій частоті працює багато різних пристроїв, всі вони створюють шуми, якими можуть заважати один одному.
- Низька швидкість передачі. Максимальна пропускна здатність передавача близько 8 кб/с, а приймача 5 кб/с. Застосовувати цю технологію для передачі відео або великих обсягів даних не вдасться.
- Відсутність зворотний зв'язок. Даний комплект може передавати дані лише в одному напрямку, від передавача до приймача. Передавати назад не вийде або доведеться задіяти другий такий самий комплект. Для передачі даних з датчиків або команд з пульта управління не потрібен зворотний зв'язок, а значить це не є недоліком.
Підключення передавача
Передавач (він носить назву FS1000A), як ми бачимо з його схеми нижче, є найпростішим генератором на основі ПАР-резонатора на 433 МГц. Генератор зібраний на транзисторі Q1, а транзистор Q2, на базу якого подаються цифрові дані – просто ключ, який підключає генератор до живлення (до шини GND) за наявності високого рівня (логічної одиниці) на вході. Живлення може бути від 3 до 12 вольт, причому, за твердженням виробників, що вище живлення, то далі працює зв'язок.
Зручно підключати передавач безпосередньо до напруги з адаптера 9-12 вольт, акумулятора або комплекту з 6
батарей або контакту Vin Arduino.
При живленні, яке може перевищувати 12 вольт (як, наприклад, у акумуляторів), потрібно відокремити
передавач від основної схеми 9-вольтовим стабілізатором типу 78L09.
Слід зазначити, що останнім часом стали з'являтися передавачі, що виглядають дещо нестандартно (див. мал.
нижче). Виявилося, що відсутність дроселя L1 (трьохвиткового), від якого залишилися тільки отвори – фікція,
він просто замінений на відповідний SMD-компонент. Гірше в цьому варіанті інше: неохайна поліграфія може
ввести в оману щодо підключення виводів даних та живлення. Правильне підключення показано на малюнку, воно
для всіх варіантів однакове:
Найдивовижніше в цій справі – те, що при переплутаному підключенні даних та живлення передавач на невеликих відстанях продовжує працювати! Якщо ви розглянете схему, то зрозумієте у чому справа: база Q2 через резистор при цьому виявляється підключеною до живлення, транзистор завжди відкритий, і впливу на роботу схеми не має. А логічний високий рівень на шині живлення просто запитує у потрібний момент генератор. Безглуздість починається на певній відстані — зрозуміло, що з логічного висновку джерело живлення виходить поганим.
Підключення приймача
У приймача схема набагато складніша. Вона повинна прийняти та посилити високочастотний сигнал, відфільтрувати частоту 433 МГц, виділити імпульси та перетворити їх на логічні рівні. Приймач має підстроювальний дросель (посередині плати), але без точних приладів для вимірювання амплітудно-частотної характеристики крутити не треба – швидше за все, ви нічого не покращите, а лише зіпсуєте. На невеликій відстані у даних, що передаються, буде набагато менше перешкод. Зрозуміло, що ми з перешкодами маємо боротися за всіма напрямками: схемотехнічними та програмними методами. Останнє за нас роблять бібліотеки, але яка б математика не застосовувалася в програмній обробці, бажано спочатку зробити все для того, щоб логічна одиниця на виході з'являлася лише за корисного сигналу і не бралася за перешкоду.
Стандартний метод зниження перешкод це застосувати окреме живлення, максимально ізольоване від інших схем. Можна його робити різними методами: колись ставили окремий стабілітрон, зараз часто ізолюють живлення проблемного вузла LC-фільтром, так рекомендується робити. Але в наших умовах, коли сучасні компоненти невеликі та дешеві, простіше поставити на приймач окремий лінійний стабілізатор.
Для стабілізатора рекомендується застосувать AMS1117-5. Замість AMS1117-5 можна взяти LM2931 або аналогічний з маленьким падінням напруги. Це особливо важливо, якщо схема живиться від батарейок. Для звичайної LM78L05 вхідна напруга повинна бути не менше 7.5, а краще 8-9 вольт. Приймач разом із стабілізатором для зручності можна винести в окрему маленьку коробочку. Зв'язати його вихід з контролером будь-яким трижильним проводом (два живлення, один сигнальний) завдовжки до 3 метрів, а може бути й більше.
Модуль MX-RM-5V є надрегенеративним приймачем. На виході застосовується компаратор LM358. Згладжуючий конденсатор C3 не розпаяний на платі, хоча є посадкове місце. Приймач чутливий до пульсацій. Невеликі пульсації по шині живлення можуть розцінюватись приймачем як сигнал, після чого модуль може не реагувати на передавач. Для зниження пульсацій необхідний конденсатор C3, на якому заощадив розробник. Замість нього можна підключити конденсатор 10 mF між плюсом і мінусом живлення приймача. Для зменшення впливу пульсацій на приймач, так само бажано сам приймач, або пристрої, що вносять пульсації (ШИМ, сервоприводи і т.д.), живити від окремого стабілізованого джерела живлення. Дросель L2 може бути на платі у SMD виконанні, або у вигляді дроселя з аксіальними виводами.
Антени краще розміщувати паралельно у просторі. У найпростішому варіанті антеною може бути відрізок одножильного дроту перетином не менше 0,5 мм і завдовжки 17±1-3 мм. Не слід використовувати багатожильний монтажний провід! У продажу є компактніші спіральні антени. Антени в передавачі та приймачі запаюються у відповідний отвір у кутку плати (не помилитеся у модернізованому варіанті передавача – там слово ANT не відповідає розташуванню).
Формування та обробка даних, що передаються
Комплектом може передається тільки проста послідовність біт. Стандартна бібліотека VirtualWire кодує їх спеціальним чином (кожна тетрада кодується 6-ма бітами, попереду додається синхронізуючий заголовок, а також додається контрольна сума для всього пакета) і на виході перетворює на більш звичну послідовність байт. Але розбиратися з нею вже доводиться програмісту самостійно.
Далі ми вважаємо, що передавач та приймач підключені до Arduino. Крім VirtualWire, у зв'язку з бумом «розумних будинків», є ще багато будь-якого подібного, на зразок RC-Switch або RemoteSwitch, але вони орієнтовані на інші завдання, і для передачі довільних даних їх вживати явно не варто.
Максимальна довжина одного повідомлення VirtualWire дорівнює 27 байт. Передача одного повного повідомлення (воно автоматично доповнюється сигнатурою 0xb38, значенням довжини повідомлення та контрольною сумою) при вибраній швидкості 1200 біт/с становить 0,35 секунди.
До речі, що більше обрана швидкість передачі, то дальність передачі буде менше. За досвідом застосування RS-232 відомо, що при збільшенні дальності допустима швидкість передачі експоненційно падає: на швидкості 19200 неекранована лінія працює на 15 метрів, на 9600 – 150 метрів, а на швидкості 1200 – більше кілометра.