Делаем LPT программатор для AVR микроконтроллеров. LPT-port: особенности и принципы работы Управление нагрузками через ltp порт

Приветствую, вас друзья! Сегодняшнюю статью я хочу посветить старым принтерам, которые подключатся с помощью LPT кабеля. А точнее, хочу более подробно раскрыть тему о том, почему может не печать принтер подключены по LPT соединению, и что можно предпринять для того, что бы принтер начал работать нормально.

Конечно на дворе сегодня 21-й век, в котором уже даже не выпускаются подобные принтеры, также как и на материнских платах, более новых моделей, порт LPT тоже исчез. Это конечно всё верно, но, даже в наше время сейчас у многих подобные принтеры ещё есть и используются, при этом полностью в рабочем состояние, с отличным качеством печати.

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

Поэтому, сейчас я рассмотрю самые основные проблемы, рекомендации и советы, которые помогут настроить ваш аппарат и понять почему принтер не печатает через LPT кабель.

Список самых популярных причин, почему не печатает принтер подключённый по LPT

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

    Этот вариант проверен мной уже не раз на практике, так что такое бывает и очень даже часто, рекомендую не относится к этому совету легкомысленно, а обязательно принять его во внимание.
  • Итак, идем дальше. Третей причинной из-за которой не печатает принтер подключенный по LPT является драйвера. В начале, я упоминал о том, что многие принтеры уже не поддерживаются производителями в виде программного обеспечения, что является очень не удобный для того чесла потребителей которые до сих порт используют подобные устройства.

    Так вот, если у вас Windows 7,8 или 10, рекомендую заходить на сайт производителя и качать от туда драйвера для Windows Vista. Хоть эти операционные системы разные, но архитектура у них одна поэтому, все драйвера, которые идут на Vista подойдут и для остальных более новых систем.Этот вариант я тоже практикую постоянно и он ни разу меня ещё не подводил, принтеры которые не печатали по LPT, начинали работать как ни в чём не бывало.
  • Если вы всё-таки не нашли нужный вам драйвер для вашего устройства (Например: HP LaserJet 5L или 4L ) и вам не подошли, то программное обеспечение, которое заранее установлено в операционной системе, тогда я, вам рекомендую, попробовать скачать «универсальный драйвер для печати ».

    Как правило, подобные драйвера присутствуют у всех производителей принтеров и МФУ. Заметил такую штуку, что при обращение в техническую поддержку с проблемой связанной с драйверами (Например, не можете найти нужный драйвер ), тех. служба сразу же рекомендует попробовать и проверить результат.Скажу от себя, что иногда он помогает, но, попадаются случаи, когда установив этот драйвер, с принтером ничего не происходит и он продолжает молчать как и ранее.Но всё же, если у вас не печатает принтер подключенный по LPT и вы не можете найти нужное вам программное обеспечение, тогда обязательно скачайте и попробуйте тот универсальный драйвер, который вам предложит производитель вашего принтера. Возможно вы окажитесь счастливчиком и он вам поможет, но может быть и на оборот, так что не огорчайтесь.
  • Попробуйте подключить другой LPT кабель. Конечно, если вы не нашли на основном кабеле ни одного повреждения о которых я говорил в первом пункте, тогда скорей всего с ним всё нормально. Но все же, если у вас есть такая возможность как взять совсем другой LPT и подключить его, тогда сделайте это, да бы полностью исключить этот вариант неисправности устройства
  • Иногда, причиной по которой не печатает принтер подключенный по LPT капелью, является неправильная настройка принтера при первом его подключение. А именно, я имею веду тот момент, когда вы начинаете , у вас просят выбрать порт к которому подключено устройство, вам нужно однозначно выбрать LPT1 (Так как на материнской плате обычно присутствует только один порт LPT ).

    Многие по случайности выбирают LPT2 или LPT 3, что неверно и в результате в дальнейшем тратят уйму времени на то, что бы разобраться в чем была ошибка из-за которой не печатает принтер и как её исправить. Так что при выборе порта будьте внимательны, и обязательно выбирайте LPT 1, и тогда всё у вас будет работать нормально.
  • Ну и в заключительном пункте, расскажу о такой штуке, как Parallel port, с помощью которого и подключается принтер к компьютеру. Данный порт включается, отключается и полностью настраивается в БИОСе, кстати, именно из-за этих настроек иногда принтер подключённый по LPT и не печатает.Дело в том, что на некоторых материнках Parallel port по умолчанию отключен и принтер начинает печатать только после его включения. Но, чаще всего это происходит в тех случаях, когда , и все установки сбрасываются к заводским, как в общем и настройки порта.

    В результате при следующем включение принтер уже не будет печатать так, как нужный порт, будет попросту отключен в меню BIOS. Поэтому, и проверяем не отключен ли там нужный нам Parallel por, если стоит «Disable», тогда включаем его и радуемся работе принтера.

