Управление приборами через сом-порт компьютера

Устройство компьютерного управления
различными приборами, схема которого показана на рис. 1, функцио­нально подобно
описанному в , но подключается к USB-порту компьюте­ра, который (в отличие
от СОМ-порта) сегодня есть в каждом из них. Единственная мик­росхема устройства
- распространенный мик­роконтроллер ATmega8. Он необходим для орга­низации
связи по шине USB. Хотя в нем и отсут­ствует специализирован­ный аппаратный
модуль, эта функция выполняется программно. Резистор R1, подклю­ченный между
положи­тельным выводом источ­ника питания и линией D-шины USB, переводит ее в низкоскоростной
режим LS со скоростью обмена 1,5 Мбит/с, что и позво­ляет расшифровывать по­сылки
компьютера про­граммным способом. Ре­зисторы R4 и R5 устра­няют переходные
процес­сы, возникающие при об­мене информацией, что увеличивает стабильность работы.
Конденсатор С1 блокирует импульсные по­мехи в цепи питания, что также улучшает
стабиль­ность работы устройства. Диоды VD1 и VD2 служат для понижения напряже­ния
питания микроконт­роллера приблизительно до 3,6 В - это требуется для
согласования уровней с шиной USB. Сигналы управления приборами формируются на
выходах РВ0-РВ5 и РС0, РС1 микроконтроллера. Высокий логический уровень -
напряжение око­ло 3,4 В. Напряжение низкого уровня близко к нулю. К выходам
можно под­ключать приборы, потребляющие ток не более 10 мА (от каждого выхода).
Если требуются большие значения тока или напряжения, то следует использовать узлы
согласования, показанные в на рис. 5 и 6.

Устройство собрано на макетной плате,
печатная не разрабатывалась. Применены резисторы МЛТ, конденса­торы С2 и С3 -
керамические высоко­частотные, С1 - К50-35 или аналогич­ный импортный. Диоды
кремниевые с падением напряжения на переходе около 0,7 В. Программа для микро­контроллера
разработана в среде Bascom-AVR версии 1.12.0.0. Для работы с шиной USB
использована библиотека swusb.LBX, которая выполняет программное декодирование сигналов
USB в режиме реаль­ного времени. Полученный в результате компиляции код программы
из файла с расши­рением HEX следует загрузить во FLASH-память микроконт­роллера.
Для этого был ис­пользован программатор совместно со встроенной в Bascom-AVR
утилитой. Состоя­ние разрядов конфигурации микроконтроллера должно со­ответствовать
показанному на рис. 2. При первом подключении устройства к компьютеру опе­рационная
система обнаружит новое USB HID совместимое устройство с именем
“uniUSB” и установит необходимые драйверы. Через несколько се­кунд
устройство настроено и готово к использованию.

Для работы с ним была создана программа
UniUSB. Она пред­ставлена в двух вариантах: для 32-разрядных (х86) и 64-раз­рядных
(х64) операционных систем семейства Windows. Работа 32-разрядной версии проверена
в операционных системах Windows 98, Windows ХР, Windows 7, а 64-разрядной -
только в Windows ХР х64. Программа UniUSB написана на языке PureBasic (версия
4.31) с исполь­зованием библиотеки пользовательс­ких функций HID_lib,
поддерживающей работу с USB HID устройствами. Внеш­ний вид окна программы
показан на рис. 3. В одной папке с ее исполняемым файлом должен находиться
файл, называющийся UniUSB_Код.txt или UniCOM_Код.txt. Последний вариант необходим
для совместимости с про­граммой UniCOM, предложенной в . В этом файле
хранится сценарий управ­ления внешними приборами. При запуске программы данные
из файла загружаются в таблицу, расположенную в главном окне, а при завершении
рабо­ты сохраняются в файле. Щелчок левой кнопкой мыши по ячейкам таблицы поз­воляет
изменять их состояние: 1 - высокий логический уровень, 0 или пусто - низкий
логический уровень. Для добавления или удаления столбца таблицы нужно по ней
щелкнуть правой кнопкой мыши и в появившемся меню выбрать требуемое действие.

При подключении устройства к USB-порту
программа обнаружит его и активирует кнопку, расположенную в верхней части
окна на панели инстру­ментов. Нажатием на эту кнопку запус­кают процесс
перебора столбцов таб­лицы и установки указанных в них со­стояний выходов. Для
большей нагляд­ности слева от таблицы подсвечивают­ся номера выходов, на
которых в дан­ный момент установлен высокий логи­ческий уровень. Скорость
перебора (время в миллисекундах между перехо­дами от столбца к столбцу) задают
в поле “Скорость, мс”.

