- Необходимые компоненты
- Используемое программное обеспечение
- Модуль передатчика и приемника RF 433 МГц
- Принципиальная электрическая схема
- Создание проекта для Atmega 8 с использованием CodeVision
- КОД и объяснение
- Загрузите код в Atmega8
Создание наших проектов Беспроводная связь всегда делает ее привлекательной, а также расширяет диапазон, в котором ею можно управлять. Начиная с использования обычного ИК-светодиода для беспроводного управления на короткие расстояния до ESP8266 для глобального управления HTTP, существует множество способов управления чем-либо по беспроводной сети. В этом проекте мы узнаем, как создавать беспроводные проекты с использованием радиочастотного модуля 433 МГц и микроконтроллера AVR.
В этом проекте мы делаем следующие вещи: -
- Мы используем Atmega8 для передатчика RF и Atmega8 для секции RF Receiver.
- Мы соединяем светодиод и кнопку с микроконтроллерами Atmega8.
- На стороне передатчика мы соединяем кнопку с Atmega и передаем данные. На стороне приемника мы будем получать данные по беспроводной сети и показывать выход на светодиодах.
- Мы используем IC кодера и декодера для передачи 4-битных данных.
- Частота приема составляет 433 МГц при использовании дешевого модуля RF TX-RX, доступного на рынке.
Необходимые компоненты
- Микроконтроллер Atmega8 AVR (2)
- Программист USBASP
- 10-контактный кабель FRC
- Хлебная доска (2)
- Светодиоды (2)
- Кнопка (1)
- Пара HT12D и HT12E
- Радиочастотный модуль RX-TX
- Резисторы (10к, 47к, 1М)
- Перемычки
- Источник питания 5В
Используемое программное обеспечение
Мы используем программное обеспечение CodeVisionAVR для написания нашего кода и программное обеспечение SinaProg для загрузки нашего кода в Atmega8 с помощью программатора USBASP.
Вы можете скачать эти программы по указанным ссылкам:
CodeVisionAVR :
SinaProg:
Прежде чем переходить к схемам и кодам, давайте разберемся с работой ВЧ модуля с ИС кодировщика-декодера.
Модуль передатчика и приемника RF 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, проверив следующие проекты, в которых используется пара RF:
- RF управляемый робот
- Схема преобразователя IR в RF
- Радиочастотные светодиоды с дистанционным управлением с использованием Raspberry Pi
- Бытовая техника с радиочастотным управлением
Принципиальная электрическая схема
Принципиальная схема для стороны передатчика RF
- Контакт 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.
Принципиальная схема для стороны приемника RF
- Контакт 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.
- 5V к контакту 7 Atmega и контакту 18 HT12D.
Создание проекта для Atmega 8 с использованием CodeVision
После установки этих программ выполните следующие действия, чтобы создать проект и написать код:
Шаг 1. Откройте CodeVision. Щелкните File -> New -> Project . Появится диалоговое окно подтверждения. Нажмите Да
Шаг 2. Откроется CodeWizard. Выберите первый вариант, например AT90 , и нажмите OK.
Шаг 3. Выберите микросхему микроконтроллера, здесь мы возьмем Atmega8, как показано.
Шаг 4: - Щелкните Порты. В части передатчика, кнопка является нашим вводом, а 4 строки данных выводятся. Итак, мы должны инициализировать 4 контакта Atmega как выход. Щелкните порт D. Сделайте биты 7, 6, 5 и 4 отключенными, щелкнув по нему.
Шаг 5: - Щелкните Программа -> Создать, сохранить и выйти . Сейчас больше половины нашей работы выполнено
Шаг 6: - Создайте новую папку на рабочем столе, чтобы наши файлы оставались в папке, иначе они будут разбросаны по всему окну рабочего стола. Назовите свою папку как хотите, и я предлагаю использовать то же имя для сохранения файлов программы.
У нас будут одно за другим три диалоговых окна для сохранения файлов. Сделайте то же самое с двумя другими диалоговыми окнами, которые появятся после сохранения первого.
Теперь ваше рабочее пространство выглядит так.
Большая часть нашей работы выполняется с помощью Мастера. Теперь нам нужно написать всего несколько строк кода для передатчика и приемника, и все…
Выполните те же действия, чтобы создать файлы для части приемника. В части приемника нашим выходом является только светодиод, поэтому установите бит порта B0 в выходной.
КОД и объяснение
Мы напишем код для беспроводного переключения светодиода с помощью RF. Полный код для Atmega на стороне передатчика и приемника приведен в конце этой статьи.
Код Atmega8 для передатчика RF:
Сначала включите заголовочный файл delay.h, чтобы использовать задержку в нашем коде.
#включают
Теперь, приходят к последним строкам коды, где вы найдете в то время как цикл. Наш основной код будет в этом цикле.
В While цикле, мы будем посылать 0x10 байт PORTD при нажатии кнопки, и будет посылать 0x20, когда кнопка не нажата. Вы можете использовать любое значение для отправки.
while (1) { если (PINB.0 == 1) { PORTD = 0x10; } если (PINB.0 == 0) { PORTD = 0x20; } } }
Код Atmega для приемника RF
Сначала объявите переменные над основной функцией void для хранения входящего символа из модуля RF.
#включают
Теперь пришел к в то время как цикл. В этом цикле, хранение входящих байт переменного полукокса байт и проверить, если входящие байты так же, как мы пишем в нашей передающей части. Если байты одинаковы, установите PortB.0 в высокий уровень и НЕ используйте PORTB.0 для переключения светодиода.
в то время как (1) { байт = PIND; if (PIND.7 == 0 && PIND.6 == 0 && PIND.5 == 0 && PIND.4 == 1) { PORTB.0 = ~ PORTB.0; delay_ms (1000); }}}
Постройте проект
Наш код готов. Теперь нам нужно построить наш проект . Щелкните значок Build the project, как показано.
После сборки проекта в папке Debug-> Exe создается файл HEX, который можно найти в папке, которую вы создали ранее для сохранения проекта. Мы будем использовать этот HEX-файл для загрузки в Atmega8 с помощью программного обеспечения Sinaprog.
Загрузите код в Atmega8
Подключите ваши схемы согласно данной схеме к программе Atmega8. Подключите одну сторону кабеля FRC к программатору USBASP, а другую сторону подключите к контактам SPI микроконтроллера, как описано ниже:
- Контакт 1 разъема FRC female -> Контакт 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 в раскрывающемся меню устройства. Выберите файл HEX из папки Debug-> Exe, как показано.
Теперь нажмите «Программа».
Вы закончили, и ваш микроконтроллер запрограммирован. Выполните те же действия, чтобы запрограммировать другой Atmega на стороне приемника.
Полный код и демонстрационное видео приведены ниже.