Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Control de dispositivos por puerto paralelo (página 2)



Partes: 1, 2

 

La siguiente tabla muestra la
función de cada uno de los pines
utilizados.

PIN

Descripción

Símbolo

2

Salida de datos
1

DO 0

3

Salida de datos 2

DO 1

4

Salida de datos 3

DO 2

5

Salida de datos 4

DO 3

6

Salida de datos 5

DO 4

7

Salida de datos 6

DO 5

8

Salida de datos 7

DO 6

9

Salida de datos 8

DO 7

18

Masa de datos

GND

Para conectarlo al circuito de control, que
explicaremos más adelante, utilizaremos un conector DB-9
macho, con un cable que se muestra en la siguiente imagen.

El cable a utilizar debe ser de por lo menos 9
hilos.

Existen cables para computación desde 9 hasta 25 hilos. El de
9 sería el ideal.

También están los cables para
instalaciones telefónicas que tienen 4 pares (8 hilos) y
un neutro.

Cualquiera de los dos sirve. En lo posible, utilizar
el primero.

Salvo el conector del puerto
paralelo, los demás conectores pueden cambiarse por
cualquier tipo. Solo habrá que rediseñar los
circuitos de
control y de fuerza.

La siguiente tabla muestra la equivalencia entre los
pines del DB-25 y del DB-9. Esta distribución es la que utilicé,
pero puede alterarse modificando el diseño.

PIN DB-25

PIN DB-9

Descripción

Símbolo

2

1

Salida de datos 1

DO 0

3

2

Salida de datos 2

DO 1

4

3

Salida de datos 3

DO 2

5

4

Salida de datos 4

DO 3

6

6

Salida de datos 5

DO 4

7

7

Salida de datos 6

DO 5

8

8

Salida de datos 7

DO 6

9

9

Salida de datos 8

DO 7

18

5

Masa de datos

GND

Cada pin del DB-25 debe conectarse al equivalente del
DB-9 mediante uno de los cables del conductor utilizado. Anotar
los colores para no
confundirse.

El orden de los pines en los conectores es el
siguiente:

Conector

Nombre

Contactos

DB-9 hembra

9 agujeros

DB-9 macho

9 pines

DB-25 hembra

25 agujeros

DB-25 macho

25 pines

Recuerden que deben tener cuidado al soldar los
cables, tratando de que no queden los cables de datos
tocándose entre si, y mucho menos tocando el cable de
masa, ya que generaríamos un cortocircuito, llegando a
quemar el puerto paralelo.

Programación en Visual Basic
para la interfaz de usuario

Luego de tener preparado el cable de datos, pasaremos
a crear una interfaz de usuario con Visual
Basic.

Para ello, se debe crear un formulario que permita
pulsar botones, y estos botones serán los encargados de
llamar a programas
hechos en C++, que controlarán el puerto.

Todavía no se por que, pero en las computadoras
nuevas, con Windows XP,
hasta que no se cierra el programa hecho
en C++, el puerto no cambia de valor. Cosa
que no sucede con computadoras viejas.

Una vez hecha la interfaz en Visual Basic, dentro de
cada botón escribiremos el siguiente
código

Shell "C:programaspuerto1.exe"

Esta función de Visual Basic permite llamar a
programas externos. El path de sus programas dependerá
de cómo los guardó. El ejemplo es en mi
caso.

En la siguiente imagen se muestra como queda el
código dentro del evento Click del
botón "cmd_cero".

Mi sistema consta
de tres botones, uno para encender una salida por vez, uno para
generar un valor en binario, y otro para apagar todas las
salidas.

Se pueden crear sistemas con
muchas combinaciones. Solo habrá que agregar más
botones y escribir más programas en C++.

Mi interfaz gráfica es la siguiente:

La interfaz gráfica depende del gusto de cada
usuario. Mi ejemplo es bien sencillo, pero puede hacerse
más vistoso, sin descuidar lo más importante, que
sea eficiente.

Programación en C++ para controlar el
LPT1

C++ permite crear programas ejecutables para entorno
DOS.

La principal ventaja de este lenguaje es
su economía de sintaxis y su potencia, ya
que nos permite manejar directamente el hardware de
la
computadora.

Los valores
enviados a los puertos serán controlados por medio de
programas escritos en C++.

La dirección del puerto paralelo, en
hexadecimal, se expresa de alguna de estas formas, dependiendo
de la computadora:

&h378 &h278
&h3bc

Para crear el programa en C++, en el header deben
incluir la librería <conio.h>.

La función para enviar un dato al puerto
es:

Outport(puerto,valor);

Donde puerto es su dirección en hexadecimal y
valor es un número entre 0 y 255.

En Windows XP
es necesario generar esta función dos veces, para que el
valor llegue a la salida.

Un ejemplo, enviando un 1 al puerto:

#include<conio.h>

void main()

{

int puerto=0x378;

outport(puerto,1);

outport(puerto,1);

}

En mi sistema hay tres programas en C++.

El primero solicita un número del 1 al 8, y
dependiendo del dato ingresado, enciende el canal
correspondiente.

El otro programa pide un valor entre 0 y 255, y
envía la salida directamente al puerto.

El último, envía un 0, apagando todas
las salidas.

Programación en PHP para
control vía Intranet o
Internet

Una vez que el software
esté funcionando, podremos optar por controlar los
dispositivos desde una computadora en red, o incluso desde
Internet.

Para ello necesitaremos el servidor
web Apache
instalado en nuestra PC, que permitirá que nuestra
computadora funcione como servidor HTML, y el
intérprete de PHP, que traducirá el código
PHP y lo enviará al browser del usuario en formato
HTML.

Recomiendo que si no se posee conocimientos sobre
servidores
Apache y programación en PHP, saltee este tema y
pase al siguiente.

Dentro del lenguaje PHP, hay una función que
nos permite ejecutar un programa guardado en el servidor de
una
red:

exec("c:/programas/puerto3.exe");

Es una función muy parecida al lenguaje
C++. De hecho, PHP tiene mucha similitud con este, lo que
permite que una persona que
domine C++, le resulte muy fácil aprender PHP. El
ejemplo anterior es en mi sistema en particular.

Mi sistema incluye un formulario con un Combo Box
donde selecciono que canal deseo activar, y un botón
para dar la orden.

PHP es un intérprete que se ejecuta en el
servidor de la red, lo cual permite correr programas que
residan en este último. Esta característica es la
que permite el control de procesos
desde cualquier computadora en red, o desde
Internet.

Circuito de
control

El circuito de control será el encargado de
recibir las señales desde el puerto paralelo, y
convertirlos en pulsos para comandar el circuito de
fuerza.

Mi circuito se basa en el uso de dos integrados 4030,
cada uno con cuatro compuertas XOR.

La compuerta XOR (OR eXclusivo) genera una salida High
si alguna de sus entradas tiene un estado High,
pero en el caso de que las dos estradas tengan
simultáneamente un estado High, la salida irá a
un estado Low. Lo mismo sucede si las dos entradas se
encuentran en estado Low.

El circuito es el siguiente:

Componentes:

R1: 1Kohms 1/4W.

R2 a R9: 820ohms 1/4W.

IC1, IC2: CD4030 (Cuad XOR Gate).

IC3: LM7805.

D1 a D9: LED 5mm.

D10 a D17: 1N4148.

1 conector DB-9 hembra.

1 conector DB-9 macho.

C1: 220µF x 16V.

C2: 100µf x 16V.

1 jack para fuente de alimentación.

Varios (plaqueta, cloruro férrico,
estaño, etc.).

Los datos ingresan por el conector DB-9 hembra del
gabinete, y son aplicados a una de las entradas de cada XOR. La
otra entrada se conecta a masa.

Si el estado
del canal es High, se encenderá el LED correspondiente,
indicando un 1. En caso contrario, indicará un
0.

Cada LED tiene asociado una resistencia de
820 ohms 1/4W para reducir la tensión aplicada a los
mismos.

Un conector DB-9 macho permite enviar los niveles de
salida de las XOR al circuito de fuerza, pasando cada salida
por un diodo 1N4148, para evitar que ingresen tensiones al
circuito de control.

La alimentación se hace un una fuente de 9
volts.

Circuito de fuerza

El circuito de fuerza está formado por 8
transistores
BC548, que controlan 8 relés de 12 volts.

Los relés son los encargados de manejar la
carga propiamente dicha.

El circuito es el siguiente.

Componentes:

T1: Transformador 12V 500mA.

D1 a D4: 1N4002.

D5 a D12: 1N4148.

TR1 a TR8: BC548.

RL1 a RL8: Relé 12V (ver texto).

X1 a X8: Tomacorriente.

IC1: LM7812.

C1:1000µF x 25V.

C2: 470µF x 16V.

2 Fichas macho
220V.

Varios (plaqueta, cloruro férrico,
estaño, etc.).

Las señales de control ingresan por un conector
DB-9 macho.

Cada transistor
recibe el impulso del circuito de control en su base,
permitiendo el paso de corriente entre colector y emisor. Esta
corriente a su vez, excita la bobina del relé, haciendo
que sus contactos se cierren, y se produzca el encendido de la
carga.

El diodo asociado a cada transistor sirve para evitar
los picos inversos de tensión generados por la bobina
del relé, de modo de prevenir la posible quema del
transistor.

El circuito es alimentado por una fuente de
alimentación formada por un transformador, un puente
rectificador, un filtro, un regulador de tensión y otro
filtro.

Los relés serán los encargados de
manejar la circulación de la corriente
alterna que alimentará a las cargas.

Cada relé toma la fase de la red de 220V, pasa
por la carga conectada a su tomacorriente y retorna al neutro
de la red.

La limitación de la carga estará dada
por los relés, los cuales deberán ser los
adecuados para el trabajo
que les vayamos a dar.

Como última recomendación, trate de
aislar bien la parte de corriente alterna de la parte de
corriente continua. Un golpe de alterna al circuito de control
podría, en el mejor de los casos, quemar solo el puerto
paralelo.

 

 

 

Autor:

Carlos A. Rodriguez

Webmaster de

San Vicente, provincia de Buenos Aires,
Argentina

20 de junio de 2006

Trabajo enviado por:

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter