Новости
Карта сайта
Авторы
Поиск
Рассылки
Статьи и информация
VB хитрости
Популярные ошибки
Книги
Конференция
Программы
Контролы
Примеры
Разное
Ссылки

Статьи

Использование Visual Basic 6.0 для управления внешними устройствами и приЈм внешней информации (температура, давление, напряжение, ток и т.п.) через LPT порт

Количество просмотров: 37333 Автор: Инженер-энергетик, Михаил Пирогов

Введение


Любое внешнее устройство подключается к компьютеру через порты. Например, LTP, COM, USB. Наиболее просто ? программирование LTP порта. Общий принцип компьютерной системы контроля выглядит так:

Компьютерная программа посылает определенные сигналы через LTP порт на коммутатор, на основании полученных сигналов коммутатор подключает к аналого-цифровому преобразователю датчики. Данные с АЦП поступают в коммутатор, LTP и обрабатываются нашей волшебной программой написанной на VB 6.0. Это ? развитая промышленная система контроля и управления, которую я, Божьей помощью рассчитываю создать. Если вы хотите научиться включать свет в своЈм туалете с помощью PC, узнавать температуру воды в вашей ванне, то надо начинать с системы попроще.

ШАГ 1: Изучение работы LTP порта


Для тех, кто не знает, что есть LTP, скажу ? это то ?отверстиеЋ куда ты подключаешь принтер старой модели. Широкий разъЈм. LTP порт имеет следующую структуру:

Он состоит из отсеков (адресов) H378, H37a. Есть еще другие, но для создания компьютерного управления чайником на кухне тебе знать о них необязательно. Адреса H378, H37a могут выдавать и принимать сигналы, работают двунаправлено. Как правило, H37a служит для управления коммутирующим устройством, а H378 для отправки и приЈма сигналов. Под понятием сигнал надо понимать присутствие или отсутствие напряжения (5В) на порте. Например, если вы хотите включать/выключать всего 12 (8+4) лампочек или чайников (или светомузыки), то вы можете отказаться от коммутатора и АЦП. Просто программой необходимо подать, например, напряжение 5В адреса H378, ножки 2. Эта ножка, например, связана с реле, которое включает более мощное реле (можно и полупроводниковое) и энергия подаЈтся на вашу лампочку. Вот и весь принцип. Главное программой указать компьютеру, на какую ножку, какого адреса подать или убрать напряжение.
Можно сделать устройство, которое определит, например, горит ли у вас свет на кухне. Для этого необходимо сделать простенькое устройство, которое подаЈт напряжение на LTP (5В). После программа читает порт и делает вывод, какое реле подаЈт сигнал (1, 2, 3?) и делает вывод что работает (TRUE) или что не работает (FALSE). В зависимости от полученного результата, например, объект Shape меняет цвет.
Важно, чтобы коммутирующие устройства имели качественную гальваническую развязку с компьютером, иначе спалите PC.

ШАГ 2: Научимся считать в системах?BIN, HEX, DEC


BIN ? цифровая форма записи числа (10111011 ? байт), или бинарная система исчисления (слыхал о цифровой технике??).
HEX ? долго объяснять, если есть желание возьми и изучи булеву алгебру. Просто позже поймешь, как использовать HEX. Абстрактно ? на этих числах работает электроника компьютера и команды управления, часто задаются в этой системе исчисления.
DEC ? привычные нам числа, один, три целых шесть десятых. Любое число, которое вы видите в учебнике по математике за 7 класс.
Нам надо уметь пользоваться этой системой исчисления, для того чтобы составлять команды для LTP порта, какую ножку ему ?зажечь или потушитьЋ.
Научимся сначала ?зажигатьЋ.
Например, ты хочешь чтобы третья ножка адреса H378 загорелась. В бинарной системе это выглядит так: 00000100. Согласен? Третья справа имеет на выходе единицу (5В).
Запускаем калькулятор, меню ?ВИДЋ, пункт ?ИНЖЕНЕРНЫЙЋ или качаем понятную, специальную программу-конвертер изображенную снизу.

Если ты всЈ-таки хочешь использовать калькулятор Билла Гейтса, то укажи опцию BIN и введи число:

100 ? это 00000100 за минусом передних нулей. После этого просто переключи опцию на HEX и ты получишь число 4. После от FF отними 4 и получишь FB. Это и есть число, которое надо послать в адрес H378, порта LTP чтобы на третьей ножке компьютер вывел напряжение 5 вольт.
Если ты хочешь зажечь 1,2,5,7 ножку то операция формирования команды выглядит так:
BIN ? 01010011
HEX ? (FF-53) = AC
А привычное нам число ? 83
Помни, что команда формируется не программой, а программистом (в простых системах).
Да забыл сказать, у нас адрес H378 имеет восемь выходов (битов), поэтому опция на калькуляторе 8-бит.
Пока не изучишь системы исчисления, не поймешь как получаются HEX. А пока, просто умей определять команду.

ШАГ 3: Понятие дискретного сигнала


Дискретный сигнал это ? бит. Например, ты хочешь знать включена ли лампочка в ванне. Эта лампочка зажигается от реле, контакт которого соединен с третьей ножкой порта. В данном случае вас интересует, есть ли на 3-й ножке 5 вольт. Это и есть дискретный сигнал (один бит). Аналогично, если вы подаЈте единицу на 4-ю ножку чтобы включить четвертую лампочку, можно расценивать это как дискретный сигнал (один бит).

ШАГ 4: Обработка дискретного сигнала


Мы уже представляем принцип формирования команды на LTP порт. Как принять и понять, есть ли на определенной ножке напряжение (единица или включена ли ваша лампочка).
Принцип следующий:
   Читаем порт, и получаем число, например DATA
   Оценка результатов

ШАГ 5. Написание программы


Для того, чтобы VB мог работать с LTP портом, необходимо скачать специальный драйвер. Установите этот драйвер у себя на компьютере (Setup прилагается).
Напишем программу, которая будет ?зажигатьЋ ножки LTP порта, или тушить их, а также определять на какую ножку приходит единица (5Вольт) с внешнего устройства и использовать результат для нашей программы.
Запустите VB 6.0 и создайте проект. Создайте форму по примеру:

На кнопках в скобках указан номер ножки на порте, а до скобки номер ножки на нашем рисунке, в CHECK указан номер ножки на порте. Например при нажатии кнопки 2(3) на 3-й разъЈм порта подаЈтся 5 вольт.
В случае адреса H37а рассмотрен другой вариант реализации запуск/остановка ножек. Там происходит автоматическое формирование команды, которая в последствии записывается в порт.
При нажатии кнопки ПРОЧИТАТЬ АДРЕС H378, производится считывание с порта и в зависимости от того, на какой ножке есть единица, та линия и окрашивается в красный цвет.
Если Вы хотите что-либо считывать с порта, то Вам необходимо переключить режим работы порта компьютера в режим EPP (Enhanced Parallel Port ? режим двунаправленной передачи данных). Это делается в BIOS. Во время загрузки компьютера когда появится надпись Press DEL to enter setup, нажмите DEL, чтобы попасть в меню BIOS. Затем выберите раздел INTEGRATED PERIPHERALS и там выберите строку PARALLEL PORT MODE: измените режим работы Вашего порта на EPP или SPP/EPP. Сохраните сделанные изменения.
Теперь декларируем в модуле:
Public Declare Function DlPortReadPortUchar Lib "dlportio.dll" _
   (ByVal Port As Long) As Byte
Public Declare Function DlPortReadPortUshort Lib "dlportio.dll" _ 
   (ByVal Port As Long) As Integer
Public Declare Function DlPortReadPortUlong Lib "dlportio.dll" _ 
   (ByVal Port As Long) As Long

Public Declare Sub DlPortReadPortBufferUchar Lib "dlportio.dll" _
   (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortReadPortBufferUshort Lib "dlportio.dll" _ 
   (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortReadPortBufferUlong Lib "dlportio.dll" _ 
   (ByVal Port As Long, Buffer As Any, ByVal Count As Long)

Public Declare Sub DlPortWritePortUchar Lib "dlportio.dll" _ 
   (ByVal Port As Long, ByVal Value As Byte)
Public Declare Sub DlPortWritePortUshort Lib "dlportio.dll" _
   (ByVal Port As Long, ByVal Value As Integer)
Public Declare Sub DlPortWritePortUlong Lib "dlportio.dll" _
   (ByVal Port As Long, ByVal Value As Long)

Public Declare Sub DlPortWritePortBufferUchar Lib "dlportio.dll" _
   (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortWritePortBufferUshort Lib "dlportio.dll" _
   (ByVal Port As Long, Buffer As Any, ByVal Count As Long)
Public Declare Sub DlPortWritePortBufferUlong Lib "dlportio.dll" _
   (ByVal Port As Long, Buffer As Any, ByVal Count As Long)

Представте, что к адресу Н378 подключена схема:

В кнопку прочитать адрес H378:
Dim data as Integer 
data = DlPortReadPortUchar(&H378)) '(читаем порт, 
'полученное значение присваиваем переменной)
'а теперь, проверяем наличие сигнала на каждой ножке
'и в зависимости от этого выполняем действие
If (data And &H1) > 0 Then Line1.BorderColor = &HFF& Else Line1.BorderColor = &H0&
If (data And &H2) > 0 Then Line2.BorderColor = &HFF& Else Line2.BorderColor = &H0&
If (data And &H4) > 0 Then Line3.BorderColor = &HFF& Else Line3.BorderColor = &H0&
If (data And &H8) > 0 Then Line4.BorderColor = &HFF& Else Line4.BorderColor = &H0&
If (data And &H10) > 0 Then Line5.BorderColor = &HFF& Else Line5.BorderColor = &H0&
If (data And &H20) > 0 Then Line6.BorderColor = &HFF& Else Line6.BorderColor = &H0&
If (data And &H40) > 0 Then Line7.BorderColor = &HFF& Else Line7.BorderColor = &H0&
If (data And &H80) > 0 Then Line8.BorderColor = &HFF& Else Line8.BorderColor = &H0&

Для работы с Check, необходимо объявить глобальную переменную:
Public nojka As Integer

Код выглядит следующим образом:
Private Sub Check10_Click()
If Check10.Value = 1 Then nojka = nojka + &H10 Else nojka = nojka - &H10
 DlPortWritePortUlong &H37A, nojka
End Sub

Private Sub Check11_Click()
If Check11.Value = 1 Then nojka = nojka + &H2 Else nojka = nojka - &H2
 DlPortWritePortUlong &H37A, nojka
End Sub

Private Sub Check12_Click()
If Check12.Value = 1 Then nojka = nojka + &H4 Else nojka = nojka - &H4
 DlPortWritePortUlong &H37A, nojka
End Sub

Private Sub Check13_Click()
If Check13.Value = 1 Then nojka = nojka + &H8 Else nojka = nojka - &H8
 DlPortWritePortUlong &H37A, nojka
End Sub

Вы видите, что в адрес H37a записывается команда nojka, которая формируется математически в зависимости от состояния Check-ов. Если к LTP порту вы подключите лампочки (с резистором), то вы увидите, как они загораются или тухнут (чертеж для адреса &H378).

Вот и всЈ, портом управлять вы умеете, собирайте схему и работайте?

ШАГ 6: Очень важные мелочи?


Для персонального обучения управлению LTP вам необязательно собирать внешние устройства (лампочки, реле и т.п.). Можно самостоятельно записывать данные в порт ('DlPortWritePortUlong Val(&H378), "&H" & "bf"), где "&H" & "bf" сформированная команда. Причем данные останутся записанными в порте и вы можете прочитать их:
Private Sub Command2_Click()
  Dim Value As Long    
    Value = DlPortReadPortUchar((&H378)
     TextValue = "&H" + Hex(Value)
 Text1.Text = Value
End Sub

Или обработать данные по принципу кнопки ?прочитать адрес H378Ћ.
Учтите, что в случае, когда вы самостоятельно записываете команду в порт и потом читаете порт, данные после чтения удаляются. А в случае, когда данные подаются на порт внешним устройством, читать можно хоть сто раз, данные с порта не исчезнут, так как подаются внешним, независимым от компьютера устройством. Знайте, что при использовании неэкранированного кабеля для приЈма/передачи данных, в нЈм могут возникать наводки (так мы как-то регистрировали частоту 33кГц) ? это нарушит работу сложной системы коммутатор-АЦП (я с этим сталкивался?). Это устраняется внесением сглаживающего блокирования в схему. Но это другая история?

ШАГ 7: ПриЈм сигналов с АЦП, коммутаторов и т.п.


Расписывать подробно не буду, так как в домашних условиях вряд ли кто будет собирать АЦП или коммутатор. Скажу обобщенно. АЦП бывает 4, 6, 8, 16 и т.п. разрядный + тип. В зависимости от этого ( и от датчиков и всей системы подачи/отправки данных) необходимо определить коэффициент пересчЈта. ПересчЈт данных с порта выглядит обобщенно так:
Результат = ((?Верхняя граница измеренияЋ - ?Нижняя граница измеренияЋ)/ЋРазрядность АЦПЋ)*?dataЋ + ?Нижний предел измеренияЋ
Разрядность АЦП ? 256 (если выдаЈт восемь бит), 64 (если 4 бит) и т.д.
АЦП ? аналого-цифровой преобразователь. Это устройство можно собрать самостоятельно. Устройство достаточно сложное, ориентировочный срок изготовления 25-40 дней. Например, вы хотите передать на компьютер силу тока и отобразить еЈ где-нибудь. Ток в измеряемой цепи колеблется от 0 до 100А. В этом случае мы поступаем как я нарисовал на схеме:

Схема упрощена, так как в ней отсутствует коммутирование к АЦП нескольких датчиков
Это может казаться сложно, но это очень просто, просто нужно знать, что за система, с какими параметрами она передаЈт данные. Скажу одно, эту систему можно (обычно это так и делается!) простым паяльником. Если есть вопросы, то я с удовольствием всегда вас проконсультирую по электронной почте о приЈме ?аналогового сигналаЋ.

ШАГ 8: Область применения


На этом принципе можно собрать светомузыку для дискотек, управление и контроль за работой любого оборудования, принимать и отображать на компьютере данные по току, давлению, температуре, потреблению газа, воды, воздуха и т.п. И всЈ это можно сделать на VB 6.0 используя его возможности. Главное, отправить и принять/обработать данные с порта и как вы видели, это так же просто, как и работа с элементом Label.
 

  Изложены основные принципы, проверенные на практике!
  Нужна схема коммутатора? Жду, пиши?

 
Вы можете также посетить мой сайт: www.energoarhiv.narod.ru.

Добавлено: 6 июля 2004

Отзывы читалелей

Олег Николаевич

Я использовал VBIO32.DLL. И порт опрашивался 400 Гц.
Все это так и все это будет работать в WIN-95 WIN-98, а как быть с WIN-XP где адресация LPT порта не прямая а виртуальная?
 

Michael

У меня есть библиотека под WinXP с исходниками и примерами. Кому надо - обращайтес.
 
michael@sumy.biz

US8IEU

Побольше б таких статей, так как использование перефирии для ПК очень слабо освященно, особенно программный подход к этой теме!

KHAKER

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

ALEXix

Хорошая статья, и действительно жаль, что таких мало.

Sergey

Подскажите пожалуйста где можно найти подобную информацию(популярно изложенную) только для работы с COM портами

Starik

Данная тема меня давно интересовала, но ее редко освещают и скупо. Данная статья мне понравилась, еще бы такую же про СОМ порт. А совсем было бы прекрасно посмотреть опрованные схемы и исходники, и обменяться мнением.

Василий

Спасибо, нашел то, что искал. Прочитал., понравилось. Попробую и поделюсь ощущениями.

Flex

И в правду, статья очень хорошая, а применение данной информации зависит от нашей фантазии, так ведь можно и чайник "Щелкнуть" не выходя из комнаты, предварительно проверив количество воды на ПрогресБаре. А автору я хотел бы пожать руку. Молодец! Так держать! (А еще че интересное напишешь?)

Valerii

Статья понравилось, давно интересовал именно этот вопрос, а насчет работы с СОМ портами, прекрасный
пример работы на VB:
http://web2.moxa.com.tw/services/download/download.asp

Dmitrii

очень хотелось бы такуюже еще и про COM порт почитать.

Валентин

статья интересная, но не скачивается драйвер управления портом. ВчЈм причина?

Smak

Отличная статья, давно искал такую, но не мог найти. Везде все скупо написано. Еще было бы прекрасно увидеть то же самое про СОМ порт.

den

У меня вопрос не очень в тему - где бы посмотреть какую нибудь dll , или программу для использования winampa в качестве источника сигналов для lpt (если можно на мылоvzuc@mail.ru)
А статья понравилась, правда я все это знаю...

Alex

Чтоб скачать этуфиговину с сайта зайдите на страницу http://www.energoarhiv.narod.ru , а после открытия страницы введите этот адрес http://www.energoarhiv.narod.ru/driver.rar

Михаил Пирогов

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

Николай

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

Валентин

Прочитал статью, довольно интересная. Молодец автор! Хочу добавить, что даже если Ваш компьютер не поддерживает режим ЕРР данные всЈ равно можно считать. К адресу порта добавляете 1 (если у вас H378 то H378+1= H379) и с 11 ножки считывайте на здоровье. Хотя это всего 1 bit, но если у вас последовательный АЦП то можно считать практически любой разрядности. Да, кого интересуют практические схемы применения АЦП пишите, с удовольствием помогу, поскольку занимаюсь компьютерным управлением не один год. Это не сложно. При использовании современных компонентов 24bit ? ный АЦП можно собрать за пару дней. Мой адрес: vl3@ukr.net

slavik

Здравствуйте. Я студент университета специальности энэргетика. С лет 15 я хотел сделать адапрер к своим изобретениям на PC. Прочитал статью Михаила Пирогова. Сталкнулся с проблемой WINXP. Помогите пожалуйста с драйвером под LPT порт. У меня горит курсовой проект, а в универе помочь никто не может. Нищий универ по знаниям. Очень надеюсь. Заранее благодарен.

GOGI

Все красиво и прикольно, но автор затаил тайну под какими ОС это работает
WIN95, WIN98 - OK
Windows2000, WinXP - БОЛЬШОЙ ВОПРОС

Jarlyk

Люди, объясните, как правильно этот порт называется - LTP или LPT?
У меня всего один разъем для подключения к принтеру - красный с 25 "дырками" - этот он и есть?

Василий

Увлекательно, хочется попробовать. Еще интереснее - если б + про АЦП и COM - порты

Leonid

Очень хорошая статья, ждЈм продолжения. Заранее искренно благодарен.

DJ

Статья неплохая, но немного опоздала, как было замечено ранее из-за WinXP. Немного неточностей: Регистр Н378 действительно задумывался как двунаправленный, но в современной реализации он не может работать на прием данных из-за токоограничивающих резисторов распаяных, на выводах рагистра. Более подробно о портах ПК и их использовании можно прочесть: М.Гук "Аппаратные интерфейсы ПК" (что-то так помоему). Очень богатая для "железянщиков" книжка.
===
Для DEN: Есть утилитка, называется API-Guide. Там в примерах на ВБ рассказано как использовать WinAPI. Нашел я как-то там нечаянно, пример для функции waveInAddBuffer и сделал бегушку работающую от винампа. Утилитка бешаная просто гора полезной информации и все примеры опять же на ВБ.
===
Для работы с портами есть еще приблуда, называется VICX разработки Matyunin Victor. Выполнена в виде ОЦИХС и ДЛЛ кому как нравится тот то и использует. Заявлено что работает под НТ ( не пробовал) Если очень надо - мыльте, вышлю.

Don

Хорошая статья. Попробую что-нибудь спаять и потом напишу что получилось.

Sergei

Если не трудно, напишите мне, как управлять портами в Win2k, XP, а также как управлять устройствами на шине PCI

Elvin_D

Отлично! Огромная помощь по науной работе! Спасибо большое!

Михаил Пирогов

Здравствуйте.
Ответ: DJ - я недавно закончил проект и сдал его в эксплуатацию. Проект называется "Система автоматического контроля и управления насосной оборотного цикла предприятия". Так вот, компьютер работает на WinXP, и о чудо, регистр H378 работает как двунаправленый, токовый сигнал тут не причЈм, так как в системе управления используется не токовй сигнал а сигнал напряжения. Повторяю, регистр Н378 ПРЕКРАСНО работает в двух напрявлениях под WinXP, Win2000.
 
Для Валентина: прошу прощение, в статье про Н379 указать забыл, просто я редко использую этот регистр.
 
Для Gogi: работает под WinXP, Win 2000 другие операционные системы я не проверял, так как их не использую.
 

 
Для Jarlyk: порт правильно называется Local Parallel Port (LPT). Эти 25 дырок и есть LPT порт.

Гена

Спасибо автору! Попробовал-получилось.
Добавлю: порт 379h - пятиразрядный ( дырки 10...13 и 15)
Если установить в комп второй порт (LPT2) то кол-во каналов увеличится в 2 раза.
Адреса портов LPT2 - 278h, 279h, 27Ah.
Если кому интересно- могу подробнее.

4RESTER

А вот простой вариант расширить LPT-порт до 24-разрядного:
http://www.geocities.com/dsaproject/computers/modified_expander.png

Владимир Ершов

Прямое управление LPT вещь прекрасная: скорость, разрядность и все такое. Так я думал когда начинал разработку относительно скоростного логгера. Свяжу мол PIC с РС через ЛПТ и никаких проблем. Не тут-то было. Мне надо было считывать 6 байт с периодичностью 1 мс. Со скоростью было все в порядке, а вот с периодичностью увы - никак :-(. Не дают винды тебе спокойно работать. Единственный выход - использовать средства самих виндов. А таким средством в VB пока является только MSCOMM. Там все прекрасно буферизуется и поток данных не прерывается. Так что мой девайс теперь работает через COM порт на 115 kbod и еще запасец есть.

Vladimir

Статья полезная для интересующихся програмистов вопросом согласования компьютера с внешними устройствами. Сам долгое время искал информацию по этому вопросу для Windows, хотя в ДОСе этот вопрос был понятен. Имеются книги: Пейн Ан "Сопряжение ПК с внешними устройствами." , Ю.В.Новиков... "Разработка устройств сопряжения."

Misha

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

Serega

Отличная статья ! Допишу тут одну прогу, попробую смастерить что-нибудь из вышеописанного. Кстати, прочитав отзывы, можно понять, что тема сопряжения очень популярна, но нешироко освещена, поэтому неплохая мысль создать WEB-сайт.
На заметку: в журнале Радио 0105 есть простая схема сопряжения мобильника и PC всего на 2 транзисторах через COM-порт

АЛЕКСАНДР

Давно искал информацию на данную тему!!! Большое спасибо!!!

DJK

Очень полезная статья для тех, кто хочет создавать разные Plug-In устройства.

Иван

Подскажите пожалуйста чайнику, как быть. Есть счетчик импульсов с 485 интерфейсом. Нужно загружать данные в Excell. ОРС драйвер есть. Прочитал, что в Excell можно программку написать в VB, чтобы все данные обрабатывать. Начал по-тихоньку изучать VB, да только времени мало, а проблема приперла...
Подскажите, пожалуйста, что почитать, где посмотреть...

Greysman

Класс! Спасибо автору за статью. Сам я гидравлик по специальности. Часто возникают вопросы по сопряжению датчиков (давления, температуры) с универсальным токовым сигналом 4..20 ма с PC, поэтому это мне подспорье. Может кто тоже решает (решил) такую задачу. Напишите, плиз. Будем соратниками по общему делу.

Антон

КРУТО!!! Расскажите пожалуйста на примере как программно измерить напряжение например 3v батарейки. Заранее спос.

Reanimator

хороших программ мало ! :)
Спасибо автору.
Былобы лучще если использовать звуковую плату!
На него у меня проблема.
Если у кого нибудь имеется пожалуйста F1 :)))
 
Заране спасибо !

Максим

Для тех кто будет ваять схемки 5в с ноги разъема - транзисторный ключ - нагрузка. Не забывайте о гальванической развязке по питанию - либо реле либо оптопары. сам использую оптопары буквально выдранные из мышей. Уже много лет Новый год идет под гирлянды ( 220 вольт - тиристорные ключи) на елке - ХАРАШО!

Nuke

LTP рулит!! теперь я могу делать c компом все чего пожелаю!

Александр

Наконец-то хоть что-то про управление внешними устройствами через порты. Просьба к автору - хотелось бы узнать:
- что делает драйвер, когда мы даем команду отослать/получить байт (ведь моджно без драйвера стандартными командами отправлять байты в порт и получать их оттуда) если нельзя - то почему ?
- отсюда второй вопрос: при отправке стандартными командами любого языка программирования байта в порт (без этого драйвера) загорится ли светодиод ? или он мегнет с установленной частотой передачи данных (если успеет) ?
- ну и третий ворпос: при замыкании и размыкании "ножки" будет ли сохраняться данные в порту до их чтения прогграмными средствами ?

А.Ефимов

Замечательно. Хотя как у микроэлектронщика у меня идея использовать СТОЛЬКО линий для передачи данных вызывает отвращение, тем более, что современные АЦП всЈ больше SPI, 2-wire и т.п. Учитывая, что МК с USB-контроллером и встроенным АЦП стоит порядка 200 руб... А всякие там лампочки вешать - это да, это пойдЈт. Только вот не мешает всЈ-таки гальваническую развязочку приделать, от греха подальше (но про это уже было, вроде).

Николай Шухер

Для того чтобы чертить графики данных в LPT в реальном времени не обязательно изображать их графически достаточно вывести информацию в Word типа
00000000
01010010
11110000
10100111
00000000
00000001
00000001
00000001
 
и так далеее пока компу ресурсов хватит........
 
Скорость считывания достигает 3300 раз/сек. при железе: проц 2,4 Ггц 512 оперативы, при умелом подходе к написанию программы.

X-Force

Отличная статья! Побольше-бы таких!
Неожиданно возникает вопрос: а можно ли включить комп, подав напряжение на определЈнную ножку? Если да, то на какую?

DemoN

Очень хорошая статья! Но хотелось бы найти описание программы под Windows XP.

MRZ

Спасибо,очень интересная статья!
Есть один вопрос: как програмно перевести LPT порт из ECP режима в EPP или Bi-Dir. Это стопроцентно реально, я пробовал с помощью RapidDriver'a, но он триал всего на 30 дней.
Кто чем сможет-помогите.
И желательно в VB.
Sasha_frost@mail.ru

Fatum

Статья класная. А как работать с LPT на прямую минуя DLL windows и где найти адреса нжек порта.

TiGER

Расписано все подробно, но скорее для первокласников, чем для серьезного практического применения
И вообще , у меня создалось впечатление ,что вы больше теоретик нежели практик. Особенно вот эта фраза....
>>>Расписывать подробно не буду, так как в домашних условиях вряд ли кто будет собирать АЦП или коммутатор<<<
 
Я из ОБЫЧНОГО СТАНДАРТНОГО компьютера ( без дополнительных плат), используя только две микросхемки сделал 16-ти канальный АЦП и он у меня работает как система мониторинга. Меряет температуры в комнатах, на улице, сетевое напряжение, освещенность ну и заодно выполняет функции охранной системы.
Если у автора есть вопросы опубликуйте их здесь - email пришлю персонально.
С уважением.
Герман. Ташкент.
11.01.2006

Олег

Искал..., и всЈ-таки нашЈл именно то, что мне нужно, очень нужная статья. А можно-ли считывать напряжение с ножек LTP? Только используя АЦП?

Johann Walger

Давно ищу подобную тематику.Кое-что попробую срочно.А за статью Большое спасибо и все Вам благ.
 
Германия.

Walther

"Я из ОБЫЧНОГО СТАНДАРТНОГО компьютера..."
 
TiGER - здорово!
Можешь кинуть на мыло подробнее?

Suren

Очень нужная статья. попробовал все ок. Проблема в том что не понял, если посадить на ножку сигнал с частотой ~20кгц, как можно получит параметры сигнала, т.и . как организовать програму так, что при изменении состояния порта программа зафиксировало изменение. имет ли ДЛЛ функцию вроде "чендж"
Если это сделать таймером то оно ограничено 1/1000 с 1кгц.



Добавить отзыв

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

Ваше имя:
Ваш E-mail:
Ваш комментарий:
 


К статьям

Rambler's Top100
Хостинг от Parking.ru