Применение компьютера как элемента управления

В нашей школе введен дополнительный предмет, который мы называем автоматикой. На этом предмете мы проходим, устройства позволяющие превратить компьютер в устройство управления. Сам предмет вырос из необходимости реализации школьниками знаний по физике, информатике, математике на практике. Что дает детям дополнительный стимул к освоению знаний и выбору профессии. В этой статье я познакомлю вас с основными устройствами цифровой техники, которые мы собираем на этом уроке.

file53714895_22d5417e

Цифровой коммутатор

Это устройство позволяет включать и выключать любые электрические устройства при помощи компьютера. Обычно мы применяем лампочки на 220 вольт, электрические звонки, электромоторы и т.д. Сам коммутатор подключается к LPT -порту. Ниже привожу принципиальную схему коммутатора.

Ниже привожу принципиальную схему коммутатора

Детали применяемые в схеме:
R1 — 68 kOm
VT1 — VT2 — KT315 (с любым буквенным индексом)
К1 — любое реле с напряжением срабатывания 5 вольт

Напряжение питания данной схемы 5 вольт.

Контакт1 подсоединяетс к LPT-порту к любому контакту со 2 по 9. Контакт2 подсоединяется к LPT-порту к любому контакту с 18 по 25 (это минус питания компьютера). Соответственно без особых доработок мы можем подсоеденить к LPT-порту до 8 подобных устройств. И командывать восьмью различными нагрузками.

Схема расположений контактов в LPT-порту:

Схема расположений контактов в LPT-порту

Если мы подсоединяем к порту устройств больше чем одно, то контакт 2 у всех общий, а контакт 1 подсоединяется к одному из контактов со 2 по 9 контакта LPT. Прежде чем подсоединить коммутатор к компьютеру его надо тщательно проверить. Для этого нужно сделать следующее.

Прежде всего, еще раз проверить правильность соединения радиодеталей в схеме.
Подключить к схеме источник питания, соблюдая полярность. Взять батарейку с напряжением 4,5 вольта и подать минус питания на контакт2, а плюс соответственно на контакт1. Если реле издало характерный щелчок, значит, схема собрана правильно. После проверки, коммутатор можно подключать к компьютеру. Для чего к контактам 1 и 2 нужно припаять разъем.

Главная трудность при создании любого цифрового устройства заключается не только в его сборке, но и в написании программы. Прежде чем писать программу советую вам прочитать статью А.Новожилова «Работа с параллельным портом (LPT)».

Я приведу текст программы написанной на Visual Basic 6.0 нами для проверки коммутатора.

Заявка публичных переменных. Декларация библиотеки InpOut32 (необходима для взаимодействия VB 6.0, компьютера, LPT).

