En el foro se han abierto varios temas similares, solicitando información de como sacar datos con el puerto paralelo. Con la finalidad de evitar tantos temas repetidos, trataré de hacer un tutorial sencillo.
Notas Antes de Empezar
---------
1.- Este tema permanecerá cerrado para manterer la consecutividad en el tema, pero si tienen dudas comentarios, críticas o sugerencias, pueden hacerlas en.
https://www.forosdeelectronica.com/f26/comentarios-tuto-puerto-paralelo-2798/
--------
2.- En el caso de "Controlar 1 Bit" y "CONTROLAR TODOS LOS BITS DE SALIDA" Se ha hecho un ejemplo en Turbo c++ v3, LabView v 7.1 y Visual Basic Profesional v6
Pero a Partir del 3° "DISPLAY 7 SEGMENTOS " Será con Visual Basic V8 Turbo c++ v3 y LabView 7.1
El único que cambia es VB, la razón es que me gusta más esta versión![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Si quieren pueden seguir haciéndolos en vb6, solo hay que modificar un par de cosillas.
Además Visual Basic Puede Descargarse Gratuitamente
Visual Basic 2005 Express Edition
En esta versión se pueden abrir y convertir proyectos de Vb6
--------
3.- Hasta hace días solo sabía usar C, así que aprendí Visual Basic para poder hacer este tuto. Si alguien esta interesado en aprender Visual Basic este tutorial me sirvió mucho.
Curso Visual Basic
--------
4.- Haré lo posible por hacer un ejemplo en C, en Visual Basic y Lab View.
--------
5.- Tomen todas las precauciones posibles con el puerto, compren opto acopladores 4n26 para trabajar con CD o moc3010 para CA, si llegaran a quemar su puerto o necesitan otro, pueden comprarlos, los venden por $300 para PCI.
--------
CONTROLAR 1 BIT
Para empezar solo controlaremos un bit de salida para apagar/encender un dispositivo de CA desde el puerto Paralelo del PC, ya entendiendo esto se pueden controlar los demás Bits.
Material Necesario
1 Puerto paralelo libre
1 Moc3010m
1 Triac (A los Amperes que trabaje el dispositivo I=P/V)
1 Resistencia 560 Ohms
1 Resistencia 220 Ohms
1 Led
1 Conector Db25 Macho
Cable para interconexiones (Puede ser del de Red de 8 Hilos)
1 Fusible (Al amperaje del dispositivo)
1 Clavija CA con cable
Si quieren pueden hacer sus propios programas o bajar el que yo he hecho.
El circuito es bastante sencillo, aunque si quieren primero pueden probar con un LED + 2 resistencias y un 4n26.
Funcionamiento:
La R1, se encarga de limitar la corriente del puerto paralelo evitando que este se dañe, esta conectada al pin2 del puerto paralelo que es el Bit Menos Significativo (LSB=Less Significative Bit) del dato de salida del Puerto.
Del puerto paralelo podemos utilizar desde el pin 2 hasta el 9, para escribir un dato de 8 bits el pin 2 es el que utilizaremos y corresponde al bit1 o LSB.
Si quisiéramos controlar más dispositivos podemos utilizar los demás bits.
Puede verse que R1 se conecta al pin1 de un Moc3010m, este es un dispositivo de 6 patas que esta sirviendo como aislante entre la etapa de control (PC) y la de potencia (Dispositivo de CA, motor, foco, lavadora, televisión.).
El moc, contiene en su interior un acoplamiento óptico entre un LED y un fotodiac, cuando ponemos a 1 lógico, el bit1 del puerto paralelo, llega corriente al Led interno del moc y fluye corriente a través de este hasta La tierra del puerto Paralelo que va desde el pin18 hasta el 25.
Mientras el Bit1 se mantenga en 1, el led esta encendido (pero no se ve pues esta adentro), frente al Led del Moc, existe un fotodiac, que es un dispositivo típico de disparo, actúa cuando entre sus 2 terminales hay cierto potencial llamado voltaje de disparo (regularmente son 35v). Pero este disparo no ocurre si el Led no le proporciona luz.
Por tanto mientras no haya pulso por parte del puerto LPT, el led no enciende y el fotodiac no se dispara, la haber pulso, el led enciende y el fotodiac esta habilitado para hacer los disparos.
El triac es un dispositivo semiconductor, el cuál conduce corriente en ambos sentidos por tanto puede conducir durante los 360° de una señal de CA.
Su conducción esta controlada por la compuerta, en la cuál es recibido el disparo proporcionado por el fotodiac, cuando este manda un pulso a la compuerta del triac, este se comporta como un interruptor cerrado, haciendo que la corriente fluya hacia la Carga que puede ser cualquier cosa como un foco, motor, televisión.
Si no hay disparo del Fotodiac, el Triac se comporta como un aislante o interruptor abierto y no llega corriente a la carga por lo cuál no enciende.
Ahora, en la lista aparece un Led, este puede ponerse en serie con el interno del moc solo para tener un indicador visual del estado del puerto. El fusible sería solo si el aparato no lo incluye ya, se pondría en serie con la carga.
Y eso sería todo en cuanto a hardware se refiere.
Software
SOFTWARE PARA C
En C sería de esta manera.
Notas:
*Adjunto el link para descargar el compilado
*No lo explicaré para evitar enfadar, pero si alguien tiene dudas respecto al código, puede hacérmelas saber.
*Como estamos usando dos.h solo puede correr en DOS, no he podido hacerlo funcionar en XP por que tiene los puertos Bloqueados, si alguien me dice como se lo agradeceré mucho.
*Empezamos con las librerías necesarias
*La función PARALELO pueden o no agregarla, yo la pongo para que el programa solito busque la dirección del puerto casi siempre es la misma pero bueno
. Si lo quitan tendrán que declararla o introducirla manualmente.
Descargas
Software en C Solo Funciona Para Win9x Razón: En Xp deben desbloquearse los puertos
SOFTWARE PARA VISUAL BASIC
En Visual Basic es más sencillo, podemos solo agregar 2 botones y lo demás es cosa de presentación.
El comando es Out &dirección.dato
El código sería así:
Notas:
Hay que agregar un .dll que esta adjunto en el 1bitlptfvisual.zip, a la carpeta del sistema, yo lo pegué en Windows, system y system32.
Adjunto el compilado por si lo quieres ya hecho, no lo explicaré por que esta muy sencillo, pero si alguien tiene dudas respecto al código, puede hacérmelas saber
Para el Form
Además debemos agregar un Módulo par ala Dll
Descargas
Software en Visual Basic
SOFTWARE EN LABVIEW
Si creyeron que en Visual Basic es fácil, pues esperen trabajar con Lab View, en 5 min, se puede hacer lo que hicimos con los anteriores programas.
Las versiones superiores a Lab View 5 permiten utilizar el puerto paralelo. Yo estoy usando la 7.1 y permite compilar las simulaciones, pero no he podido comprobar si funciona en Pc's sin Lab View, dejaré un instaler por si alguien "QUE NO" tenga instalado Lab View, me hace favor de probarlo.
Para empezar, ocupamos poner un Interruptor Bolean, un convertidor de Bolean String a Number , una constante numérica en la que pondremos la dirección del puerto en decimal =888 y un Out Port
Tal como en la imagen siguiente:
No olviden meterlo dentro de un ciclo while
Descargas
Software LabView Se Necesita tener Instalado LabView O El Visor De LabView Para Poder Ejecutarlo.
Notas Antes de Empezar
---------
1.- Este tema permanecerá cerrado para manterer la consecutividad en el tema, pero si tienen dudas comentarios, críticas o sugerencias, pueden hacerlas en.
https://www.forosdeelectronica.com/f26/comentarios-tuto-puerto-paralelo-2798/
--------
2.- En el caso de "Controlar 1 Bit" y "CONTROLAR TODOS LOS BITS DE SALIDA" Se ha hecho un ejemplo en Turbo c++ v3, LabView v 7.1 y Visual Basic Profesional v6
Pero a Partir del 3° "DISPLAY 7 SEGMENTOS " Será con Visual Basic V8 Turbo c++ v3 y LabView 7.1
El único que cambia es VB, la razón es que me gusta más esta versión
Si quieren pueden seguir haciéndolos en vb6, solo hay que modificar un par de cosillas.
Además Visual Basic Puede Descargarse Gratuitamente
Visual Basic 2005 Express Edition
En esta versión se pueden abrir y convertir proyectos de Vb6
--------
3.- Hasta hace días solo sabía usar C, así que aprendí Visual Basic para poder hacer este tuto. Si alguien esta interesado en aprender Visual Basic este tutorial me sirvió mucho.
Curso Visual Basic
--------
4.- Haré lo posible por hacer un ejemplo en C, en Visual Basic y Lab View.
--------
5.- Tomen todas las precauciones posibles con el puerto, compren opto acopladores 4n26 para trabajar con CD o moc3010 para CA, si llegaran a quemar su puerto o necesitan otro, pueden comprarlos, los venden por $300 para PCI.
--------
CONTROLAR 1 BIT
Para empezar solo controlaremos un bit de salida para apagar/encender un dispositivo de CA desde el puerto Paralelo del PC, ya entendiendo esto se pueden controlar los demás Bits.
Material Necesario
1 Puerto paralelo libre
1 Moc3010m
1 Triac (A los Amperes que trabaje el dispositivo I=P/V)
1 Resistencia 560 Ohms
1 Resistencia 220 Ohms
1 Led
1 Conector Db25 Macho
Cable para interconexiones (Puede ser del de Red de 8 Hilos)
1 Fusible (Al amperaje del dispositivo)
1 Clavija CA con cable
Si quieren pueden hacer sus propios programas o bajar el que yo he hecho.
El circuito es bastante sencillo, aunque si quieren primero pueden probar con un LED + 2 resistencias y un 4n26.
![Triacmoc.jpg](https://www.forosdeelectronica.com/upload/EinSoldiatFiles/Triacmoc.jpg)
Funcionamiento:
La R1, se encarga de limitar la corriente del puerto paralelo evitando que este se dañe, esta conectada al pin2 del puerto paralelo que es el Bit Menos Significativo (LSB=Less Significative Bit) del dato de salida del Puerto.
Del puerto paralelo podemos utilizar desde el pin 2 hasta el 9, para escribir un dato de 8 bits el pin 2 es el que utilizaremos y corresponde al bit1 o LSB.
Si quisiéramos controlar más dispositivos podemos utilizar los demás bits.
Puede verse que R1 se conecta al pin1 de un Moc3010m, este es un dispositivo de 6 patas que esta sirviendo como aislante entre la etapa de control (PC) y la de potencia (Dispositivo de CA, motor, foco, lavadora, televisión.).
El moc, contiene en su interior un acoplamiento óptico entre un LED y un fotodiac, cuando ponemos a 1 lógico, el bit1 del puerto paralelo, llega corriente al Led interno del moc y fluye corriente a través de este hasta La tierra del puerto Paralelo que va desde el pin18 hasta el 25.
Mientras el Bit1 se mantenga en 1, el led esta encendido (pero no se ve pues esta adentro), frente al Led del Moc, existe un fotodiac, que es un dispositivo típico de disparo, actúa cuando entre sus 2 terminales hay cierto potencial llamado voltaje de disparo (regularmente son 35v). Pero este disparo no ocurre si el Led no le proporciona luz.
Por tanto mientras no haya pulso por parte del puerto LPT, el led no enciende y el fotodiac no se dispara, la haber pulso, el led enciende y el fotodiac esta habilitado para hacer los disparos.
El triac es un dispositivo semiconductor, el cuál conduce corriente en ambos sentidos por tanto puede conducir durante los 360° de una señal de CA.
Su conducción esta controlada por la compuerta, en la cuál es recibido el disparo proporcionado por el fotodiac, cuando este manda un pulso a la compuerta del triac, este se comporta como un interruptor cerrado, haciendo que la corriente fluya hacia la Carga que puede ser cualquier cosa como un foco, motor, televisión.
Si no hay disparo del Fotodiac, el Triac se comporta como un aislante o interruptor abierto y no llega corriente a la carga por lo cuál no enciende.
Ahora, en la lista aparece un Led, este puede ponerse en serie con el interno del moc solo para tener un indicador visual del estado del puerto. El fusible sería solo si el aparato no lo incluye ya, se pondría en serie con la carga.
Y eso sería todo en cuanto a hardware se refiere.
Software
SOFTWARE PARA C
En C sería de esta manera.
Notas:
*Adjunto el link para descargar el compilado
*No lo explicaré para evitar enfadar, pero si alguien tiene dudas respecto al código, puede hacérmelas saber.
*Como estamos usando dos.h solo puede correr en DOS, no he podido hacerlo funcionar en XP por que tiene los puertos Bloqueados, si alguien me dice como se lo agradeceré mucho.
*Empezamos con las librerías necesarias
*La función PARALELO pueden o no agregarla, yo la pongo para que el programa solito busque la dirección del puerto casi siempre es la misma pero bueno
Código:
#include <conio.h>
#include <dos.h>
#include <stdio.h>
#include <string.h>
int paralelo(), para, opc=0, contador, estado=0;
unsigned int _far *puntero_a_direccion;
char *uno="1", *dos="2", *tres="3", *letra;
main()
{
paralelo();
outportb(para,0);
while(opc!=3)
{
clrscr();
*letra=getch();
opc=strcmp(letra,uno);
if(opc==0)
{
outportb(para,1);
estado=1;
}
else
{
opc=strcmp(letra,dos);
if(opc==0)
{
outportb(para,0);
estado=0;
}
else
{
opc=strcmp(letra,tres);
if(opc==0)
{
gotoxy(30,20);
printf("Aplicaci¢n Finalizada");
delay(1000);
opc=3;
}
else
{
gotoxy(30,20);
printf("Presiona una opci¢n v*lida");
delay(1000);
}
}
}
}
outportb(para,0);
}
paralelo()
{
clrscr();
busqueda:
puntero_a_direccion=(unsigned int _far *)0x00000408;
printf("Rastreando Direcci¢n de Puerto Paralelo");
while(contador<40)
{
printf(".");
contador++;
delay(35);
}
clrscr();
para=*puntero_a_direccion;
outportb(para, 0);
}
![1BITLPT-CF.gif](https://www.forosdeelectronica.com/upload/EinSoldiatFiles/1BITLPT-CF.gif)
Descargas
Software en C Solo Funciona Para Win9x Razón: En Xp deben desbloquearse los puertos
SOFTWARE PARA VISUAL BASIC
En Visual Basic es más sencillo, podemos solo agregar 2 botones y lo demás es cosa de presentación.
El comando es Out &dirección.dato
El código sería así:
Notas:
Hay que agregar un .dll que esta adjunto en el 1bitlptfvisual.zip, a la carpeta del sistema, yo lo pegué en Windows, system y system32.
Adjunto el compilado por si lo quieres ya hecho, no lo explicaré por que esta muy sencillo, pero si alguien tiene dudas respecto al código, puede hacérmelas saber
Para el Form
Código:
Private Sub Command1_Click()
Out &H378, 0
End Sub
Private Sub Command2_Click()
Out &H378, 1
End Sub
Código:
Public Declare Function Inp Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
![1BITLPT-vF.gif](https://www.forosdeelectronica.com/upload/EinSoldiatFiles/1BITLPT-vF.gif)
Descargas
Software en Visual Basic
SOFTWARE EN LABVIEW
Si creyeron que en Visual Basic es fácil, pues esperen trabajar con Lab View, en 5 min, se puede hacer lo que hicimos con los anteriores programas.
Las versiones superiores a Lab View 5 permiten utilizar el puerto paralelo. Yo estoy usando la 7.1 y permite compilar las simulaciones, pero no he podido comprobar si funciona en Pc's sin Lab View, dejaré un instaler por si alguien "QUE NO" tenga instalado Lab View, me hace favor de probarlo.
Para empezar, ocupamos poner un Interruptor Bolean, un convertidor de Bolean String a Number , una constante numérica en la que pondremos la dirección del puerto en decimal =888 y un Out Port
Tal como en la imagen siguiente:
![PUERTOLABFOR.gif](https://www.forosdeelectronica.com/upload/EinSoldiatFiles/PUERTOLABFOR.gif)
No olviden meterlo dentro de un ciclo while
![PuertoWhileLF.gif](https://www.forosdeelectronica.com/upload/EinSoldiatFiles/PuertoWhileLF.gif)
Descargas
Software LabView Se Necesita tener Instalado LabView O El Visor De LabView Para Poder Ejecutarlo.