Учтите, операционная система Windows
- многозадачная! Это означает, что процессорное время делится между множеством
иногда скрытых от пользователя процессов, которые вы­полняются по очереди с
учетом уста­новленных в системе приоритетов. По­этому не стоит ожидать большой
точно­сти выдерживания интервалов времени менее 100 мс. Для кратковременной
остановки пе­ребора столбцов используйте кнопку Повторное нажатие на нее
продолжит перебор с места остановки. Кнопка полностью прекращает перебор столб­цов
таблицы. Если в процессе обмена информацией между компьютером и устройством
произойдет сбой либо уст­ройство будет отключено от разъема USB компьютера,
программа сообщит об ошибке, выведя в строке состояния соответствующее
сообщение.

ЛИТЕРАТУРА

1. Носов Т. Управление приборами
через СОМ-порт компьютера. - Радио, 2007, № 11,0.61,62.

2. Рыжков А. US-программатор
микро­контроллеров AVR и AT89S, совместимый с AVR910. - Радио, 2008, № 7, с.
28, 29.

От редакции . Программы для микро­контроллера и компьютера находятся
на нашем FTP-сервере по адресу ftp:// ftp.radio.ru/pub/2011/02/uniUSB.zip

В наше время в каждой мастерской по ремонту электротехники, да, в прочем, и у каждого радиолюбителя рабочий день начинается с включения ПК, а уж потом и вспомогательного электрооборудования. В прочем с включения ПК рабочий день начинается не только у радиолюбителей, но и во многих пользователей сего «девайса», плотно вошедшего в нашу жизнь. А вот каждый день включать утром и выключать вечером, ну, предположим, принтер, активные колонки, настольную лампу да мало ли чего можно встретить у рядового пользователя, немножко надоедает. Исходя из условленных задач была поставлена цель создать коммутатор нагрузки, предназначенный для включения-выключения всех сопутствующих устройств. Соглашусь можно пойти по пути наименьшего сопротивления и поставить на всё обыкновенный выключатель, но, похоже, это не путь для радиолюбителя. Мы будем делать гораздо удобнее - встроим автомат в сетевой фильтр:

Так как устройство отслеживает факт включения-выключения устройства по принципу «ведомый-ведущий» самый простой способ - использовать USB порт. Обозначу сразу, при использовании USB порта устройство работает в ноутбуках и компьютерах с блоком питания, отключающем все источники питания. К примеру, в последних моделях блоков питания +5 вольт USB порта присутствует как дежурное даже при выключенном блоке. С ними устройство работать не будет, точнее будет, но постоянно включено. Здесь необходимо как источник сигнала использовать какой либо иной порт, и, соответственно, согласовывать сигнал источника и исполнительного механизма.

В данном устройстве исполнительным механизмом служит реле, с контактами, рассчитаными на 16 ампер и с катушкой на 5 вольт. Использование реле выполняет гальваническую развязку источника сигнала и сети 220 вольт.

После проведения ряда экспериментов было установлено, что при питании, согласно паспортных данных, +5 вольт реле потребляет 150 мА тока. Если использовать стационарный компьютер - нет никаких проблем, ибо +5 вольт USB порта идут непосредственно с блока питания и не сильно нагружают его. Если всё вышесказанное устраивает на этом - можно остановиться и сделать свой вариант по ниже приведенной схеме.

Но если планируется использовать ноутбук, то как бы прогонять дополнительные 150 мА через через компьютер не желательно, в таком случае необходимо использовать дополнительный блок питания 5 вольт. В данном варианте был использован импульсный источник питания от зарядного устройства от мобильного телефона. Можно использовать любой нестабилизированный источник питания при условии, что он может обеспечить напряжение 5 вольт и ток порядка 250 мА с учетом запаса. Также можно использовать и другое напряжение, но в таком случае необходимо будет взять и реле с соответственным напряжением питания. Для согласования источника сигнала с реле и источником питания необходимо установить транзисторный ключ типа:

Транзистор выбран типа КТ815 с любой буквой и резистор 1 кОм, диод - КД522. При такой схеме включения ток потребления показал 4 мА, что не столь существенно для ноутбука. Светодиод LED1 и LED2 обозначают состояние цепи. По желанию вместе с резисторами их можно исключить из схемы.

Устройство управления 220 В собрано в свободном месте корпуса розетки - сетевого фильтра. Файл схемы в сплане находится

