ordinador.gif (700 bytes)

Connexió de dispositius a un ordinador

                                                                                                                              Albert Pérez Monfort    

Introducció                

Aquest document pretén servir d'introducció a aquelles persones que vulguin connectar diferents dispositius (bombetes, motors...) a un ordinador per mitjà del port paral·lel i controlar-ne i programar-ne el funcionament. Per poder-lo entendre és necessari saber programar mínimament amb llenguatge Basic.

En tots els casos faré referència a ordinadors de tipus PC. La programació del funcionament dels dispositius es farà amb el llenguatge de programació Qbasic.
 
 

El port paral·lel de l'ordinador

La majoria d'ordinadors disposen d'un o dos ports paral·lels que habitualment s'anomenen (verificar-ho en les adreces de Windows) &H378 i &H278. La impressora s'acostuma a connectar al port &H378.

Els ports paral·lels tenen 25 clavilles de connexió, les quals acostumen a estar numerades. Nosaltres només en farem servir 9; les numerades del 2 al 9 i una qualsevol de les numerades del 18 al 25.

parlPC.JPG (9031 bytes)

En el PC (femella)

Les clavilles del 2 al 9 seran les que utilitzarem per a l'entrada de dades a l'ordinador i per a la sortida de dades d'aquest i les anomenarem D0, D1 ... D6 i D7 respectivament. 

Les clavilles de la 18 a la 25 són la massa del port (0 V).

Les dades que enviarem o rebrem d'un port paral·lel seran bytes. Recordeu que un byte és una combinació de vuit bits, és a dir, vuit uns i/o zeros en línia. Amb vuit uns i zeros es poden realitzar 256 combinacions diferents. Aleshores, amb un byte podem enviar 256 dades diferents.

 

Enviament d'un byte des d'un ordinador a un dels seus ports paral·lels

Quan des d'un programa s'enviï un byte al port paral·lel de l'ordinador (ja explicaré més endavant com fer-ho) el resultat serà que algunes de les sortides D0, D1 ... D7 es posaran a +5 V i altes a 0 V. Per mitjà d'un exemple s'explica com el port de l'ordinador interpreta l'enviament d'un byte. Suposem que enviem el byte 01011011 al port paral·lel de l'ordinador. Aquest número passat a decimal equival al número 91. El resultat que obtindrem és el que es mostra a la següent taula:

taula.JPG (28618 bytes)

Així, si volem que en el port paral·lel s'activin (es posin a un voltatge de 5 V) les sortides D6, D4, D3 i D1 li hem d'enviar el byte de sortida que equival al número 91. En el programa Qbasic, com més endavant es veurà, haurem de posar la instrucció OUT &H378,91.

Observacions:

  • El byte és llegeix de dreta a esquerra i s'hi fa correspondre les clavilles correlativament des de la D0 fins a la D7.
  • Allà on tinguem el valor 1 hi haurà 5 V en la clavilla de sortida, en canvi, el valor 0 correspon a 0 V en la clavilla corresponent.
  • En un port paral·lel disposem de 8 sortides que les podem controlar amb facilitat des de l'ordinador (en realitat en tenim més de 8 però entrarem en aquest tema).
  • A cadascuna de les clavilles li correspon un pes i la suma dels pesos multiplicats pel valor del bit ens dóna el  valor decimal del byte enviat. D'aquesta manera podem activar o desactivar les sortides que ens interessi en  funció del byte enviat.

perill.gif (1328 bytes)   MOLT IMPORTANT    

Malgrat que disposem de 5 V que ens permeten fer funcionar un munt de dispositius, la intensitat màxima que ens pot subministrar el port és d'1 mA. Si li'n demanem més el podem fer malbé. Per tant, en la majoria dels casos, entre el dispositiu que es vulgui utilitzar i el port paral·lel, s'haurà de posar un transistor que serà el que aguantarà la càrrega, tal com veurem més endavant.
 
 

Enviament d'un byte al port de l'ordinador des d'un dispositiu extern

Per a entrar, per exemple, el byte 91 a l'ordinador per mitjà del port paral·lel caldrà donar corrent (5 V) als connectors D6, D4, D3 i D1 tal com es mostra en la figura. En el programa Qbasic, com més endavant es veurà, haurem de posar la instrucció A=INP(&H378). Fent això la variable A prendrà el valor 91.

