|
|
|
|
| |
timestamp:26.11.2009
Лег спать в 01:45, а причина? ... слегка эйфорийное ощущение, первый "муляж" умного дома - вот он, совсем близко, я даже трогаю его
когда протяну руку. Первый опыт удался!
"а с какого перепугу ему бы не удасться?" (возможно спросить)...
да вот тут дело принципа: уж так исторически сложилось что ...ммм ... не все мои начинания доходят до своего логического финиша. Недостаток времени и/или ресурсов обычно
отправляет начатые проекты в долгий ящик...а жаль...
но обо всем по порядку.
|
| |
Предистория: как я узнал что можно сделать с портами.
Интересовать назначение "выводов" компьютера меня начало давно. Хобби такое было - ковырять всякие детальки, микросхемки и т.д.
Когда комьютера у меня совсем небыло, а оно ж было интересно,я изучал архитектуру, по старым журналам ("Радио" за 86 год например, или по более свежим журналам/книгам).
Правда тогда я начал постигать 8-битные системы, и даже пробовал проэктировать свой (на основе уже существующих наборов логики). Естественно все это так и осталось на уровне теории, зато кое что я приобрел.
К стате - совет: если кто-то захочет постигнуть премудрости функционирования компутера на аппаратном уровне - лучше начинать с 8-битных архитектур, а дальше просто посмотреть "отличия" - так намного проще.
А уж зная как функционирует компьютер на аппаратном уровне - то можно хоть на ассемблере писать, хоть свои "железки" проэктировать для компьютера.
И вот значит когда заимел я компьютер, мне было жутко интересно - какое предназначение у той или иной ножки LPT/COM порта, за что отвечает тот или иной контакт на ISA/PCI шине (да тогда ISA еще присутсвовали).
И каково же было моё счастью когда в одном журнале обнаружил "распечатку" назначения выводов портов, правда не всех, но что было - для меня это было счастье! (даже сейчас храню ксерокопию, на память, хоть интернет уже давно придумали).
Уже тогда я придумал, опираясь на получение знания, как можно использовать те или иные порта и/или слоты. Но понятия не имел как ими управлять - ведь программировании я тогда был ой как не силен.
Потом был журнал "МК" в котором приводились примерные схемы подключения внешных устройств к портам, + простенькая программка инициализации (правда работающая под 98 иил 95 или и того под DOS'ом).
|
| |
Настоящее
Не буду говорить как во мне загорелась идея построения "умного дома". К этому было много предпосылок + интернет, потом узнал про готовые решения, продвигаемые сейчас на рынке, которые не выдерживают никакой критики (с моей стороны) и т.д.
Скажу одно, пару лет назад я придумал и разработал (на листике) примерную общую схему "умного дома" и набросал для него электрическую принципиальную схему, которую примерно год назад начал воплощасть в жизнь.
Но эта идея, ка ки большинство, за нехватком времени была отложена, кроме того жизнь не стоит на месте, постоянно узнаеш что-то новое, в чем-то продвигаешся: так была найдена в и-нете библиотека + код её инициализации для работы с LPT (в теории с любым) портом.
Также расширение познаний в элементарной базе позволило сократить достаточно большую часть схемы, заменив её одной микросхемой. Изменилась немного и общая концепция, но обо всем этом будет в соответсвующем топике.
Сейчас же поговорим о "простом".
Сразу отвечу на вопрос, "зачем нужен этот пост?". Возможно кому-то моя статья, которую я скорей всего напишу в будущем покажется сложной и/или излишней - тому подойдет этот простенький вариант.
|
| |
Общая схема
Общая схема примитивная до ужаса, по одной релюшке на один "канал" LPT порта, по одному транзистору в режиме ключа на одну релюшку + "обвязка" чтобы это все работало, и одна микросхема в роли "буфера/инвертора" (можно и без неё, почему я сделал так ниже).
В двух словах что из себя представляет LPT порт: это 25 проводников (кто не верит может пересчитать дырочки/штырьки на разъемах порта).
Среди них
- 8 линый (проводников) данных
- 4 линии управления
- 5 линий состояния
- все остальное соеденены между собой - это "общий" провод.
Про режимы работы портов при желании каждый может поискать в и-нете сам, их не много, разобраться не сложно, нам нам подойдет любоый режим.
(кому нужно больше инфы - читаем Википедию:LPT порт (IEEE 1284) или гуглим сами).
Скажу лиш что по сути бубеном какой у Вас порт - лиш бы он был, режим работы в биосе материнки выбираем авто, а дальше дело за программным обеспечением, которе прийдется писать самому
(чуть позже я розжую как его писать, и возможно выложу пару-тройку программ уже написаных мною для работы с портом, со ссылкам на авторство позаимствованых участков кода и т.д.).
То что следует уяснить - 8 линый данных могут работать в двунаправленом режиме - т.е. как посылать информацию наружу, так и принимать её от внешних устройств, - мы будем работать только в режиме "наружу".
Есть 4 линии которые работают "только наружу" - их мы тоже можем использовать если нам 8 линий данных будет мало.
И есть еще 5 линий работающих в режиме "толь ко внутрь", но их мы трогать не будет (по крайней мере в этом посте).
И также следует запомнить что LPT порт имеет общий адрес и 3 смещения от этого адреса (под адреса чтоли) - для каждого из наборов линый.
Все остальные проводник соеденены для собой и являются "общим" проводгником для реализации электрического соединения (какяю чушь несу, но так надеюсь понятнее).
Итак схема.
Общая принципиальная схема показана на рисунке.

Как видим - ничего сложного - одна линия - один блок. К каждому блоку можно подключить одно внешнее устройство/потребитель (будь то лампочка в туалете, будь то люстра в залле, будь то радиоприемник на кухне...).
Пару слов про схеме. Транзистор VT может подойти любой который может работать в режиме ключа (я взял КТ315, можно с любой буквой А-Г..).
Шунтирующий диод VD - любой импульсный. Ограничивающий резистор R1 я взял 1 кОм, хотя можно и меньше, - основная задача стобы хватало напряжения для открытия транзистора.
В случае нехватки напряжения можно ввести добавочный резистор R2 и подобрать необходимое напряжение открытия (линии указаны пунктиром потому что на схеме он не обязателен, у меня его нету, хотя для стабильности надо и ввести).
Резистор R3 подбирается с учетом основного напряжения - его задача -понизить напряжение питания до 5В - т.к. это нормальное рабочее напряжение для микросхемы К155ЛН1. У меня этот резистор соответсвует 140 Ом.
(Сейчас знающие люди начнут меня упрекать что мол надо было использовать микросхему КРЕН5 и все такое - сам знаю, она и будет на основной схеме, а на тестовой сойдет и резак+кондёр, т.е.
на практике микросхема может работать при достаточно больших отклонениях рабочего напряжения, но злоупотреблять этим не стоит, т.к. это не лучшим образом сказывается на стабильности работы и "времени жизни микросхемы" )) в случае повышения напряжения).
Входное напряжение зависит от рабочего напряжения реле К1. У меня РЭС9, паспорт (напишу позже). В нем 2е группы контактов соеденены паралельно чтобы снизить нагрузку на контакнтую группу.
гасящий конденсатор С1 я взял на 470 nF главное не провтыкать ррабочее напряжение - оно должно быть не меньше 300V если Вы будете комутировать лампочки или другие исполнители с цепи ~220V.
Основная задача это конденсатора - "гасить" искроорбразование между контактами реле, возникающее в момент размыкания/замыкания, емкость конденсатора можно взять любю, подходящую.
По аналоги со всеми схемами, которые я видел раньше - выводи LPT порта отвественные за передачу данных я проименовал (на схеме) буквой D от D0 до D7 соответсвенно.
Общий провод от LPT порта (выводы 18-25) подключаем к "общему" проводу (минусовой проводник) на нашей схеме. Логическая микросхема К155ЛН1 состоит из 6 блоков (на схеме один из них обозначен как DD1), по этому Вам для
8 блоков потребуется 2 микросхемы (вторая будет частично задействована; свободные логические блоки микросхемы можно задействовать если расширять схему еще на 4 линии управления).
Для прощего понимания всю схему я разделил на логические блоки А1...А7. Эти блоки 1:1 повторяются, с тем лиш отличием что питание к микросхеме К155ЛН1 (+5В к выводу №14 и -5В к выводу №7)
подается только один раз (думаю это и так понятно) и минусовой проводник подключен к "общему" проводнику прта тоже только один раз.
Сонденсаторы С2-С3 - пристусвтуют тоже только в первом блоке, их назначение - сглаживать пульсации и перепады паряженияжение возникающие в результате переключения микросхемы К155ЛН1 ну и нестабильность птания от сети.
Сонденсатор С3 припаивается непосредственно к контактам №14 №7 микросхемы К155ЛН1, в случае установки такой микросхемы также прпаять еще один такой-же конденсатор.
Для конструирования отсальных блоков А1-А5 используются логичесике блоки микросхему К155ЛН1 DD2-DD6, для того чтобы соорудить еще два блока А6,А7 нужна еще одна микросхема.
Более подробное описание мкиросхемы К155ЛН1 можно получить в интернете, например на сайте
http://www.chipinfo.ru/dsheets/ic/155/ln1.html.
Общая блочная схема микросхемы (взято с того-же сайта) выглядит следующим образом.

