Обмін даними з використанням радіомодулів, вивчаємо Боротьбу з Arduino

33 цифрові цифрові вироби з використанням Arduino

Обмін даними з використанням радіомодулів

Як зазначено у статті про радіомодулі, це добрий засіб для організації обміну даними на невеликих відстанях. Однак метод модуляції ООК, що застосовується в них, має вкрай низьку перешкодостійкість і без застосування кодування даних тут не обійтися.

Найпопулярніші мікросхеми кодера/декодера, що застосовуються з радіомодулями - це набір РТ2262/2272. Зустріти клони цих мікросхем можна у пристроях дистанційного керування, бездротових дзвінках тощо. Дуже зручний набір, але приймач (РТ2272) має фіксовані можливості, зашиті в мікросхему, а хочеться, як правило, чогось незвичайного ... Часто таку проблему обходять використанням як декодера не РТ2272, а мікроконтролера, наприклад чогось з PIC-ів . У цій статті буде описано дещо інший підхід у реалізації функції кодування/декодування даних.

Алгоритм кодування.

Передавач (Кодер).

даними

Ця програма (Sketch), реалізує наступну процедуру. У вихідному стані радіомодуль "вимкнено", тобто. на DATA передавача (pin 13) подається логічний нуль. Для передачі використовується посилка з кількох байт. В даному випадку:

Після завершення посилки передавач "вимикається" (на DATA (pin 13) виставляється логічний нуль). Процедура передачі в циклі повторює дві посилки з інтервалом близько чотирьох секунд: в одній посилці йдуть «дані на включення» — перший байт даних дорівнює 127, у наступному — «на вимикання» — нульовий байт. Для контролю, крім світлодіодного індикатора, послідовний канал Arduino відправляє значення першого байта даних з посилки. Швидкість передачі даних вибрано невеликий - 800 мкс на один інформаційний біт (задається процедурою delayMicroseconds(400), де 400 мкс - це половина часу передачі одного біта), що укладається в діапазон швидкостей передачі даних використовуваними радіомодулями. У sketch-і легко розібратися і використовувати процедуру передачі байта для створення чогось більш осмисленого.