entrada.jpg (12438 bytes)

 

Instruccions del programa Qbasic per a l'entrada i l'extracció de dades

Observació: el programa Qbasic complet, el podeu trobar a la carpeta OldDos del CDROM del Windows 95.

  • Funció INP

S'utilitza per a l'entrada de dades a l'ordinador. La forma correcta d'utilitzar-la és:

                         Variable = INP(Nom_del_port) 

Per exemple, la instrucció DADA = INP(&H378) llegeix el byte enviat al port paral·lel de la impressora i assigna la lectura a la variable DADA.

  • Sentència OUT

S'utilitza per a la sortida de dades a l'exterior de l'ordinador. La forma correcta d'utilitzar-la és:

                         OUT Nom_del_port, dada

Per exemple, la instrucció OUT &H378,255 envia al port paral·lel de la impressora el byte 255 que correspon a tenir 5 V en les 8 clavilles que s'han esmentat.
 
 

Interfície de connexió del port paral·lel per a la sortida de dades

A continuació s'exposen alguns exemples de com fer un ús correcte del port paral·lel per a la sortida de dades:

MUNTATGE INCORRECTE

circuitincorrec.jpg (4752 bytes)

El díode Led necessita uns 10 mA per a funcionar correctament. Això implicarà massa intensitat en la sortida del port. Recordeu que la intensitat màxima és d'1 mA. Hi ha un gran risc de fer malbé el port paral·lel de l'ordinador.

 

MUNTATGE CORRECTE

circuitcorrec.jpg (8919 bytes)

Si volem que pel díode Led hi circuli un corrent de 10 mA, podem calcular el valor de la resistència que limita el corrent del díode Led:

0,2 + 2,4 = 2,6 V

9 - 2,6 = 6,4 V

R = V/I = 640 W

El valor de resistència normalitzat més proper és el de 680 W.

Un altre circuit molt interessant pot ser:

 

circuitrele.jpg (8663 bytes)

El díode connectat amb paral·lel amb el relé té per missió protegir al transistor del corrent invers a causa de la força contraelectromotriu de la bobina del relé.

Ara podem connectar al relé qualsevol circuit sense perill per a l'ordinador.

Podem protegir més l'ordinador posant a la sortida de cada clavilla díodes:

proteccio1.jpg (3884 bytes)

El díode protegeix al port de possibles corrents inversos.

 

MOLT IMPORTANT

En qualsevol cas, les masses del circuit extern i del port paral·lel (una de les clavilles de la 18 a la 25) s'han de connectar entre si.
 
 

Exemples d'aplicacions

Alguns exemples d'aplicacions molt senzilles de realitzar podrien ser les que es mostren en els dibuixos següents:

Llums del cotxe fantàstic amb 6 o 8 Leds

fantastic.gif (1146 bytes)

 

 

Dau amb 7 Leds

dau.gif (1562 bytes)

 

Semàfor amb 3 Leds de diferents colors.

semāfor.gif (1767 bytes)

 

En tots els casos el circuit que es pot utilitzar, per a cadascuna de les sortides del port, pot ser el següent:

circuitexemple.jpg (12475 bytes)

Construïda la part de maquinari només falta fer el programa de control. El programa en Qbasic que es podria utilitzar per a les llums d'un cotxe fantàstic de 8 díodes Led pot ser, per exemple:

REM *** Exemple d'aplicació amb el port paral·lel ***
WHILE a$ = INKEY$: REM *** Espera que es premi alguna tecla per acabar ***
     REM *** Encesa dels díodes Led de dreta a esquerra ***
     a = 1
     FOR I = 1 to 8
          OUT &H378,a
          a = a*2
          FOR K = 1 to 1000: NEXT K: REM *** Espera ***
     NEXT I

     REM *** Encesa dels díodes Led d'esquerra a dreta***
     a = 128
     FOR I = 1 to 8
          OUT &H378,a
          a = a/2
          FOR K = 1 to 1000: NEXT K: REM *** Espera ***
     NEXT I
WEND

END

Espero que el contingut d'aquest document us pugui servir per fer algun dispositiu que pugueu controlar amb l'ordinador. Si necessiteu algun aclariment no dubteu a preguntar-me'l.