PDA

Visualizza la versione completa : [*] Inviare segnali alla porta parallela


mr.shutdown
29-03-2007, 22:28
Salve, io sono mr.shutdown del '90.

Cari moderatori non linciatemi perchè ho
cercato nel forum, ma il mio è un caso particolare!! :-D

Sto tentando da un po' di giorni di realizzare programmi
per interfacciarmi col mondo esterno. Ho
provato in PASCAL, in VB e anche in ASSEMBLY ma niente da fare!

In Turbo Pascal 7 ho provato con l'istruzione
Port[$378] := 1;
In Visual Basic 6 ho provato con l' OCX
MSComm
In Assembly ho provato un tentativo disperato, ma
vorrei concentrarmi su linguaggi di MEDIO-ALTO livello, quindi... :-)

Non riesco a capire come posso mandare sui singoli
pin della porta parallela un segnale ALTO o BASSO.

Sul mio PC è installata una porta parallela ECP.
Ho notato una cosa stranissima:
collegando il reoforo negativo di un diodo led alla massa
della porta parallela e l'altro reoforo positivo in un pin del connettore
DB25 (sul mio PC) il led si accende. Ma è normale che su alcuni
pin c'è sempre tensione? Ho effettuato diverse misurazioni con
l'oscilloscopio e mi risulta che c'è sempre tensione continua intorno
ai 4.5v ... E' da precisare che io ho fatto questo test perchè credo
che la mia porta sia mal configurata. Infatti quando ho fatto queste
prove non era avviato alcun software che opera sulla porta!! :-S

Avete qualche soluzione per mandare LIVELLI LOGICI sui
singoli PIN della porta parallela con VB 6, PASCAL, DELPHI 7,
C, C++ o qualsiasi altro linguaggio che non sia a basso livello?

Potete gentilmente spiegarmi come faccio a far funzionare un
esperimento semplice?

Per es. io ho provato su un PC della scuola a realizzare una struttura
iterativa che mi generava un'onda quadra dal semiperiodo di 10ms sul pin 2
della LPT... Ovviamente a scuola non potevo fare i test con l'oscilloscopio,
però lì funzionava e qui no! Deduco che funzionava perchè collegando il
LED la sua luce era tremolante, poi cambiando il delay potevo ottenere effetti
differenti!

Datemi delle dritte altrimenti dovrò appropriarmi del computer
della scuola e questo non sarebbe corretto!! :-D

shodan
29-03-2007, 22:43
Per quanto riguarda la porta parallela occhio che non riesce a dare correnti elevate, rischi di bruciare tutto.
Meglio se la bufferizzi.
Qui maggiori info

http://www.giobe2000.it/

Poi se hai WinNT o superiori non puoi pilotarla senza un driver apposito. Tali sistemi operativi non consentono un controllo diretto dell'hardware. Per farlo devi installare un sys driver apposta.
Cerca su Google Inpout32

oregon
29-03-2007, 23:25
Fai attenzione ... non collegare dei LED direttamente senza resistenze per limitare la corrente ... rischi di bruciare i transistor della parallela ...

Puoi leggere

http://www.visual-basic.it/articoli/agvbhw.htm
http://www.visual-basic.it/articoli/agvbhw2.htm
http://www.visual-basic.it/articoli/agvbhw3.htm

P.S. MSCOMM e' utilizzato per gestire la porta seriale non la parallela ...

billiejoex
30-03-2007, 09:24
In Assembly ho provato un tentativo disperato, ma
vorrei concentrarmi su linguaggi di MEDIO-ALTO livello, quindi... :-)


Avete qualche soluzione per mandare LIVELLI LOGICI sui
singoli PIN della porta parallela con VB 6, PASCAL, DELPHI 7,
C, C++ o qualsiasi altro linguaggio che non sia a basso livello?

Potresti provare con Python + PySerial / PyParallel:
http://pyserial.sourceforge.net/
http://pyserial.sourceforge.net/pyparallel.html
...difficilmente troverai qualcosa di più alto livello.

mr.shutdown
31-03-2007, 15:13
Okay, grazie!

Mi può interessare il metodo utilizzabile con Python.
Ora ci do uno sguardo.

Un'altra domanda:
Sapete come posso configurare la porta parallela affinchè
ci sia tensione solo quando decido di darla io?

Aspetto le vostre risposte! ;-)

PS:
Ti ringrazio per avermi segnalato la libreria per Python,
infatti il programma sarà portabile su Windows, Linux e BSD.
I miei sistemi preferiti!

It provides backends for Python running on Windows, Linux, BSD

oregon
31-03-2007, 15:39
La tensione sui pin della parallela la fornisci settando i bit ad 1. Se li poni a 0, non avrai tensione.

Loading