Вы находитесь на странице: 1из 3

46-48-Hard Control PC-P20.

qxd 5/4/05 4:26 PM Page 46

ARIEL PALAZZESI A PARTIR DE ESTA EDICION DE POWERUSR,


.hrd ENTUSIASTA DE LA ELECTRONICA DIGITAL
arielpalazzesi@yahoo.com.ar
PUBLICAREMOS UNA SERIE DE ARTICULOS
EN LOS QUE APRENDEREMOS A UTILIZAR
LOS PUERTOS DE NUESTRA PC PARA CONOCER

« ¡MANOS A LA OBRA! EL ESTADO DE SENSORES O PARA CONTROLAR


DIFERENTES DISPOSITIVOS CONECTADOS A ELLOS.

y “1”. La capacidad de “percibir” los infi-

ELECTRONICA nitos valores que puede tomar una tempe-


ratura, un peso o una presión es algo más
complicada, pero perfectamente posible.
Muchas señales analógicas se pueden tra-

DIGITAL
tar como digitales mediante circuitos muy
sencillos, teniendo en cuenta el cambio
que experimenta el sensor utilizado. Por
ejemplo, en el circuito de la Figura 2, la
LDR (un tipo especial de resistencia que
cambia su valor de acuerdo con la luz
que recibe) puede variar entre 10 MΩ en
oscuridad hasta 600 MΩ a plena luz.
o resulta muy compli- ■ Es un día soleado Puesto que la mayoría de los puertos de

N cado hacer que nuestra


PC sea capaz de “perci-
bir” el mundo real me-



Hace calor
El aire es húmedo
La temperatura es de 25,3º C
la PC son digitales, las señales analógicas
entregadas por este tipo de sensores re-
querirán el uso de circuitos de conversión
diante el uso de los puertos serie o ■ La humedad relativa ambiente es del 45% analógico-digital.
paralelo. Estos puertos, original-
mente pensados para la comunica- Los primeros tres datos son valores de tipo ACTUADORES
ción con una impresora o un mou- digital: sol o nubes, frío o calor, seco o hú- Cuando queremos cambiar el entorno, po-
se, pueden usarse para otros fines, medo; es decir, “sí” o “no”, dos valores po- demos hacerlo también de dos maneras: di-
con resultados muchas veces sor- sibles. Los dos últimos son de tipo analógi- gital o analógicamente. Podemos encender
prendentes. En esta nota (y en las co: la temperatura puede ser de -10,25º C, la calefacción, subir una persiana o apagar
próximas), veremos la manera de 12º C o 38,5º C; la humedad puede tener la luz (digitales); o bien aumentar el volu-
que una computadora obtenga da- cualquier valor entre 0% y 100%. men de un televisor un 10% o regular el
tos de su entorno e interactúe con Las señales digitales se interpretan en la termostato de una estufa (analógicas).
él. Aprenderemos sobre el funcio- PC utilizando tensiones cercanas a 0 V o Los puertos digitales de la PC nos permiten
namiento de cada uno de estos a +5 V. Las primeras se interpretan como dar órdenes digitales de manera directa, o
puertos desde el punto de vista del un “0”, mientras que las segundas, como podemos codificar estas señales digitales
hardware y del software, y luego un “1”, siguiendo la lógica de construc- mediante un conversor digital/analógico, pa-
construiremos varios circuitos ción de circuitos integrados que se cono- ra así obtener una salida analógica.
prácticos. Veremos, también, qué ce como TTL. Las salidas digitales no proporcionan de-
son los sensores y actuadores ne- A una entrada digital se le puede adaptar masiada potencia; como mucho, permiten
cesarios para nuestros proyectos. un elemento de mando del estilo del inte- iluminar un LED. Pero se pueden utilizar
rruptor que se observa en la Figura 1, para para excitar un relé o un transistor que
SENSORES establecer su valor. Cualquier dispositivo controlen al actuador.
Por medio de sensores, la computa- que se comporte de manera similar a éste No se preocupen si todavía no compren-
dora es capaz de conocer la situa- es útil para controlar entradas digitales. den los esquemas que se muestran en
ción del mundo exterior. ¿Cómo es Dada la naturaleza de la propia computa- estas páginas; cuando llegue el momento,
esto? Supongamos que estamos es- dora, esta forma de representar el mundo los explicaremos paso a paso.
cuchando el pronóstico meteoroló- es la más natural, porque todo su funcio- Ahora empecemos a conocer a fondo los
gico y nos enteramos de que: namiento se basa en este esquema de “0” puertos clásicos de la PC.

