Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Схемы и программы (https://forum.antichat.xyz/forumdisplay.php?f=61)
-   -   [Начинающим] - Lpt порт. (https://forum.antichat.xyz/showthread.php?t=61868)

Dimi4 15.02.2008 14:30

[Начинающим] - Lpt порт.
 
Привет! Если вы хотели начать заниматься електроникой вместе с програмированием, ета статтья для вас. Расчитана она на новичков, которые хотят сделать девайс :D управляющийся компом. Для етого используем лтп порт. Наверника вы им не пользуется. Он использовался в старых версиях принтерах. Чаще всего он "закрашен" фиолетовым, и самый длинный. Думаю без проблем его найдете.
Он состоит из адресов H378, H37a. Есть еще другие, знать о них необязательно. Адреса H378, H37a могут выдавать и принимать сигналы, работают двунаправлено.Чаще всего , H37a предназначен для управления девайсом, а H378 для отправки и приёма сигналов.Сигнал - ето всего-лиш присутствие или отсутствие напряжения (5В) на порте. Допустим, если нам нужно включать всего 8 светодиодов. Ето означает, что нужно научить програму подавать напряжение 5В адреса H378, ножки 2. В етом и заключается суть управления.
Важно, чтобы девайс имели хрошою гальваническую развязку с компом, ELSE die(); PC. :)
У нас девайсом - будеть лампочка, точне: светодиод. Помните, он имеет полярность.http://upload.wikimedia.org/wikipedi...s_LED_foto.png
(http://ru.wikipedia.org/wiki/Светодиод)
Проверьте полярность : горит - ок, не горит - поменяйте полярность и запомните правильный вариант.
Далее, ножки светодиода надо фтыкнуть в 2-й (тот вывод, который подключася к плюсу батареи) и 25-й ( тот который на "минусе" батареи) Важно! разьемы порта, не перепутайте!
Далее ПРОГРАМИРУЕМ:
Наша прога будет в консольном виде, на си++
Вот собсна и код:
PHP код:

#include "iostream.h"
#include "conio.h"
#include "stdlib.h"

void main()
{
    
int Address=888;
    
cout<<"Тестируем LTP port."<<endl;
    
cout<<"Жмякай '1' для активации и '0' для дезактивации диода ."<<endl;
    
cout<<"для выхода 'e'."<<endl;
    
cout<<" "<<endl;

    while(
1)
    {        
        switch(
getch())
        {

            case 
'0':    cout<<"Дезактивация...."<<endl;
                        
_outp(Address0);
                        break;             
            case 
'1':     cout<<"Активация...."<<endl;
                        
_outp(Address1);
                        break;
            case 
'e': exit(1);
        }
    }

   
getch();


Вот и всё! Диод Должен Загорется.
Ищо примерчик на новом языке LangMF:
PHP код:

<#Module=mdlDemo>
'---------------------------------------
Sub Load(cmdLine)
  form.add "label",1
  form.label(1).move 140,40
  form.label(1).fontsize=16

  form.add "command",1
  form.command(1).move 130,100,80,30
  form.command(1).caption="OK"

  form.show
End Sub
<#Module>

<#Form=form>
'
-----------------------------------------
Sub Command1_Click()
Dim numPortbyt

randomize timer


Do

    
rc sys.dynapi.callfunction("dlportio","DlPortWritePortUchar", &H378int(rnd*255))

    
byt sys.dynapi.callfunction("dlportio","DlPortReadPortUchar", &H378)


    
form.label(1).caption byt
    DoEvents
    Sleep 200

Loop until isend

End Sub

'-----------------------------------------
Sub Form_Unload()
  endmf
End Sub
<#Form> 

Для работы данного скрипта необходимо установить "DriverLINX Port I/O Driver".

Его можно скачать здесь: _http://atombyte.com/ftp/Dlpio_setup.exe

MegaDeth 15.02.2008 15:27

так это конечно хорошо, на досуге все прочитаю а пока поправлю лог.1 это +12в у лаптя, а лог0 это отрицательное напряжение относительно массы, помоему -5В однако немогу утверждать точно. такчто резисторы... Кстате а где у тебя про них написано??? вообщем надо брать килоома 2 не меньше...
разчитывается так
R=(Напряжение_питания_свето иода-12/Максимальный_ток_для_свето иода)

а лучше вообще помимо светодиода последовательно воткнуть диод, пятивольтовый интегральный стабилизатор и резистор...
у светодиодов может быть маленький обратный ток, и от -5В ему хешельбе придет...
кстати автор и проверь заодно, воткни один прямо другой обратно светодиоды(с резисторами!!!), и посмотри при лог.0 будет ли гореть один из них =)))

Dimi4 15.02.2008 15:37

Цитата:

кстати автор и проверь заодно, воткни один прямо другой обратно светодиоды(с резисторами!!!), и посмотри при лог.0 будет ли гореть один из них =)))
На данный момент немогу, у меня ноут а там нет лтп. Но как только буду иметь доступ к обычному попробую.
Цитата:

а лучше вообще помимо светодиода последовательно воткнуть диод, пятивольтовый интегральный стабилизатор и резистор...
Можно но проще светодиод--->резистор. Всё должно быть ОК

presidentua 16.02.2008 02:14

Автор моего любимого программатора АВРеал тоже использует DriverLINX Port I/O Driver. Поэтому эта библиотека тоже установлена, но никогда даже не пробовал с ней разобраться. Но смотрю управлять с помощью ее ЛПТ портом очень легко. На досуге тоже поиграюсь с этой библиотекой.

Спасибо! :)

OMG!! 29.02.2008 01:00

Я в lpt много девайсов собирал.. начиная от IR приемника.. потом надрачивал его на xmms, и все ок.. заканчивая джойстиком от PS One. схем в интернете море)


Время: 20:08