В наше время все больше находят применение устройства, позволяющие управлять нагрузками с помощью ПК. Обычно это некий коммутатор силовых нагрузок, подключаемый к компьютеру и специальное программное обеспечение.
Встречаются готовые образцы, которые позволяют управлять нагрузками удаленно через интернет, например, давая возможность включать свет, ТЭНы в бане, различные клапаны и т.д. Современные технологии позволяют делать устройства миниатюрными и быстродействующими.
Описанное в статье устройство создавалось в рамках учебного курса университета в виде курсового проекта, поэтому начну с самого начала.
Содержание статьи / Table Of Contents
↑ Анализ
Для решения задачи я решил применить микроконтроллер, который должен иметь на борту приемопередатчик UART и минимум три свободных порта для трёх каналов управления (количество их может быть увеличено и зависит от числа нагрузок). Вполне подходящим оказался микроконтроллер семейства AVR - ATMega8, как самый распространенный и недорогой.Для создания связи устройства через USB-порт с ПК я использовал аппаратный преобразователь USB-UART с использованием микросхемы FT232RL.
↑ Схема структурная
Структурную схему можно представить в следующем виде:Тут все очень просто и почти не требует пояснения. Вся электрическая часть устройства состоит из следующих элементов:
a) Блок управления включения/выключения нагрузки
b) Микроконтроллер
c) Преобразователь USB – UART
d) ПК и программа управления устройством
После подключения устройства к ПК пользователь запускает программу управления устройством. При удачном подключении от устройства придёт сообщение, после чего можно будет управлять нагрузкой. Данные о включении или выключении выводятся в окне программы.
↑ Схема электрическая принципиальная
Связь с компьютером осуществляется с помощью преобразователя USB-UART на FT232RL, для чего используется выводы 3 и 4 порта D микроконтроллера, соответствующие сигналам RxD и TxD. Схема подключения осуществляется согласно документации на FT-232RL и ATMega8. Кварцевый резонатор имеет частоту 7.3728 Мгц. Управление нагрузкой осуществляется с помощью гальванически развязанного ключа на симисторе BT138-600 и оптопаре MOC3061. Такого ключа достаточно для нагрузки до 12А.Схема выглядит следующим образом:
Исключён фрагмент. Полный вариант доступен меценатам и полноправным членам сообщества.
↑ А как же это все должно работать?
Подойдя к стадии написания программного обеспечения для МК я задался вопросом, а как же это все будет работать. Немного подумав, я решил, что алгоритм работы должен выглядеть следующим образом:После включения микроконтроллера (его подключения к ПК), инициализируется его работа, устанавливается режим работы приемо-передатчика UART, после чего разрешаются прерывания и МК ждет приема данных от программы, запущенной на ПК.
При запуске программы и удачном подключении устройства, программа обменивается с МК данными иполучает сообщение об удачном подключении. При повторном подключении программы к уже включенной плате, устройство посылает сообщение о количестве и номере включенных устройств.
Работает МК в режиме ожидания, пока не произойдет прерывание по приему данных. Описанный выше цикл повторяется бесконечно, пока включено питание устройства.
↑ Прошивка для МК
Программа, отвечающая за работу МК написана с использованием WinAVR и отлаживалась виртуально на ПК при помощи пакета ISIS 7 Professional. Увидеть исходный код и получить готовую прошивку можно скачав архив внизу статьи.Если кому-то будет интересен результат компиляции кода, то он представлен ниже:
↑ Программа для ПК
Написание программы для ПК для меня было уже куда более интересным. Т.к. раньше мне уже доводилось встречаться с Delphi изначально был выбран он. Но дойдя до стадии использования в проекте объекта для работы с COM-портом встретился с проблемой (возможно сам не доглядел): ни в одной сборке студий я такой объект не обнаружил.Тогда я взял самоучитель по С# и, посидев с ним 2 вечера после работы, приступил к написанию пробной версии программы. Внешне вышла она не очень привлекательной, но это не главное. Главное - работает!
В верхнем разделе меню я добавил небольшую справку о том, как должно быть сконфигурировано подключенное к ПК устройство.
В общем, программа получилась такой как я хотел, хотя осталась еще пара идей, которые хотелось бы реализовать позднее.
Для работы программы COM-порт необходимо настроить следующим образом:
Baund Rate - 9600
Data bits - 8
Stop Bits - 1
↑ Сборка
Проект был собран на монтажной плате, ПП не разрабатывалась. Прилагаю к статье файл модели в Proteus 7.6 SP4.
↑ Заключение
В заключении хочется сказать, что работа над проектом продолжается.В планах:
• реализация FIFO,
• наращивание числа коммутаторов,
• доработка управляющего ПО
Спасибо за внимание!
↑ Файлы
Исходники и прошивка МК:🎁AVR.zip 70.42 Kb ⇣ 93
Программа управления по USBдля Win:
🎁USB-Controll.zip 26.83 Kb ⇣ 88
Модель в Proteus 7.6 SP4:
🎁All.zip 920.45 Kb ⇣ 79
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.