Главная » Компьютерная электроника
Призовой фонд
на ноябрь 2020 г.
1. 1500 руб
Сайт Паяльник
2. Мультиметр ANENG M118A
Сайт Паяльник
3. 525 руб.
От пользователей


Набор крокодилов, 20 шт.

Реле на COM-порт

Из приведенной статьи вы узнаете как управлять реле через COM-порт компьютера. Для переключения реле используется DTR-сигнал, находящийся на 4 ножке 9-ти контактного разъема D-SUB 9.

Схема управления реле через COM-порт

Как видно из вышеприведенной схемы, реле подключен не напрямую к последовательному интерфейсу, а через составной (дарлингтоновский) транзистор. Для лучшей защиты COM-порта, рекомендуется заменить транзисторы оптопарой (IC ≥ 100 mA). Разумеется, тогда резистор R2 нужно будет подобрать к оптопаре.

Транзистор BC517 можно заменить отечественным КТ645А.

Причиной присутствия в схеме транзистор (оптопары) является то, что выходная мощность COM-порта недостаточна для переключения катушки реле и требуется дополнительно питание. Напряжения питания 5В здесь будет достаточно, плюс его можно взять с блока питания компьютера. Только не рекомендую брать питание от USB! Это может привести к выходу из строя USB-порта или контроллера.

В Windows системах есть небольшой недостаток: во время загрузки винды реле будет щелкать несколько раз. Количество переключений зависит от версии Windows, к примеру в XP щелкает около 7 раз.

После того, как вы собрали конструкцию, возникает резонный вопрос: а как же управлять реле?

В операционных системах Windows прямой доступ к регистрам запрещен, поэтому для управления последовательным портом, мы пойдем другим путем. В C++ можно использовать функции Windows API. Для примера приведу несколько строчек кода:

// Объявление переменных
 HANDLE hcom;
 DCB dcb; //  "DCB" - структура, в которой содержится статус порта
 char *portname;
 portname="COM1";

 // Открываем дескриптор порта
 hcom=CreateFile(portname, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);

 // Считываем статус порта
 GetCommState(hcom, &dcb);

 // Устанавливаем DTR в "HIGH"
 dcb.fDtrControl=DTR_CONTROL_ENABLE;

 // Записываем новый статус
 SetCommState(hcom, &dcb);

 // Закрываем дескриптор (Это установит DTR в "LOW"!)
 CloseHandle(hcom);

В Linux системах можно использовать функции модема:

 #include 
 #include 
 #include 

 // Открываем порт (в моем случае это порт ttyS0)
 int fd = open("/dev/ttyS0", O_RDWR);

 // Устанавливаем DTR в "HIGH"
 int state = TIOCM_DTR; ioctl(fd, TIOCMSET, &state);

 // Устанавливаем DTR в "LOW"
 state = ~TIOCM_DTR; ioctl(fd, TIOCMSET, &state);

 // Закрываем порт
 close(fd);

Исходники и программы можно скачать здесь

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
T1 Биполярный транзистор
BC517
1 Составной транзисторПоиск в магазине ОтронВ блокнот
D1, D2 Диод2 Поиск в магазине ОтронВ блокнот
R1 Резистор
150 Ом
1 Поиск в магазине ОтронВ блокнот
R2 Резистор
100 кОм
1 Поиск в магазине ОтронВ блокнот
LED Светодиод1 Поиск в магазине ОтронВ блокнот
REL1 РелеG2RE1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

none Опубликована: 2011 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (2) | Я собрал (0) | Подписаться

0
Findipers #
А как оптопару поставить вместо транзистора?
Ответить
0
Elektromonterius #
Ссылка на исходники устарела и по ней нельзя скачать исходники. Прошу перезалить!
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

МиниПК MK809V - 4 ядра, Android 4.4.2
МиниПК MK809V - 4 ядра, Android 4.4.2
Квадрокоптер Syma X11 Солнечная панель 10Вт 12В поликристаллическая
вверх