Компьютер, некоторые детали, инструменты любой желающий сможет организовать простое управление бытовыми приборами с этого компьютера. Множество приборов используемых в быту имеют множество функций, например большинство современных телевизоров могут показывать некоторое количество разных каналов, у вентилятора м.б. некоторое количество разных режимов работы и т.д. Для того чтобы сделать такое сложное управление как например переключение каналов или режимов работы, помимо перечисленного выше понадобятся дополнительные знания, детали и инструменты но сделать простое включение и выключение под силу каждому кто это перечисленное имеет. Arduino связывается с компьютером через USB порт, передачу информации с компьютера на Arduino можно осуществлять через среду разработки для Arduino (называется Arduino IDE) которую можно скачать с страницы на официальном сайте Arduino . Существует множество разнообразных модулей для взаимодействия Arduino с внешним миром, например специальный модуль с блоком реле для коммутации нагрузок, при использовании таких модулей работа сильно упрощается, здесь же мы рассмотрим самостоятельное изготовление модуля с одним реле для включение/выключения бытовых приборов, при необходимости можно изготовить более одного такого модуля и использовать их с одним Arduino тем самым сделав возможным простое управление множеством бытовых приборов. Arduino (любое) имеет некоторое количество выводов общего назначения которые обозначаются, на плате, просто цифрами или цифрами с волнистым знаком "~". Подключив Arduino к компьютеру и записав в него (в Ардуино) специальный скетч (программа для Arduino) можно с этого компьютера через программу "Arduino IDE" управлять этими выводами делая на них высокое напряжение (примерно +5В (HIGH)) или низкое (примерно 0В (LOW)). Также на Arduino есть вывод "GND" (на плате так и обозначен). Если на одном из выводов общего назначения высокое напряжение то подключив что либо проводящее ток между этим выводом и выводом "GND" через то что подключено потечёт электрический ток и величина этого тока будет зависеть от сопротивления этого предмета и рассчитать её можно по , т.е. чем меньше сопротивление том больше ток, но если сопротивление будет слишком низким то через Arduino потечёт слишком большой ток и оно перегорит. Максимальный ток который может выдать вывод общего назначения Arduino может быть разным в зависимости от используемого в нём микроконтроллера но обычно это 40мА = 0.04А - этого может быть недостаточно для того чтобы включить реле которое будет включать прибор (приборы) поэтому для усиления тока необходимо использовать дополнительный элемент например биполярный транзистор. Биполярный транзистор имеет три вывода: эмиттер, коллектор, база. Максимальный ток транзистора также ограничен как и у Ардуино и обычно он больше, например у популярного КТ315 максимальный ток равен 100мА = 0.1А. Биполярные транзисторы бывают двух типов n-p-n и p-n-p использовать можно оба типа но по разному и далее рассмотрим использование транзистора КТ315 тип которого n-p-n. Для того чтобы транзистор усилил ток из Ардуино необходимо соединить его базу с выводом Ардуино ЧЕРЕЗ РЕЗИСТОР сопротивлением 1кОм (на резисторе м.б. написано 1к), эмиттер этого транзистора соединить с "GND" Arduino и минусом питания или "GND" источника питания напряжение которого равно напряжению обмотки имеющегося реле (допустим 12В) один из выводов обмотки реле соединить с коллектором транзистора другой с плюсом источника питания (+12В допустим) и ещё одной не влияющей на усиление но ОЧЕНЬ важной деталью является диод который нужно соединить анодом с коллектором и катодом с плюсом источника питания (+12В). Если диод импортный то на скорее всего на его корпусе будет светлая полоса - она указывает на катод, другой вывод диода это анод. Оставшиеся выводы реле - это выводы его контактов, если их два и они не замкнуты то при подаче достаточного тока на обмотку реле эти контакты замкнуться, их нужно соединить последовательно с прибором и это последовательное соединение можно втыкать в розетку, тогда при замыкании контактов на прибор поступит 220В и он включиться. Описанное выше можно изобразить на картинке:

Рисунок 1 - Управление прибором с компьютера


Это нестандартная схема для лучшего понимания, обычно используют схемы такие:

Рисунок 2 - Управление прибором с компьютера


Хотя в этой схеме тоже присутствует нестандартное обозначение платы Ардуино. На рисунке обозначено Arduino UNO (можно заказать по этой ссылке http://ali.pub/1v22bh) но можно использовать и любое другое. Соединения можно делать например на макетной плате и проводами или пайкой. После того как всё правильно соединено и проверено можно подключить Ардуино по USB к компьютеру и загрузить в неё скетч:

Char pc_code=0;

Void setup()
{
pinMode(2, OUTPUT);
Serial.begin(9600);
}

Void loop()
{
if (Serial.available() > 0)
{
pc_code = Serial.read();
if(pc_code=="a")
{
digitalWrite(2, HIGH);
}
else if(pc_code=="b")
{
digitalWrite(2, LOW);
}
}
}

О том как правильно настроить Ардуино и загрузить в неё скетч уже описано на странице . Далее для включения прибора необходимо на Ардуино отослать символ "a" для выключения символ "b". Для того чтобы отослать символ на ардуино можно, в среде Arduino IDE, войти по вкладке Инструменты-Монитор последовательного порта и в появившемся окне в верхнем текстовом поле вписывать символы и отсылать нажатием кнопки "отправить" символ придёт на ардуино и для данного случая если отослать символ "a" то прибор включиться, если "b" то соответственно выключиться. Если Ардуино не принимает символы то нужно в правом нижнем углу окна монитора последовательного порта установить такую же скорость какая прописана в скетче т.е. 9600 бод. Для того чтобы включать 2 прибора можно немного изменить скетч:

Char pc_code=0;

Void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
}

Void loop()
{
if (Serial.available() > 0)
{
pc_code = Serial.read();
if(pc_code=="a")
{
digitalWrite(2, HIGH);
}
else if(pc_code=="b")
{
digitalWrite(2, LOW);
}
else if(pc_code=="c")
{
digitalWrite(3, HIGH);
}
else if(pc_code=="d")
{
digitalWrite(3, LOW);

Скорость переключения

Выбор COM-порта

Кнопка старт и пауза

(включение порта)

Кнопка стоп

(отключение порта)

Кнопка настройки выходов

Кнопки ручного

управления входами (1, 2, 3)

Кнопка очистки таблицы

Кнопка вызова справки

Кнопка выхода из программы

Индикаторы, имитирующие

работу выходов

Сетка таблицы со значениями

(пустые ячейки
приравниваются к нулю)

Для управления нагрузкой в схемах с постоянным напряжением, например 24В, можно использовать любые мощные составные транзисторы - в нашем случае КТ829.

Для коммутации переменного тока 220В проще всего использовать так называемый полупроводниковый ключ переменного тока, который имеет на входе оптодрайвер с детектором нуля фазы, что обеспечивает гальваническую развязку.

Для увеличения коммутируемого тока симистор устанавливается на радиатор. Обратите внимание - в высоковольтной части использованы сопротивления мощностью 0,5 Вт.

Не забывайте о технике безопасности - во время работы коммутатора не касайтесь оголенных элементов, а при перепайке деталей и проводов отключите коммутатор от сети.

Плата выполнена из одностороннего фольгированного текстолита. Размер платы 30х25мм. На плате под корпусом микросхемы впаяна перемычка. В целях защиты от перегрева микросхемы во время пайки использована 16-контактная панель под микросхему.

Для управления выходами (светодиодами), устройство достаточно соединить с ПК 4х проводным шнуром. Шнур распаивается на стандартный разъем к COM-порту - розетку DB9.

Сигнал +5В для общего провода цифровых входов берётся из схемы устройства. Сопротивления в линиях цифровых входов можно распаять в корпусе розетки DB9.

К цифровым входам можно подключить кнопки, тумблера, микропереключатели.

Справочная информация

Основой устройства является доступная микросхема 74hc595, представляющая собой последовательный регистр сдвига с выходной блокировкой. Для управления этой микросхемой достаточно трёх сигнальных линий. В нашем случае сигналы инициируются в программе управления UniCOM и выдаются через интерфейс RS-232 (COM-порт). В качестве сигнальных линий в этом интерфейсе использованы линии 9-контактного разъема: RTS - 7 контакт, DTR - 4 контакт и TxD - 3 контакт.

Принцип работы микросхемы 74hc595 заключается в последовательной записи логических сигналов высокого и низкого уровней, подаваемых на вход DS (14 ножка). Запись осуществляется задним фронтом (переход из лог. 1 в лог. 0) на входе SH_CP (11 ножка). Вывод записанных данных происходит также задним фронтом, но на входе ST_CP (12 ножка). Таким образом, на ножках 1-7 и 15 появляются уровни последних восьми записанных сигналов.

Высокому уровню сигнала на выходах (ножки 1-7 и 15) соответствует напряжение питания микросхемы - в нашем случае +5 Вольт, а низкому уровню соответствует 0 Вольт. Сигналы на выходах являются статическими, т.е. неизменными до тех пор, пока не придёт очередной импульс на вход ST_CP (12 ножка). Необходимо отметить, что снижение напряжения питания ниже минимального уровня ведет к сбросу сигналов на выходах. Согласно документации на микросхему, минимальное напряжение питания составляет 2 вольта.

Сопряжение интерфейса RS-232 с микросхемой 74hc595 сделано посредством стабилитронов на 5,1В. Согласно спецификации на RS-232 высокий уровень сигнала лежит в диапазоне от +3 до +25В, что позволяет нам организовать обратную связь с программой управления UniCOM.