Модуль приймача rf 315/433 мгц і підключення його до arduino

120

З цієї статті ми з вами дізнаємося, про роботу простого модуля радіочастотного передавача-приймача, який використовується в дистанційному управлінні для автомобілів або для управління простими завданнями, такими як включення / вимикання реле управління. Так само буде розглянута схема підключення його до ардуіно.

Інструменти та матеріали: — дві плати arduino uno; — модуль приймача rf 315mhz або 433mhz; — перемички; — макетна плата; — дві батареї 9в;

Крок перший: специфікація модуляна фото перший приймач, другий-передавач.

Ці модулі має наступні характеристики:передавач: робоча напруга: 3-12 в.споживана потужність: 12 в робочий струм: макс. 40 ма і хв. 9 марежим резонансу: sawрежим модуляції: аѕкрабочая частота: 315 мгц або 433 мгц потужність передачі: 25 мвт (315 мгц при 12 в)похибка частоти: +150 кгц (макс)швидкість: менше 10 кбіт / с. Таким чином, цей модуль буде передавати сигнал до 90 м на відкритій місцевості.

Приймач: робоча напруга: 5,0 в постійного струму: макс. ≤5,5 маметод роботи: ook / аѕкрабочая частота: 315-433,92 мгцполоса пропускання: 2 мгцчутливість: 100 дбм (50 ом)швидкість передачі:<9,6 кбіт / с (на 315 мгц і -95 дбм)використання додаткової антени підвищить ефективність бездротового зв'язку.крок другий: схемапідключення модулів дуже просте: передавачvcc>>>>5vatad>>>d12 (можна змінити в коді)gnd>>>gnd

Приймачvcc>>>>5vdata>>>d12gnd>>>gnd

Крок третій: бібліотека віртуальних проводів arduinoсуществует популярна бібліотека для arduino під назвою «virtualwire», створена майком макколі.virtualwire — це бібліотека arduino, яка надає функції для надсилання коротких повідомлень без адресації, повторної передачі або підтвердження. Підтримує ряд недорогих радіопередавачів і приймачів.ця бібліотека дозволяє легко відправляти і отримувати дані.спочатку потрібно завантажити бібліотеку звідси.потім потрібно витягти папку і перемістити її в «бібліотеки» в папці arduino. Це простий код, він відправить символ «1«, а через 2 секунди відправить символ» 0» і так далі. Світлодіод d13 на платі arduino повинен бути включений, коли отриманий символ ‘1’ і вимкнений, коли отриманий символ ‘0’.код для передавача:

Крок четвертий: один передавач, кілька приймачівможна підключити кілька приймачів і відправляти дані з одного головного передавача.при цьому знадобиться декодер / енкодер.енкодер-це схема, яка перетворює набір сигналів в код.декодер-це схема, яка перетворює код в набір сигналів.якщо потрібна мікросхема кодувальника / декодера, можна використовувати pt2262 і pt2272.нижче простий приклад, для 1 головного передавача, 2 приймачів. Відправка команди через послідовний порт для приймача, щоб включити / виключити світлодіод.

Код передавача:

Код першого приймача:

Показати / приховати текст

Код другого приймача:

Крок п’ятий: про virtualwirevirtualwire — це бібліотека arduino, яка надає функції для відправки коротких повідомлень без адресації, повторної передачі або підтвердження, що трохи схоже на udp по бездротовій мережі, з використанням ask (амплітудна маніпуляція). Підтримує ряд недорогих радіопередавачів і приймачів.повідомлення надсилаються з навчальною преамбулою, довжиною повідомлення та контрольною сумою. Повідомлення надсилаються з кодуванням від 4 до 6 біт для хорошого балансу постійного струму та контрольної суми crc для цілісності повідомлення.чи можемо ми використовувати послідовний зв’язок ?приймачі ask вимагають серії навчальних імпульсів для синхронізації передавача та приймача, а також потребують хорошого балансу між 0 та 1 у потоці повідомлень для підтримки балансу постійного струму в повідомленні. Uarts не надає їх. Вони трохи працюють з ask wireless, але не так добре, як цей код.тому відповідь буде-ні.щоб використовувати бібліотеку virtualwire, необхідно

#include

Щоб вибрати pin-код приймача, анулюємо:

vw_set_tx_pin

Щоб вибрати pin-код приймача, анулюємо:

vw_set_rx_pin

Встановлюємо швидкість передачі, швидкість tx повинна бути такою ж, як і on rx.швидкість становитиме кількість біт в секунду в діапазоні 0-9600. Для невеликих відстаней можна використовувати швидку швидкість, для далеких відстаней «до 90 м» потрібно використовувати якомога нижчу швидкість передачі.

vw_setup(uint16_t speed);

Запускаємо програму pll приймача:

vw_rx_start ();

Коли повідомлення доступне, функція vw_have_message() поверне значення true:

vw_rx_stop ();

Блокуємо і чекаємо поки передавач не буде в режимі очікування:

vw_wait_tx ();

Блокуємо поки повідомлення не стане доступним від одержувача:

vw_wait_rx ();

Відправляємо повідомлення заданої довжини:

vw_send (uint8_t * buf, uint8_t len);vw_have_message ();

Джерело (source)