Как видно входы/выходы остальных пяти логических блоков (которые нужно использовать в остальных блоках схемы) соответсвено: 3/4, 5/6, 9/8, 11/10, 13/12.
|
| |
Как это работает.
Блок является инвертирующим. т.е. в нормальном состоянии когда на входе 1 блока отсусвтет потенциал соответсвующего уровна - на его выходе 2 присутсвует потенциал -5В.
Этот потенциал является "блокирующим" для транзистора, ине дает ему открыться.
Специально написаной программой отправляем в порт LPT1 по первому смещению скажем "1" в десетичном исполнении.
В побитовом это будет выглядить так: 00000001.
Тоесть на выходе D0 LPT порта у нас появится -5 В. Это напряжение попадает на вход 1 логического блока DD1. Т.к. блок иныертирующий, то на выходе 2 потенциал -5В пропадеть, а вместо него
получим +5В. Это напряжение через ограничивающий резистор R1 поступит на вход транзистора и откроет его. Транзистор пропустит напряжение к реле К1, котрое замкнет контакты, и тем самым включит нам свет в туалете )).
Чтобы включить второй "блок" А1 схемы нужно отправить "единичку" на второй выход порта (D1) = 00000010.
Соответственно чтобы включить оба блока А1 и А2 нам нужно отправить в порт 1+2 = "троечку" = 00000011.
И так далее....
|
| |
Как это работает у меня.
У меня завалялась плата от неизвестного устройства с парой релюшек, резаков кандеров и диодным мостом (похоже на схему защиты) соедененных толстими проводами.
Все лишнее было изъято с палты, добавлены дорочки под 2 транзистора, резисторы и микросхему. В качестве блока питания - китайский с переключателем вольтажа от 3 до 12.
Шнур LPT порта от тсарого нерабочего принтера, соотв. коннектор был куплен на радиорынке.
Тестовая схема собиралась "на коленке". В качестве тестовых потребителей две галогенные лампочки на 220 V 50W.
Признаюсь - на схеме отсутсвуют стабилизирующий конденсатор на микросхеме (пока) и один "гасящий" к реле. Монтаж проводами. Эта плата будет в будущем срощена с блоком, работу над которым я начал год назад.
(сорры за качество съемки - мобильником в 2 часа ночи под освещение лампочек...)