Public InA As Integer
Private Declare Function Inp Lib «inpout32.dll» _
Alias «Inp32» (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out Lib «inpout32.dll» _
Alias «Out32» (ByVal PortAddress As Integer, ByVal Value As Integer)
Private Sub Check1_Click()
If Check1 Then
InA = 255
Else
InA = 0
End If
Text9.Text = InA
End Sub
Отправка 0 в порт LPT при загрузке программы

Private Sub Form_Load()
Out &H378, 0
End Sub
Private Sub Text9_Change()
Text9.Text = InA
Out &H378, Text9
End Sub

Общий вид программы:

Общий вид программы

Аналого-цифровой преобразователь (АЦП)

АЦП — аналого-цифровой преобразователь. Он предназначен для преобразования аналогового сигнала в цифровой (цифровыми сигналами называются такие, которые могут приобретать только два значения, например, 0 В и 5 В, IBM PC «понимает» только этот сигнал). То есть, если Вы хотите, чтобы компьютер обрабатывал данные с какого-либо прибора, Вам как минимум необходимо преобразовать сигнал, идущий с этого прибора (как правило, это электрический ток), в двоичный код, в режиме которого работает компьютер. Для этой цели и используется АЦП.

Ко входу АЦП мы присоединяем различные датчики (фоторезистор, терморезистор и т.д.) для создания виртуальных приборов. Так же используем АЦП как вольтметр и амперметр или осциллограф на уроках физики.

Принципиальная схема АЦП:

Принципиальная схема АЦП

В АЦП используются детали следующих наминалов:
R1 — 220 kOm
R2, R7, R6, R9 — 510 Om
R3, R4 — 51 kOm
R8 —- 150 Om
R5 —- 100 Om — 2kOm — в зависимости от желаемой чувствительности.
r —- 510 Om
2r —- 1kOm
VT1 — МП37 (КТ315)
VT2, VT3 — МП42 (КТ361)
VD1 — КД507 или любой другой маломощный кремниевый диод

Питание АЦП осуществляется от однополярного источника с напряжением 5 В («+» на контакт3, «-» на контакт5). Потребляет схема ток порядка 10-15 мА. Вполне, работоспособна от одной плоской батарейки (напряжением 4,5 В). Входной сигнал положительной полярности подаётся на контакт1 относительно контакта2 («-» общий). Контакты 6-13 (13- младший разряд порта вывода, 4-разряд порта ввода) подключаются к порту (LPT) компьютера. При этом, точность измерения напряжения с помощью АЦП будет порядка 1%, которой вполне достаточно для проведения любых опытов и демонстраций по курсу физики.

АЦП состоит из компаратора напряжения (компаратор — устройство, сравнивающее два напряжения) на транзисторе VT1, масштабного цепочного делителя на резисторах r-2r, усилителя постоянного тока на транзисторах VT2, VT3.

Работает АЦП следующим образом:

На вход компаратора (база транзистора VT1) подаётся исследуемое напряжение, которое сразу приводит к открыванию транзистора и, следовательно, к появлению тока в цепи коллектора.

Коллекторный ток усиливается усилителем на транзисторах VT2 и VT3. При этом на входе (контакта4) появляется напряжение величиною примерно равное +5В (логический ноль).

На второй вход компаратора (эмиттер транзистора VT1) подаётся напряжение с масштабного делителя, значение которого зависит от комбинации включённых разрядов. В простейшем случае в порт LPT последовательно посылаются десятичные числа (цифровой код) от 1 до 255 (при 8-ми разрядах). При этом на выходе масштабного делителя появится нарастающее напряжение с шагом примерно равным 0,01 В. Когда напряжение на эмиттере станет равным напряжению на базе транзистора, он закроется. При этом на выходе усилителя (контакт4) напряжение упадёт примерно до 0 В (логическая единица). В этот момент (момент переключения напряжения с +5В до 0В) увеличение числа, посылаемого в порт LPT, прекращается. Значение этого числа (цифрового кода) становится эквивалентным входному напряжению.

При работе с двухполярными сигналами резистором R1 необходимо сместить рабочую точку. При этом АЦП будет измерять напряжение, при этом АЦП будет измерять напряжение в интервале от -0,75 В до +0,75 В.

Таблица соединения АЦП с компьютером IBM PC

Таблица соединения АЦП с компьютером IBM PC

Пример программы написанной на Visual Basic 6.0 для АЦП данной конструкции.

Декларация библиотеки InpOut32

Private Declare Function Inp Lib «inpout32.dll» _
Alias «Inp32» (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out Lib «inpout32.dll» _
Alias «Out32″ (ByVal PortAddress As Integer, ByVal Value As Integer)
Private Sub Form_Load() Отправка 0 в порт LPT
Out &H378, 0
End Sub
Private Sub Label1_Click()
End Sub
Private Sub Option1_Click()
Timer1.Enabled = False
Label1.Caption = Str$(0) + » v»
End Sub
Private Sub Option2_Click()
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
For i = 0 To 255 Step 1
Out &H378, i
If Inp(&H379) >= 247 Then Label1.Caption = Format((i / 9.7), «0.0») + » v»
If Inp(&H379) >= 247 Then Exit For
Next i
End Sub

Общий вид программы:

Общий вид программы

Как прописать на компьютер библиотеку InpOut32:

Для этого скачайте ее с нашего сайта (54 Кб). Распакуйте архив. Затем отыщите файл inpout32.dll

Войдите в папку где у вас храниться WINDOWS. Найдите там папку SYSTEM и войдите в нее. После чего файл inpout32.dll скопируйте в эту папку.

Все теперь можно после перезагрузки подключать к LPT различные устройства и программировать их.

Автор Сергей Бабундин

Применение компьютера как элемента управления: 4 комментария

  1. Большое спасибо за вашу статью, было очень познавательно и есть над чем подумать.

    1. И Вам респект, Дмитрий, за искреннюю вдумчивость и лукавую мудрость. Внесите эту страницу в избранное и в наступившем году Вас будет ждать следующий Новый Год!

  2. Добрый день!
    Я правда давно уже не школьник, но тем не менее…
    Спасибо, все понятно и главное — можно повторить.
    Небольшой вопрос: с портом 888 все получается, а вот с портом 890 — не получается. По задумке — должно быть НЕЗАВИСИМОЕ включение выходов (1 — 14 -16 -17), а они почему то отключаются. Можно включить/отключить любой из них и в любой последовательности, но чтоб работал, например, 1 и добавить 14 — не получается.

    Если возможно — подскажите решение. Или порт 890 — нельзя так организовать?

    1. Алексей, я не смогу Вам помочь. Статья написана очень давно и была размещена на первой версии этого сайта. Я её оттуда перенёс, но автора установить не представляется возможным — тогда над сайтом работал большой коллектив и никто не озадачивался «творческим наследием». Моя специализация — контент, тексты, сюжеты и редакционная правка.

      Поэтому, Вам остаётся надеяться только на себя. Разберётесь — напишите здесь. Кому-то пригодится.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

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