Хочу заметить, что данная статья не является пошаговой инструкцией, а просто советами, которыми можно воспользоваться при настройке вашего устройства. Возможно именно эти советы вам и помогут разобраться, почему не печатает ваш принтер который был подключен по LPT.

Подключение LCD дисплея к компьютеру, не представляет не какой сложности. Этот процесс не дорогой и эффективный способ повысить функциональность вашего ПК.

Будем использовать наиболее распространенный тип LCD индикаторов с микро контроллером HD44780 или на его аналоге KS0076 или KS0066 и т.д.., я использовал wh2004A-YYB-GT стоимость около 240 рублей.

Существует несколько способов подключение LCD к компьютеру, в данной статье рассмотрен наиболее простой из них: подключение к LPT по 7ми линиям управления. Это 4 линии данных, 3 линии управления, также у индикатора есть 5 выводов для подключения питания и настройки. Почему я не задействовал все 8 линии данных – потому что при написании программы я использовал стандартные 8 линий данных LPT порта (4 из которых на данные и 3 на управление), с регистрами данных я связываться не захотел.

Нам понадобится:

  • LCD дисплей
  • 2 переменных резистора
  • провод Bitronics (применяется для подключения принтера через LPT).
  • Провод для подключения питания. Тут несколько вариантов откуда можно запитать девайс не прибегая к посторонним источникам питания, а используя питание от компьютера: от Molex (внутренние разъёмы питания в компьютере, используются для подачи питания на дисководы и винчестеры), от USB порта.

Выбор дисплея

Начнём с выбора дисплея, т.к. это самая важная часть нашего устройства. Он должен быть на микроконтроллере HD44780, возможны и аналоги KS0076 или KS0066…, но я с ними не проверял. Они бывают с подсветкой и без подсветки, различного цвета символов и подсветки, отличаются количеством строк и символов в строке, размером символа и корпуса…

Вот распространенные размеры дисплеев

1х10 1х16 1х20 1х24

1х40 2х16 2х20 2х24

2х40 4х16 4х20 4х40

Маркировка дисплеев фирмы МЭЛТ:

Подбор деталей

Переменные резисторы


Понадобится 2 любых переменных резистора, но лучше и целесообразнее использовать подстрочные т.к. они более компактные и после настройки дисплея вряд ли понадобятся.

Один для регулировки контрастности (примерно 10 кОм (10-36кОм), я использовал 22 кОм) и яркости подсветки дисплея (примерно 100 Ом)

Bitronics

Нам понадобится не весь кабель, а только его часть.

Провод для подключения питания.

Если конструкция располагается вне корпуса компьютера то удобнее запитаться от USB разъёма, их в компьютерах обычно много и большинство из них обычно простаивают. Приобретём USB провод формата A->B или USB удлинитель

Если конструкция будет установлена внутри компьютера (например: в отсеке 5 дюймового дисковода) то её удобнее запитать будет от MOLEX разъема

Также можно приметь любой другой источник питания выходным напряжением 5 вольт.

Приступим к сборке

Выводы на LCD дисплее могут, располагается несколькими вариантами:


Схема подключения:

1 Земля (черный провод на Molex) Земля

2 +5V (красный провод на Molex) Power

3 Земля (черный провод на Molex) Регулятор контраста дисплея. Заземление дает максимальный контраст. Для плавной регулировки используйте 10кОм подстроечный резистор.

4 Контакт 16 на LPT (Зеленый/белый провод) Выбор регистра

5 И снова земля… Селектор Read/Write. Так как мы не собираемся ничего считывать с LCD, можем смело его заземлять - это будет держать LCD постоянно в режиме Write.

6 Контакт 1 на LPT (розовый провод) Enable - Strobe

7 Контакт 2 на LPT (красный провод) Бит 0

8 Контакт 3 на LPT (желтый провод) Бит 1

9 Контакт 4 на LPT (зеленый провод) Бит 2

10 Контакт 5 на LPT (белый провод) Бит 3

11 Контакт 6 на LPT (голубой провод) Бит 4

12 Контакт 7 на LPT (пурпурный провод) Бит 5

13 Контакт 8 на LPT (розовый провод) Бит 6

14 Контакт 9 на LPT (серый провод) Бит 7

Можно воспользоваться приведённой выше таблицей, но не все провода могут быть сделаны по стандарту, поэтому лучше прозвонить.

Питание конструкции

Распиновка MOLEX

При питание от MOLEX разъема потребуются один чёрный и красный провод (подключаться к разъёму или откусывать его и напрямую использовать провода – ваше дело).

Распиновка USB

При питании от USB потребуются два крайних вывода.

Проверка

Если конструкция была правильно собрана и подключена к компьютеру, то индикатор должен реагировать следующим образом на регулировку движков переменных резисторов:

Резистор на 10 кОм будет менять контрастность дисплея: в крайнем положении на индикаторе потемнею сегменты, в противоположном положении индикатор нечего не будет отображать;

Резистор за 100 Ом должен менять яркость подсветки дисплея.

Резисторы не должны нагреваться – если это происходит то при сборки были допущены ошибки и их следует устранить.

Программа

Существует множество программ для подключения LCD дисплея к компьютеру, но они у меня либо отказались работать, либо не понравились – поэтому была написана своя программа — AL LPT to LCD .

Недавняя реализация простой на FreeBSD, дала почву для развития этой темы. По сути это ее продолжение но немного отделенное по смыслу.
В статье описан способ мониторинга наличия напряжения 220 вольт в электросети через LPT порт.

Статья будет полезна тем, у кого есть ПК с LPT портом, UPS без возможности управления с ПК, желающим корректного завершения работы ОС, вырубания соседних машин и уведомления при отсутствии электричества.

Дано:

UPS без возможности подключения к ПК.
Сервер FreeBSD с LPT портом
Простейшая безопасная схема для подключения 220 к LPT =).
Программа lptmon

Пример работы:

Гдето работает сервер, внезапно пропадает электричество. Cервер и его друзья: конвертер, маршрутизатор, серверы и пр. продолжают работать от UPS.
Cервер, почуяв неладное отправляет об этом смс админу, пишет лог, ждет минуту (вдруг это 5ти секундный сбой) и вырубает другие серверы. Все корректно завершено, данные не утеряны, админ в курсе.
Если электричество появилось, но минута не прошла и сервер не успел вырубиться, он отправляет смс админу что все впорядке и продолжает работать.
Если сервер успел вырубиться, и электричество появилось например через час, то при появлении 220 сервер врубается (через опцию в биосе), загружается, врубает другие сервера через Wake on LAN (прим: настройка Wake on LAN в статье не описывается) и отправляет смс админу о том что все ок.

Инструменты:

FreeBSD + mysql (второе не обязательно, только для лога)
LPT порт
Паяльник, припой, канифоль, провода
Cхема мониторинга 220 (блок питания и оптрон)
программа lptmon

Суть:

У LPT порта есть 5 ног чтения (они же пины) 10,11,12,13 и 15, заметьте 14й тут нет!. Они являются входами и используются принтерами как тумблеры, при событиях например:
кончилась бумага,
принтер занят,
ошибка печати, итд итп.

Они то нам и нужны, к ним можно подключить 5 разных устройств.

Распиновка LPT порта

Под FreeBSD работает программа lptmon которая мониторит эти пины.
Если взять кусок проволоки и замкнуть любой из вышеперечисленных
пинов на землю. (земля - любой с 18 по 25 пин этого же LPT порта) то программа
будет считать что пин включился. Каждый пин, через программу lptmon, может вызывать 3 события при которых можно выполнять комманды или запускать скрипты:
1. Пин включился
2. Пин работает (срабатывает каждую секунду пока пин замкнут)
3. Пин выключился

Собстно lptmon выполняя комманды при событиях от пинов запускает скрипты которые пишут в базу лог срабатывания, текущее состояние устройств подключенных к lpt порту, сохраняет скриншоты с камеры на винт, отправляют смс если нада итд.

План действий

1. Собрать схему, подключить ее к LPT
2. Настроить lptmon
3. Настроить скрипты.

