Pagina Principal | Eléctrica | Sistemas | Mail: [email protected] |
Nota: Hace mucho tiempo que no revizo esta Pagina y que no agrego ningun proyecto. Ahora me encuentro trabajando con PHP y estoy diseñando el siguiente sitio. Ir al Sitio |
Ver todos los Proyectos | Proyecto: Semáforo para peatones |
Proyecto: Control de Puerto Paralelo | Proyecto: Control de calefacción |
Proyecto: Puerto Paralelo
Fecha de Inicio:
01/07/2002
Ultima Modificación:
Si tienes algo interesante que decir o quieres aportar algo mándame un E-Mail.
Para empezar debemos saber que un puerto paralelo es el de la impresora, por ejemplo. Este consta de una ficha DB25 hembra. Otra cosa muy importante que hay que tener en cuenta es la dirección de este puerto, para saberla la podemos obtener de distintas maneras:
Intervalo de Entrada/Salida | 3BC - 3BF |
Intervalo de Entrada/Salida | 378 - 37B |
Intervalo de Entrada/Salida | 278 - 27B |
Estos intervalos están en el sistema de numeración
Hexadecimal.
El puerto paralelo consta de 3 bytes que se los denominan DataPort,
StatusPort y el ControlPort y sus direcciones son las siguientes (
dependiendo de las direcciones bases que este tenga):
DataPort | StatusPort | ControlPort |
3BC | 3BD | 3BE |
378 | 379 | 37A |
278 | 279 | 27A |
Para nuestro propósito en este caso el que vamos a utilizar será el DataPort
ya que es el puerto que envía datos a la impresora o sea es un
puerto de salida.
Cada Bit que forma este Byte tiene un Pin relacionado en la
ficha DB25, y esta es la relación:
PIN | BIT |
2 | 0 |
3 | 1 |
4 | 2 |
5 | 3 |
6 | 4 |
7 | 5 |
8 | 6 |
9 | 7 |
Con estos conocimientos estamos apto para la fase de programación, la
cual será realizada en Visual Basic 6.0. La sentencia para dominar este puerto
es:
Out
PuertoDeDato, Dato
PuertoDeDato es una variable del tipo Byte que va a
contener la dirección del DataPort.
Dato es una variable del tipo Byte
que va a contener el Dato a escribir, Algunos ejemplos:
Dato = 0 El Byte DataPort que daría en formato binario 00000000 , con lo que si dispones de un tester o cualquier otro dispositivo para medir corriente continua, colocando una punta del tester a tierra (Chasis PC, etc) por lo general la punta negra y la otra ( roja) en cualquier pin del 2 al 9 deben darte 0 voltios.
Dato = 255 El Byte DataPort que daría en formato binario 11111111, con lo que si dispones de un tester o cualquier otro dispositivo para medir corriente continua, colocando una punta del tester a tierra (Chasis PC, etc) por lo general la punta negra y la otra ( roja) en cualquier pin del 2 al 9 deben darte 5 voltios.
Dato = 157 El Byte DataPort que daría en formato binario 10011101, con lo que si dispones de un tester o cualquier otro dispositivo para medir corriente continua, colocando una punta del tester a tierra (Chasis PC, etc) por lo general la punta negra y la otra ( roja) en los pines 2,5,6,7 y 9 tenes que tener 5 voltios y en los pines 3,4 y 8 tenes que tener 0 voltios.
También tenes que incluir una Librería "Inpout32.dll"
Programación
En un nuevo Proyecto de Visual Basic debemos incluir un Formulario y dos módulos. Aquí están los códigos:
Formulario: Form1
Dim ValorPuerto As Byte
Private Sub cmdAutor_Click()
MsgBox
"Fernando Masino e-mail: [email protected]", vbOKOnly
End
Sub
Private Sub cmdSalir_Click()
End
End Sub
Private Sub
Form_Unload(Cancel As Integer)
Call EnviaPuerto(0)
End Sub
Private
Sub PINES_Click(Index As Integer)
If ESTADOPIN(Index + 2) = ACTIVADO
Then
vBYTE = vBYTE - 2 ^ (Index)
ESTADOPIN(Index + 2) =
DESACTIVADO
PINES(Index).BackColor = ROJO
Else
vBYTE = vBYTE + 2 ^
(Index)
ESTADOPIN(Index + 2) = ACTIVADO
PINES(Index).BackColor =
VERDE
End If
Call EnviaPuerto(vBYTE)
End Sub
Private Sub
Form_Load()
For i = 0 To 7
Me.PINES(i).Caption = "PIN " & Str(i +
2)
ESTADOPIN(i + 2) = DESACTIVADO
Next i
Call EnviaPuerto(0)
vBYTE =
0
End Sub
Private Sub RESET_Click()
Call EnviaPuerto(0)
vBYTE =
0
For i = 0 To 7
ESTADOPIN(i + 2) = DESACTIVADO
PINES(i).BackColor =
ROJO
Next i
End Sub
Private Sub TODOS_Click()
Call
EnviaPuerto(255)
vBYTE = 255
For i = 0 To 7
ESTADOPIN(i + 2) =
ACTIVADO
PINES(i).BackColor = VERDE
Next i
End Sub
Modulo: COLORES
Option Explicit
Public Const ROJO = &HFF&
Public Const
VERDE = &HFF00&
Public Const GRIS = &HC0C0C0
Public Const
BLANCO = &HFFFFFF
Modulo: Mudule1
Public Const PUERTO_DATOS = &H3BC
Public Const ACTIVADO = 1
Public
Const DESACTIVADO = 0
Public vBYTE As Byte
Public ESTADOPIN(1 To 25) As
Integer
Declare Sub Out Lib "Inpout32.dll" Alias "Out32" (ByVal Addr%, ByVal
Bite As Byte)
Declare Function Inp Lib "Inpout32.dll" Alias "Inp32" (ByVal
Addr%) As Byte
Public Sub EnviaPuerto(ByVal Dato As Byte)
Out
PUERTO_DATOS, Dato
End Sub
El Programa en Visual Basic 6 lo puedes bajar cliqueando debajo:
Descargar
PuertoParalelo.zip (5 KB)
Circuito Electrónico
A esta salida del Puerto paralelo la podes utilizar para controlar artefactos
domésticos o para otras cosas, por ejemplo con un circuito electrónico bien
realizado podes utilizar esos 5 Vcc para disparar un Triac y asi podes hacer
pasar a través de este 220 Vca y con esto encender una luz o el televisor y
cuando desactives esa salida el Triac cortara el suministro de voltaje al
receptor (Lámpara, Televisor, etc.).
Aquí te propongo un circuito electrónico
con sus componentes:
Como todos los pines llevan el mismo esquema se dibujo uno solo, si queres podes realizarlo para una, dos, tres o hasta ocho salidas.
Componentes:
Resistencias
R1-16 = 470 ohms 1/4W
R17-24 = 1kOhm 1/4W
Semiconductores
D1-8 = Led 5mm
T1-8 = Triac MAC 12N
IC1-8 = Optoacoplador MOC 321
Varios
Ficha DB25 hembra (para circuito impreso)
8 pares de
borneras
Disipadores para los Triac T1-8
Ficha DB25, funciones de los distintos pines