Vo Vo +5V

RESISTENCIA
+5V RESISTENCIA LDR +5V RESISTENCIA

PUERTO
INTERRUPTOR
LED

« FIGURA 1. MEDIANTE UN
INTERRUPTOR PODEMOS CONOCER
UN DATO TIPO “SI/NO”
« FIGURA 2. LDR: UN SENSOR
ANALOGICO QUE NO PODEMOS
LEER SIN DIGITALIZARLO
FIGURA 3. PARA ENCENDER
UN LED DESDE EL LPT,
HAY QUE LIMITAR LA CORRIENTE
DEL EXTERIOR. PREVIAMENTE. MEDIANTE UNA RESISTENCIA.

46 POWERUSR
46-48-Hard Control PC-P20.qxd 5/4/05 4:26 PM Page 47

REGISTROS DEL PUERTO PARALELO


REGISTROS NOMBRE HABITUAL
DATOS ESTADO CONTROL

378H 379H 37AH LPT1


DIRECCION
ENTRADA/SALIDA 278H 279H 27AH LPT2
3BCH 3BDH 3BEH LPT3

EL PUERTO PARALELO de 8 bits localizados en direcciones Estos pines son: 11, 10, 12, 13 y 15,
En 1981, IBM diseñó el puerto paralelo adyacentes del espacio de E/S de la del más al menos significativo.
para manejar impresoras desde su gama PC. Los registros se definen en rela- ■ Cuatro líneas son de control (bits
de microcomputadoras PC/XT/AT. Un co- ción con la dirección de E/S base de CONTROL), numeradas de la más a
nector estándar macho de 25 pines apa- (LPT_BASE) y son: la menos significativa: 17, 16, 14 y 1.
recía en la parte posterior de la PC con LPT_BASE + 0: registro de DATOS Habitualmente, son salidas, aunque se
el simple propósito de servir de comuni- LPT_BASE + 1: registro de ESTADO pueden utilizar también como entradas
cación (interfaz) con la impresora. El sis- LPT_BASE + 2: registro de CONTROL y, por lo tanto, se pueden modificar
tema operativo DOS, utilizado en esa Como ya mencionamos, la función tanto por software como por hardware.
época, soportaba hasta tres puertos para- normal del puerto es transferir datos a ■ Las líneas de la 18 a la 25 son la
lelos asignados como LPT1, LPT2 y LPT3. una impresora mediante ocho líneas tierra (masa, o 0 V).
En cualquier PC actual podemos encon- de salida de datos, usando las señales
trar también este puerto, en general in- restantes como control de la impreso- Las ocho líneas de datos en un puerto
cluido directamente en el motherboard, y ra. Sin embargo, también puede ser paralelo moderno son bidireccionales,
casi siempre desocupado, ya que hoy en usado como un puerto E/S de propósi- es decir que tanto podemos escribir
día las impresoras con conexión USB han to general por cualquier dispositivo o un dato en él y leerlo desde nuestra
reemplazado a las de interfaz paralela. aplicación que se ajuste a sus posibili- interfaz (usarlo como salida de infor-
Desde el punto de vista del hardware, el dades de entrada/salida. mación), como leer en él los datos
puerto consiste en un conector hembra que la interfaz escriba en el puerto.
de 25 pines (DB25) con doce salidas La Figura 5 muestra la función de ca- Debemos tener presente que la capa-
latch, cinco entradas y ocho líneas de da “patita” (de ahora en adelante, pin) cidad del puerto de entregar corrien-
“masa” (o “tierra”). Estos latches funcio- del puerto paralelo. Las etiquetas indi- te por estos pines es muy limitada, y
nan de la siguiente manera: cuando es- can la función de cada pin cuando casi siempre tendremos que utilizar
cribimos un valor en la dirección del tiene conectado una impresora. Las un circuito que amplifique esta señal
puerto, éste permanece presente en los señales activas a nivel bajo aparecen para poder hacer algo útil con ella.
pines del conector hasta que escribamos con la barra de negación (por ejem- Sin embargo, la corriente entregada
otro, sin que nosotros debamos mantener plo, Strobe). Cuando se indica alto o es suficiente como para, por ejemplo,
de alguna manera esos valores ahí. Esto bajo, se refiere a la tensión en el pin encender un LED (diodo emisor de
simplifica la programación y la construc- del conector; alto equivale a +5 V, y luz; ver recuadro) que nos
ción de nuestros circuitos. bajo, a 0 V en TTL. Veamos qué fun- sirva como “piloto” para conocer el
Desde el punto de vista del software, el ción cumple cada uno de estos pines, estado de cada pin. Este será nuestro
puerto paralelo consta de tres registros y luego analizaremos cómo podemos primer circuito práctico.
(datos, estado y control) de 8 bits cada aprovecharlos para construir una sen-
uno, que ocupan tres direcciones de E/S. cilla interfaz: MONITOR DEL
Cada puerto requiere tres direcciones de PUERTO PARALELO
memoria consecutivas del espacio de E/S ■ Ocho líneas (pines) son para salida Este sencillo circuito nos permitirá co-
(entrada-salida) del procesador para se- de datos (bits de DATOS). Sus valores nocer el estado de cada uno de los pi-
leccionar todas sus posibilidades. Las di- sólo pueden modificarse a través de nes de datos del puerto paralelo, indi-
recciones base estándar para los puertos software, y van del pin 2 (dato 0, D0) cando los que están en “1” con un
paralelos son 0378h (LPT1), 0278h al 9 (dato 7, D7). LED encendido, y los que están en
(LPT2) y 03BCh (LPT3). ■ Cinco líneas son de entrada de datos “0”, con un LED apagado.
El puerto paralelo estándar (SPP) consta, (bits de ESTADO), únicamente modifi- En el esquema de la Figura 6 vemos
como se mencionó antes, de tres registros cables a través del hardware externo. que cada uno de los pines de datos

LED +5V

Un LED no es más que un diodo,


DIODO CARGA
del que se aprovecha el fotón que se
emite al recombinarse un hueco con RESISTENCIA
RELE
un electrón en su unión PN. El en-
RESISTENCIA

TRANSISTOR
capsulado transparente y el pequeño
PUERTO
espejo situado bajo la juntura permi-
ten aprovechar esta luz emitida como
un indicador luminoso. Su consumo « «
de corriente es muy bajo, caracterís- FIGURA 4. CON UN CIRCUITO UN FIGURA 5. FUNCION QUE
tica que lo hace muy práctico para POCO MAS ELABORADO, SE PUEDE CUMPLE CADA PIN DEL
ENCENDER O APAGAR CUALQUIER CONECTOR DEL PUERTO
nuestros proyectos. APARATO QUE FUNCIONE CON 220 V. PARALELO.

POWERUSR 47
46-48-Hard Control PC-P20.qxd 5/4/05 4:26 PM Page 48

COMPONENTES EL SOFTWARE
■ 1 conector DB25 macho Para controlar los LEDs del monitor, podemos descar-
■ 8 resistencias de 330 ohm, 1/8 watt gar de Internet un programa ya hecho (hay muchísi-
■ 8 LEDs mos) o bien crear uno. Por simplicidad, explicaremos
cómo programarlo usando Visual Basic (en este caso, la
versión 3, ya que corre sin problemas en casi cualquier
computadora y versión de Windows). Necesitaremos
una DLL llamada INPOUT32.DLL (o INPOUT16.DLL si
usamos un Windows de 16 bits, como el 3.1).
En Visual Basic, comenzamos un nuevo proyecto, y
creamos un módulo que llamaremos MODULE1.BAS,
con el siguiente contenido:

Declare Sub Out Lib “inpout16.Dll”


Alias “Out16” (ByVal PortAddress As Integer,
ByVal Value As Integer)
Declare Function
ETAPAS EN LA CONSTRUCCION DE NUESTRO MONITOR. EN LA PRIMERA IMAGEN SE
PUEDEN OBSERVAR LOS LEDS, Y EN LA SEGUNDA SE NOTAN LAS RESISTENCIAS. Importante: si usamos la DLL INPOUT32.DLL deberemos
cambiar todos los “16” por “32” en el código anterior.
del puerto está conectado a una resistencia de 330 ohms, y ésta, al Luego, en el FORM1.FRM creamos dos arrays de boto-
ánodo del LED. El cátodo de cada LED se conecta a masa (cualquiera nes, con ocho elementos cada uno: el primero, llamado
de los pines del 18 al 25). La función que cumplen las resistencias es ENC(n), y el segundo, APA(n). Estos botones permitirán
limitar la corriente que circula por cada LED, ya que si los conecta- encender y apagar los LEDS en forma individual. Tam-
mos directamente al puerto, circulará por ellos una corriente excesi- bién precisaremos un ComboBox llamado PUERTO, que
va y podríamos quemarlos. nos permitirá elegir en qué LPT tenemos conectado el
Como se trata de un circuito muy simple, lo construiremos soldando monitor. El código de este formulario es el siguiente:
directamente las resistencias y los LEDs a una ficha DB25; de este mo-
do, evitamos construir una plaqueta de circuito impreso. Sub Form_Load ()’Genera el contenido del combo Puertos.
Los componentes necesarios para este circuito se consiguen en cual- Puerto.AddItem “&h378”
quier casa de electrónica, y su costo total difícilmente supere los U$S 3 Puerto.AddItem “&h278”
o 4. También necesitaremos un soldador de unos 20 o 30 W y algo de Puerto.AddItem “&h3BC”
alambre de estaño con núcleo de resina. Es una buena idea tener a ma- Puerto.ListIndex = 0 ‘Selecciona el LPT1 por default.
no un alicate para cortar los terminales de los LEDs y las resistencias. End Sub
Primero soldamos uno de los terminales de las resistencias a cada
Sub Apa_Click (Index As Integer)
uno de los pines 2 al 9 del conector, y luego, soldamos el ánodo de
Dim X As Integer
cada LED al otro extremo de las resistencias. También uniremos en-
X = Inp(Val(Puerto)) ‘Obtiene el valor presente en el puerto.
tre sí todos los terminales correspondientes a los cátodos de los
Dato = BCF(X, Index) ‘Ejecuta la rutina que pone en 0 el bit
LEDs y el pin 18 del puerto.
correspondiente.
En caso de que, debido a la posición del gabinete, sea imposible ver los
Out Val(Puerto), Dato ‘Envía el dato al puerto.
LEDs conectados de esta manera, podemos comprar un cable de exten- End Sub
sión para el puerto paralelo; o bien tomar un cable de impresora, sacar-
le la ficha del lado de ésta, y soldar ahí los LEDs y las resistencias. En Sub Enc_Click (Index As Integer)
este último caso, hay que usar un tester para identificar a qué pin co- Dim X As Integer
rresponde cada cable, y tener cuidado de aislar bien todos los termina- X = Inp(Val(Puerto)) ‘Obtiene el valor presente en el puerto.
les para evitar que un cortocircuito termine con el puerto. Dato = BSF(X, Index) ‘Ejecuta la rutina que pone en 1 el bit
Respecto al software para manejar este circuito (ver recuadro), tanto correspondiente.
en el CD exclusivo para suscriptores como en USRZone (usrzone.tecti- Out Val(Puerto), Dato ‘Envía el dato al puerto.
mes.com) podrán encontrar el código fuente y el programa compilado End Sub
listo para usar, junto con las DLLs mencionadas. En la próximo edi-
ción veremos cómo modificar nuestro monitor para que nos permita
controlar artefactos alimentados con 220 V. ■
«

« FIGURA 6. SE OBSERVA UN ESQUEMA ELECTRICO DEL


CIRCUITO DE NUESTRO MONITOR DE PUERTO PARALELO.
CONSTA SIMPLEMENTE DE 8 LEDS Y 8 RESISTENCIAS DE
ASPECTO DE NUESTRO PROGRAMA,
CON TODOS LOS CONTROLES
COLOCADOS Y UN LABEL EXPLICANDO
QUE HACE CADA UNO.
330 OHMS, 1/8 WATT.

48 POWERUSR

Вам также может понравиться