1. Сборка и подключение схемы

Т.к мы будем подключать 220 к порту, необходимо позаботиться о его безопасности. Для этого нужно использовтаь небольшое напряжение, для чего берем блок питания (я нашел на 5в, 2.5А от конвертера) подключаем его к оптрону через резистор и потом уже к LPT.
Оптрон, грубо говоря, работает по принципу: если есть достаточное напряжение и сила тока на 1 и 2 ногах то он замыкает 5 и 4 ноги. Если силы и напряжения не достаточно (когда БП выключен) то он не замыкает 4 и 5 ноги. А если более чем достаточные (например бп переглючил и он стал давать 120вольт) то оптрон сгарает и это не влияет на 4 и 5 ноги (т.е на вторую цепь).
Поскольку оптрон (4n35) штука защитная, имеющая две цепи не связанные между собой, он еще и призван умирать при силе тока большей чем 60мА (это 0.06А, а у моего БП аж 2.5А). То есть, силы тока 2.5А более чем достаточно для того чтоб он испугался и умер. По этому, для того чтобы ограничить силу тока используем резистор. В моем случае это 500ом. Резистор подбирается индивидуально под блок питания. Вычислить резистор можно формулой R=U/I где U - напряжение дающее БП (вольты), I - нужная оптрону сила тока (Амперы) для работы. Сила тока нужная оптрону для замыкания второй цепи лежит в пределах от 0 до 60 мА, Допустим решили подавать ему 1мА для чего расчитаем резистор: R=5в/0.01А, R = 500 следовательно нам нужен резистор 500ом. Можно взять и меньше, 400, 300 ом главное чтоб сила тока не получилась больше 60мА.

Для подключения к LPT был разобран старый шнур от принтера. В корпусе от шнура собраны гнездо для подключения БП и оптрон.
Вот что получилось:

Готовый lpt разьем и черный кабель от БП.


Оптрон с резистором, они внутри разъема


2. Настройка lptmon

Создаем директорию /usr/local/etc/lptmon
качаем архив lptmon.tar.gz с программой lptmon и примерами скриптов и распаковываем:

#mkdir /usr/local/etc/lptmon #cd /usr/local/etc/lptmon #fetch http://zgbox.ru/files/notes/lptmon.tar.gz #tar -xzvf lptmon.tar.gz

Зеркало:

313 26.3kb 2011-06-29 lptmon, скрипты, исходники

В архиве лежит lptmon.c - это исходники программы, писал я ее сам, это моя первая программа на С++ под FreeBSD как и в прочем первая на C =) так что если есть примечения, дополнения - в студию.
Также там лежит сам уже откомпелированный файл lptmon, можно юзать его, установив chmod 777 lptmon если необходимо, а можно откомпелировать исходники коммандой

Теперь программа lptmon будет стартовать с системой, также ее можно стартовать вручную как просто запустив./lptmon так и выполнив rc.d скрипт /usr/local/etc/rc.d/lptmon start или stop
В запуске нет ничего особенного, просто запускается /usr/local/etc/lptmoon/lptmon а при stop убивается коммандой killall lptmon
Но пока не нужно ничего запускать, сначала нужно настроить конфиг, об этом чуть пожже.
Директория testlpt, в ней лежит программа pr22 и ее исходник для тестирования lpt порта. Работает просто: запускается, получает состояния с 10 по 15 пинов и если какойто пин замкнут на землю то выдает pin10 on
у меня в данный момент 10й пин замкнут на что программа отвечает

#./pr22 pin10 on

Можно смело использовать в своих скриптах
Итак собсно пробуем замнкть один или несколько из 10,11,12,13,15 пинов на землю (на любой с 18 по 25 пин) и запустить./pr22
Если программа показывает что замкнутые пин(ы) on значит все ок, если нет - то я хз почему не видит ваш lpt порт, ковыряйте исходники %)

Переходим к настройке самого lptmon.
Итак, исходя из того, что у нас будет подключена схема к 12 пину то сконфигурим так чтоб при событиях 12 пина при старте и запуске выполнялись скрипты 12_start, 12_end.

Ложим конфиг lptmon.config из расспакованного архива в /usr/local/etc/lptmon.config и редактируем любимым редактором, у меня это mcedit от mc.

#cp lptmon.config /usr/local/etc/lptmon.config #mcedit /usr/local/etc/lptmon.config

Это сокращенный, необходимый только для этой статьи конфиг, подробный в архиве.

#конфиг файл lptmon.config программы lptmon #должн лежать в /usr/local/etc/ #в параметрах допускаются табы и пробелы #ковычки не допустимы! #каждый пин может вызывать 3 события (выполнять комманды) при смене состояния: #1. при переходе из пассивного состояния в активное #2. при работе в цикле (срабатыват каждый раз при опросе если пин # в активном состоянии) #3. при переходе из активного состояния в пассивное pin12enable = yes pin12onstart = /usr/local/etc/lptmon/220v/12_start pin12oncycle = /usr/local/etc/lptmon/220v/12_cycle pin12onend = /usr/local/etc/lptmon/220v/12_end

3. Настройка скриптов

Листинг 12_start

#!/bin/sh #скрипт срабатывает когда дали электричество #или загрузился комп #двумя запросами пишем лог в базу и устанавливаем статус on для устройства 220v sql="use $db_name ; insert into objects_hist (obname,status ,dt) values \ ("$obname ","on",now());" #echo $sql /bin/echo $sql | /usr/local/bin/mysql -h$db_host -u$db_user -p$db_pass sql="use $db_name ; update objects set status ="on", dtstart=now() \ where obname="$obname ";" /bin/echo $sql | /usr/local/bin/mysql -h$db_host -u$db_user -p$db_pass #отправляем смс админу о том что 220 дали или серв включился /usr/local/etc/lptmon/sms "220v ON "`date +%m.%d-%H:%M:%S`

листинг 12_end

#!/bin/sh #срабатывает когда отключилось 220 db_host=localhost db_pass= db_user=root db_name=security obname=220v #пишем в базу логи и состояние off устройства 220v sql="use $db_name ; insert into objects_hist (obname,status ,dt) values \ ("$obname ","off",now());" #echo $sql sql="use $db_name ; update objects set status ="off", dtend=now() \ where obname="$obname ";" #/bin/echo $sql | /usr/local/bin/mysql -h$db_host -u$db_user -p$db_pass #отправляем смс о том что нет электричества и ставим таймер на 60 сек #по завершению которого скрипт 12_cycle вырубит компы /usr/local/etc/lptmon/sms "220v OFF "`date +%m.%d-%H:%M:%S` echo 60 > /usr/local/etc/lptmon/220v/timer

Эти скрипты выполняют по два Sql запроса к mysql. Запросы обновляют текущее состояие устройства с именем 220v в таблице objects и пишут лог в таблицу objects_hist. Дамп структуры таблиц dump_security.sql также лежит в архиве.
Помимо этого скрипты отправляют смс.
Скрипт 12_end записывает цифру 60 в файл /usr/local/etc/lptmon/220v/timer для того чтобы потом скрипт 12_cycle который будет срабатывай каждую секунду пока нет электричества, брал эту цифру и отнимал по единице. Когда станет 0 он запустит программу wudown которая вырубит по сети комп с windows (ip 192.168.97.52) и вырубит сервак коммандой shutdown -p now.
листинг 12_cycle

#!/bin/sh path=/usr/local/etc/lptmon/220v/timer timer=`cat $path ` timer=`expr $timer - 1`; if [ $timer -gt 0 ]; then echo $timer > $path echo $timer else echo "shuttdowning..." /usr/local/bin/wudown 192 .168 .97 .52 1209 shutdown shutdown -p now fi

размещено: 2011-06-29,
последнее обновление: 2011-08-21,

Начало:

Все началось с того что я случайно наткнулся на необычный сетевой фильтр от братьев наших китайцев. Это был обычный сетевой фильтр, но с управлением каждой розеткой отдельно и через программную оболочку с ПК по LPT-порту.

Меня заинтересовала сама идея управления мощными нагрузками с ПК. Тогда и было решено создать что-то подобное. Покопавшись в интернете, нашел много схем позволяющих реализовать подобную задачу. В итоге оставалось только произвести корреляцию собранного материала и объединение его в единое целое для создания рабочего прототипа схемы.

Несколько слов об LPT- порте. Данный порт имеет множество выводов. Нас будут интересовать только регистры данных, ибо управление ими просто и можно задавать на их выходах лог. «1» или лог. «0». Которые легко преобразуются в другие формы сигналов.

Рисунок 1 – LPT - порт

Схема:

За исходную была взята одна из найденных схем имеющая следующий вид:

Рисунок 2 – Вид исходной схемы

Как видно из приведенной схемы для гальванической развязки порта используется оптопара типа 4N25 (DD1), она обеспечивает защиту порта ПК.

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

В качестве исполнительного устройства выбран транзистор типа КТ 815Г (VT 1), но можно использовать и аналогичные ему марки. На его выход можно подключить любое исполнительно устройство.

В имеющуюся схему был внесен ряд изменений для повышения надежности её работы и безопасности.

Во-первых между 1-ым пином оптопары 4N25 (DD1) и пином LPT-порта был добавлен резистор на 390 Ом (R1), так же добавлен светодиод КИПД 21 (HL 2) с токоограничивающим резистором на 100 Ом (R3), для индикации наличия сигнала на конкретном выводе порта. Также был добавлен диод защиты 1N4007 (VD1) от обратного импульса катушки реле. Катушка реле это индуктивность, а индуктивность старается сохранять постоянным протекающий через нее ток. Поэтому при отключении реле катушка разрядится обратным выбросом высокого напряжения, которое может доходить до нескольких сонет вольт, а в мощных реле - до киловольт. Транзисторы от таких импульсов могут сгореть, а еще могут сгореть другие устройства, подключенные к блоку питания (импульсы проникают в питание), а при особой неудачливости может пробить оптрон и тогда сгорит вообще все, включая порты ПК. Поэтому данный диод не будет лишним.

Так же был добавлен светодиод для индикации КИПД 21 (HL1) наличия напряжения питания схемы c резистором R2 (1к, подбирается эксперементально в зависимости от напряжения питания схемы).

Итоговый вариант доработанной схемы приведен ниже:

Рисунок 3 – Вид доработанной схемы прототипа

Устройство и Печатная плата:

Было решено сделать устройство для управления 4-мя нагрузками.

Хотя сам порт позволят реализовать и больше. По приведенному принципу можно было реализовать и 8-мь устройств, но пока решено было остановиться на 4-х.

Реализовывать печатную плату, по опыту и ввиду простоты и наглядности, было решено в sprint layout 5 (далее SL5).
Сам процесс создания я расписывать сильно не буду, ибо при желании разобраться можно.

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

Ниже приведена блок схема всего устройства:

Рисунок 4 – Блок схема устройства


где:
ПК – персональный компьютер;
УУ – управляющее устройство;
БП – блок питания;
ИУ – исполнительное устройство.

В качестве блока питания (БП) был использован стандартный (готовый) блок питания с выходным напряжением 12В 2А.

Параметры исполнительного блока могут быть различными.
В моем варианте это блок реле на 12В и с контактными парами способными коммутировать 220В.

Перейдем к печатной плате. Она была реализована в SL5. Плата была задумана с учетом подключения других блоков.

Рисунок 5 – Плата устройства в SL5

Плата и её описание приведена ниже на рисунке 6:

Рисунок 6 – Плата устройства в SL5

На плате видно, что присутствуют перемычки обозначенные красным цветом.
Вход с LPT-порта обозначен оранжевым с указанием нужных пинов.
Выход указан желтым цветом. На выходе четыре управляющих сигнала для реле или другого исполнительного устройства и общий для них провод.
Для Ввода питания был использован широко распространенный разъем, но можно использовать любой по необходимости.

Травление данной платы осуществлялось по так называемому «лазерно-утюжному» методу, который подробно описывать я не буду. При необходимости сведения о нем можно найти.

Управление:

Для управления данным устройством вначале использовали громоздкие системные программы, рассчитанные на тест LPT-порта. Потом было решено написать свой soft, простой и надежный, без ненужный функций, что в последствии и было сделано:

Рисунок 7 – Интерфейс ПО

Программа имеет удобный и информативный интерфейс. Есть индикация включенного устройства. А так же кнопка, отключающая все устройства.

Программа находится на страничке посвященной .

Программа надежна и проста и свои функции выполняет. На момент написания статьи были задумки сделать WEB-интерфейс для управления. Что было бы более актуально и удобно ибо если данное устройство ставить на сервер, не имеющий визуальной оболочки, то это было бы более актуально.

Эпилог:

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

PS: все картинки кликабельные с зумом