- Потрібні компоненти
- Програмне забезпечення, що використовується
- Модуль радіочастотного передавача та приймача 433 МГц
- Кругова діаграма
- Створення проекту для Atmega 8 за допомогою CodeVision
- КОД і Пояснення
- Завантажте код на Atmega8
Завдяки нашим проектам Wireless завжди виглядає круто, а також розширює діапазон, яким можна керувати. Починаючи від використання звичайного ІЧ-індикатора для бездротового управління на короткі відстані, до ESP8266 для управління HTTP у всьому світі, існує безліч способів керувати чимось бездротовим способом. У цьому проекті ми дізнаємось, як створювати бездротові проекти за допомогою РЧ-модуля 433 МГц та мікроконтролера AVR.
У цьому проекті ми робимо наступні речі: -
- Ми використовуємо Atmega8 для радіочастотного передавача та Atmega8 для розділу радіочастотного приймача.
- Ми поєднуємо світлодіод та кнопку з мікроконтролерами Atmega8.
- На стороні передавача ми взаємодіємо кнопкою з Atmega і передаємо дані. На стороні приймача ми будемо отримувати дані бездротовим способом і відображатиме вихід на світлодіоді.
- Ми використовуємо кодер і декодер IC для передачі 4-бітових даних.
- Частота прийому становить 433 МГц за допомогою дешевого RF TX-RX-модуля, доступного на ринку.
Потрібні компоненти
- Мікроконтролер Atmega8 AVR (2)
- Програміст USBASP
- 10-контактний кабель FRC
- Хлібна дошка (2)
- Світлодіоди (2)
- Кнопка (1)
- Пара HT12D і HT12E
- RF-модуль RX-TX
- Резистори (10k, 47k, 1M)
- Провід перемички
- Джерело живлення 5В
Програмне забезпечення, що використовується
Ми використовуємо програмне забезпечення CodeVisionAVR для написання нашого коду та програмне забезпечення SinaProg для завантаження нашого коду в Atmega8 за допомогою програміста USBASP.
Ви можете завантажити ці програмні засоби за вказаними посиланнями:
CodeVisionAVR :
SinaProg:
Перш ніж заглиблюватися в схеми та коди, давайте розберемося, як працює RF-модуль із мікросхемами Encoder-Decoder.
Модуль радіочастотного передавача та приймача 433 МГц
Це модулі передавача та приймача, які ми використовуємо в проекті. Це найдешевший доступний модуль для 433 МГц. Ці модулі приймають послідовні дані в одному каналі.
Якщо ми бачимо технічні характеристики модулів, передавач розрахований на роботу 3,5-12 В як вхідна напруга, а відстань передачі становить 20-200 метрів. Він передає в протоколі AM (звукова модуляція) на частоті 433 МГц. Ми можемо передавати дані зі швидкістю 4 КБ / с з потужністю 10 мВт.
На верхньому зображенні ми бачимо висновок модуля передавача. Зліва направо штифти VCC, DATA та GND. Ми також можемо додати антену і припаяти її до точки, позначеної на зображенні вище.
Що стосується специфікації приймача, приймач має потужність 5 В постійного струму та струм спокою 4 МА як вхідний сигнал. Частота прийому становить 433,92 МГц з чутливістю -105 ДБ.
На зображенні вище ми бачимо висновок модуля приймача. Чотири штифти знаходяться зліва направо, VCC, DATA, DATA та GND. Ці два середні штирі з’єднані між собою. Ми можемо використовувати будь-який один або обидва. Але хорошою практикою є використання обох для зниження шумового зв’язку.
Крім того, одне не згадується в таблиці даних, змінний індуктор або POT в середині модуля використовується для калібрування частоти. Якщо ми не змогли отримати передані дані, існує можливість невідповідності передавальної та приймальної частот. Це радіочастотна схема, і нам потрібно налаштувати передавач на ідеальну передану частотну точку. Також, як і передавач, цей модуль також має антенний порт; ми можемо припаяти дріт у згорнутому вигляді для більш тривалого прийому.
Діапазон передачі залежить від напруги, що подається на передавач, і довжини антен з обох боків. Для цього конкретного проекту ми не використовували зовнішню антену і використовували 5 В на стороні передавача. Ми перевірили дистанцію в 5 метрів, і вона спрацювала чудово.
Дізнайтеся більше про ВЧ-пару в ланцюзі ВЧ-передавача та приймача. Ви можете зрозуміти більше про роботу РФ, перевіривши наступні проекти, в яких використовується RF-пара:
- Робот, керований РФ
- Схема перетворювача ІЧ у ВЧ
- Радіочастотні світлодіоди з дистанційним управлінням за допомогою Raspberry Pi
- Побутова техніка, керована ВЧ
Кругова діаграма
Принципова схема для боку радіочастотного передавача
- Контакт D7 з atmega8 -> Pin13 HT12E
- Контакт D6 з atmega8 -> Pin12 HT12E
- Контакт D5 з atmega8 -> Pin11 HT12E
- Штифт D4 atmega8 -> Pin10 HT12E
- Кнопка на штифт B0 Atmega.
- 1М-омний резистор між контактами 15 і 16 HT12E.
- Штифт 17 HT12E на штифт даних модуля радіочастотного передавача.
- Контакт 18 HT12E на 5 В.
- Контакт GND 1-9 та контакт 14 HT12E та контакт 8 Atmega.
Принципова схема для боку приймача ВЧ
- Контакт D7 з atmega8 -> Pin13 HT12D
- Контакт D6 з atmega8 -> Pin12 HT12D
- Штифт D5 atmega8 -> Pin11 HT12D
- Штифт D4 atmega8 -> Pin10 HT12d
- Світлодіод на штифт B0 Atmega.
- Штифт 14 HT12D на штифт даних модуля радіочастотного приймача.
- Резистор 47Ком між контактами 15 і 16 HT12D.
- GND штифт 1-9 HT12D і штифт 8 Atmega.
- Світлодіод до штифта 17 HT12D.
- 5 В до виводу 7 Atmega та виводу 18 HT12D.
Створення проекту для Atmega 8 за допомогою CodeVision
Після встановлення цих програм виконайте наступні кроки для створення проекту та написання коду:
Крок 1. Відкрийте CodeVision Клацніть на Файл -> Створити -> Проект . З'явиться діалогове вікно підтвердження. Клацніть на Так
Крок 2. Відкриється CodeWizard. Клацніть на перший варіант, тобто AT90 , і натисніть OK.
Крок 3. Виберіть мікросхему мікроконтролера, тут ми візьмемо Atmega8, як показано.
Крок 4: - Клацніть на Порти. У частині передавача кнопка є нашим входом і виводиться 4 лінії даних. Отже, ми повинні ініціалізувати 4 висновки Atmega як вихідні дані. Клацніть на порт D. Зробіть біти 7, 6, 5 і 4 як вихід, натиснувши на нього.
Крок 5: - Клацніть на Program -> Generate, Save and Exit . Зараз більше половини нашої роботи завершено
Крок 6: - Створіть нову папку на робочому столі, щоб наші файли залишалися в папці, інакше вони будуть розпорошені по всьому вікні робочого столу. Назвіть свою папку як завгодно, і я пропоную використовувати ту саму назву для збереження програмних файлів.
Для збереження файлів у нас буде одне за одним три діалогові вікна. Зробіть те ж саме з двома іншими діалоговими вікнами, які з’являться після збереження першого.
Тепер ваша робоча область виглядає так.
Наша більша частина роботи завершена за допомогою майстра. Тепер нам потрібно написати лише кілька рядків коду для передавача та приймача, і все…
Виконайте ті самі дії, щоб створити файли для частини приймача. У частині приймача лише Led є нашим виходом, тому зробіть порт B0 бітовим.
КОД і Пояснення
Ми напишемо код для бездротового перемикання світлодіода за допомогою RF. Повний код як Atmega на стороні передавача, так і приймача наведено в кінці цієї статті.
Код Atmega8 для радіочастотного передавача:
Спочатку включіть файл заголовка delay.h, щоб використовувати затримку в нашому коді.
#включати
Тепер, приходять до останніх рядках коди, де ви знайдете в той час як цикл. Наш основний код буде в цьому циклі.
У циклі While ми надішлемо 0x10 байт в PORTD при натисканні кнопки, а, якщо кнопка не натиснута, надішлемо 0x20 байт. Ви можете використовувати будь-яке значення для надсилання.
while (1) { if (PINB.0 == 1) { PORTD = 0x10; } if (PINB.0 == 0) { PORTD = 0x20; } } }
Код Atmega для радіочастотного приймача
Спочатку оголосіть змінні над головною функцією void для зберігання вхідного символу з RF-модуля.
#включати
Тепер прийшов до в той час як цикл. У цьому циклі збережіть вхідні байти до байта змінної char і перевірте, чи вхідний байт є таким самим, як ми пишемо в нашій частині передавача. Якщо байти однакові, зробіть PortB.0 високим і берете НЕ PORTB.0 для перемикання світлодіода.
while (1) { байт = PIND; якщо (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Побудуйте проект
Наш код заповнений. Тепер ми маємо побудувати наш проект . Клацніть на значок побудови проекту, як показано.
Після побудови проекту у папці Debug-> Exe створюється шістнадцятковий файл, який можна знайти в папці, яку ви створили раніше для збереження проекту. Ми використаємо цей шістнадцятковий файл для завантаження в Atmega8 за допомогою програмного забезпечення Sinaprog.
Завантажте код на Atmega8
Підключіть свої схеми відповідно до заданої схеми до програми Atmega8. Підключіть одну сторону кабелю FRC до програміста USBASP, а іншу сторону підключіть до контактів SPI мікроконтролера, як описано нижче:
- Контакт 1 жіночого роз'єму FRC -> Контакт 17, MOSI Atmega8
- Контакт 2, підключений до Vcc atmega8, тобто контакт 7
- Контакт 5, підключений до скидання atmega8, тобто контакт 1
- Контакт 7, підключений до SCK atmega8, тобто контакт 19
- Контакт 9, підключений до MISO atmega8, тобто контакт 18
- Контакт 8, підключений до GND atmega8, тобто контакт 8
Підключіть решту компонентів на макетній панелі відповідно до електричної схеми та відкрийте Sinaprog.
Ми завантажимо генерований вище шестигранний файл за допомогою Sinaprog, тому відкрийте його та оберіть Atmega8 зі спадного меню Пристрій. Виберіть шістнадцятковий файл у папці Налагодження-> Exe, як показано.
Тепер натисніть Програма.
Ви закінчили, і ваш мікроконтролер запрограмований. Використовуйте ті самі дії, щоб запрограмувати іншу Atmega на стороні приймача.
Повний код та демонстраційне відео наведено нижче.