Справа черное продолговатое - это К155ЛН1, под ним внизу блестящее алюминивое - сглаживающий С2 на 1000 мкв. (совковый )) ).
Слева алюминивые квадратны - релюшки, над ними зелено-голубое - гасящий кондер (совковый) )), надж ним для удобства прикрепил планочку в которую всовываеш проводки и фиксируеш болтиком.
В центре 2а желтых - транзисторы.
Тестировалось все китайским тестером )).

Программа на компе суть серый квадрат с один полем для ввода десятичного значения которое нужно отправить в порт и кнопочкой для записи значения в порт - и показать то нечего, по коду программы в отдельном посте.
Вот так выглядит все при записи в порт "1" и "3".


Доукомплектую схему стабилизирующим и еще одним гасящим конденсаторами и поставлю в "котельне" - будет она у меня свет включать и по расписанию включать электронасос в системе отопления умного дома (про систему отопления читаем тут: "Умная" система отопления)
|
| |
З.Ы. Как видно - ничего сложно нету, микросхема потребовалась для того что инвертировать сигнал от порта, можно его не инвертировать а использовать транзистор прямой проводимости (например КТ361Б) и тогда вывод от ограничиваюющего резистора подать напрямую на порт...
но т.к. я планирую эту схему сращивать с другой - то там нужен именно с "обратной" полярностью, да и микросхема выступает "буфером", защищая порт от перепадов напряжения блока питания и пробоя от излишней нагрузки (хотя это тоже решаемо введением доп.диода).
Самое главное - оно работает, а при работе с большой схемой, о котрой я раскажу позже там уже будет и КРЕН5 и все чт онужно...
|
|
|
вы не можете добавлять комментарии к этому топику |
|
 |
сегодня просмотров:134 всего просмотров:27464 |
 |
|