Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Señal por puerto paralelo (https://www.clubdelphi.com/foros/showthread.php?t=19499)

b3nshi 16-03-2005 17:11:01

Señal por puerto paralelo
 
Hola nuevamente, estuve leyendo a cerca de como se envían señales por el puerto paralelo y mi pregunta aparece porque mi objetivo es prender un led. Que señal tengo que mandar por el puerto para que se encienda? porque leí que se puede mandar "hola" "o cualquier texto" y la verdad que no entiendo como con esto puedo llegar a encender el foco.
Muchisimas gracias

Sotrono 19-03-2005 04:52:14

Como va b3nshi?.
El puerto paralelo tiene 8 entradas, 8 salidas, conexion a tierra, y algunas cositas mas.
Para manejar el puerto paralelo en Delphi podes utilizar unas instrucciones en Ensamblador:

asm
push dx
mov dx, 888 //888 es la direccion del puerto paralelo
mov al, 255
out dx, al
pop dx
end;

En la instruccion "mov al, 255" se coloca en "al" el valor que queremos enviar por el puerto paralelo, en este caso 255. 255 en decimal es = a 11111111 en binario, osea que en cada una de las 8 salidas del puerto vamos a tener un 1. Modificando este valor podes enviar y manejar muchas cosas con el puerto paralelo. Aunque en realidad para poder controlar aparatos que funcionan con 220v por ejemplo vas a necesitar un circuito aparte (que es muy simple).
Espero que te sirva, cualquier duda no dudes en postear.

Salu2...

b3nshi 20-03-2005 22:11:44

Hola
 
Hola, muchas gracias por tu respuesta. Digamos que si me sirve, pero aun asi me falta entender algo. La parte del circuito electrico para prender un foco de 220v ya lo tengo hecho. utilizo entre otras cosillas, 2 resistencias, un transistor, un relé y un fusible. Eso para prender desde un PIN.
la idea es la siguiente. El puerto paralel tiene desde el PIN 2 al 9 señales de salida, y por cada una de esas salidas yo conecto un foco (con todo el circuito necesario) y lo que yo necesito hacer, es por ejemplo, mandar una señal por el PIN 4, unicamente por ese pin. Mi pregunta es, con las funiones que me diste, como lo haría???.

asm
push dx
mov dx, 378h //Esa creo que es la direccion del LPT1
mov al, 255
out dx, al
pop dx
end;

Muchas Gracias!

Mick 20-03-2005 23:37:00

Cita:

Empezado por b3nshi
la idea es la siguiente. El puerto paralel tiene desde el PIN 2 al 9 señales de salida, y por cada una de esas salidas yo conecto un foco (con todo el circuito necesario) y lo que yo necesito hacer, es por ejemplo, mandar una señal por el PIN 4, unicamente por ese pin. Mi pregunta es, con las funiones que me diste, como lo haría???.

En la primera respuesta ya se explica que en el numero que se asigna al registro "AL", es donde se especifican los pines.
Si quieres activar un pin determinado tendras que indicar el valor binario adecuado. En el valor binario 11111111, cada digito indica un pin, puesto a uno significa activado a 0 desactivado, por ejemplo el numero 00100100, activa 2 pines.
Despues solo tienes que pasar a decimal el numero en binario correspondiente y asignarlo al valor "AL", en google podras encontrar cientos de paginas donde explican la conversion de binario <-> decimal, es conveniente que te estudies este tema si quieres hacer cosas del estilo que intentas.

Otra cosa, ten en cuenta que la salidas del puerto paralelo son TTL que dan 5 o 0 voltios, y no estan pensadas para soportar mucha intensidad de corriente solo unos pocos miliamperios, asi que ten cuidado de calcular adecuadamente el consumo del circuito que conectes, no vaya a ser que quemes las salidas.

Si conectas un led tendras que poner una resistencia en serie de un valor adecuado que limite la intensidad de corriente sino generarias un cortocircuito y adios puerto paralelo.

Igualmente no puedes activar directamente el rele con los 5 voltios de la salida (bueno quizas con algun micro-rele de poco consumo si se pueda), tendras que utilizar una fuente de alimentacion diferente para activar el rele, y utilizar un optoacoplador o un circuito amplificador con un transistor entre la salida de 5 voltios y el rele, si no seguramente se quemara la salida.

Saludos

b3nshi 21-03-2005 22:15:04

hola de vuelta
 
Con respecto a lo de tener cuidado, no hay problema, ya analicé bien la parte electrica del circuito que necesito hacer. Utilizo dos resistencias, un transistor, un diodo y un relé, entre otras cosas. Ahora creo que entiendo un poco mas. Pero por las dudas no haya entendido, voy a decir lo que entendí. :P. Digamos que si yo quiero mandar una señal por el pingo 5 tengo que convertir el valor 5 en binario???.
Y una preguntita mas, sabes algo sobre el puerto usb?

Sotrono 22-03-2005 00:49:44

No, te lo voy a explicar de una forma mas grafica:
Imaginate que cada * es una salida del puerto.

* * * * * * * *
1 1 1 1 1 1 1 1

En este caso se estaria enviando un 1 por cada salida del puerto, para poder programar esto debes convertir el numero 11111111 en decimal = 255.


* * * * * * * *
1 0 0 0 0 0 0 0

Para enviar esto tendrias que pasar el numero 10000000 a binario = 128.


Si queres enviar

* * * * * * * *
0 1 1 0 0 1 1 0

1100110 = 102

Ahora entendes???
Sobre el controlar el puerto USB no tengo mucha idea, pero "Googleando" un poco seguro que encontras info.

b3nshi 22-03-2005 04:24:28

Ahora si!
 
Mas claro imposible, me sirvio mucho tu ayuda. Muchisimas Gracias por todo!

rencom 10-05-2005 17:58:04

hola,
he encontrado un rele que lo hago funcionar kon 5V DC es un OMRON G6D-1A que me permite manipular como maximo corrientes de 250V 5A CA o 30V DC 5A.
creeis ke podria colocar este rele directamente a la salida del puerto paralelo sin peligro para este¿?
la idea ke tengo es intentar simplificar el circuito, y estos reles me lo darian ya todo hecho.
kreeis ke es posible? o habria ke ponerle alguna resistencia para limitar el consumo?
gracias y un saludo

XxEdwinxX 18-09-2006 06:17:40

he leido que esas instrucciones no pueden dar en windows xp, es cierto eso? que se nececita para ke trabajen en xp???, lo que quiero es paresido a lo que plantea como problema, bye

seoane 18-09-2006 12:35:04

¿Tiene que ser por el puerto paralelo? ¿no puede servir el serie? lo digo porque en la sección de trucos, puedes encontrar este, que explica como accionar un relé desde el puerto serie.

De todas formas, y volviendo al tema de tu pregunta, si quieres manejar el puerto paralelo necesitas instalar un driver que te lo permita. Existen varios, y gratuitos, por ejemplo el que puedes encontrar aquí http://www.logix4u.net/inpout32.htm . De todas formas si solo necesitas una o dos señales digitales, la opción de usar el puerto serie puede ser interesante al no tener que instalar nada para utilizarlo.


La franja horaria es GMT +2. Ahora son las 15:06:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi