# Puerto paralelo, visual Basic y circuito de prueba



## VIKKOSKY (Nov 5, 2008)

Hola amigos del foro

Edito este hilo por que me parece que no hay mucha gente que probo Windows Xp, visual basic 6 y el puerto paralelo, específicamente puerto de control como salida...

Este es mi circuito que lo baje... ya no recuerdo de donde... pero lo arme y tal ves es el del problema...


Sabrian decirme si el error esta en este circuito?



saludos.


----------



## Meta (Nov 5, 2008)

Utiliza el Visual Basic .net 2008 Express (Gratuito).

http://www.microsoft.com/express/download/

No tendrás problemas y no utilizas ya esas librerías.


----------



## VIKKOSKY (Nov 5, 2008)

Gracias Meta po la respuesta... pero estoy obligado a utilizar visual basic 6, porque utilizare el programa en equipos hasta con win 95..!

y visual net. necesitaba framework..2 y todo ese rollo... 

igual gracias por contestar..

vikko


----------



## Meta (Nov 5, 2008)

Si utilizas el SP3 del XP y SP1 del Vista, ya viene incluido. Si utilizas Win95, lo entiendo...


----------



## VIKKOSKY (Nov 6, 2008)

Hola

Me dijieron que deberia utilizar el timer del visual...

Pero por mas que busco no encuentro un ejemplo claro hecho con el timer 

Alguno de uds. utilizo el timer pa el manejo del puerto paralelo?

Aun espero que alguien pueda hecharme una mano..

Vikko


----------



## VIKKOSKY (Nov 19, 2008)

Hola amigos ...
Ya que nadie me responde me respondo yo mismo...

Finalmente logre solucionar... el problema del contador... y si la solucion pasa por el timer de visual...

pero resulta que ahora tengo otro problema...

Me cuenta los pulsos sin problemas desde el puerto de entrada... pin 13 para ser exactos... con un timer que se ejecuta cada 1 microsegundo...

El problema es que en uno de esos conteos cambia su valor el puerto de control de datos... el problema no siempre ocurre en el mismo punto sino en puntos diferentes... y yo pretendia usar el puerto de control para otras cosas... 

Alguno de uds tuvo algun problema parecido?'
yo estoy a punto de acusar a la libreria... io.dll 

ah... y probe mas o menos el mismo codigo pero en Borland C de msdos, y todo funciona prefectamente...

Sera un problema de libreria?

saludos.

Vikko


----------



## VIKKOSKY (Nov 20, 2008)

Estuve googleando por ahi... y tal parece que la mayoria utilizó el puerto paralelo para salida de datos, para entrada, pero muy pocos utilizaron el Puerto de Control como salida!

Y lo que pasa es que al utilizar los tres al mismo tiempo... el Puerto de control tiene señales extrañas... de repente cambia por unos microsegundos su valor para luego regresar a su estado original... Yo pense que era algun problema de io.dll y probe con impout32.dll y resulta el mismo problema...! asi que talves el windows Xp es el problema...

Finalmente me cambie a windoze 98 y el mismo codigo, y la plaqueta de pruebas (con leds y pulsadores) me funciona bien.... Alguien sabria decirme a que se debe esto? o si alguien tuvo un problema parecido?

Vikko


----------



## Meta (Nov 20, 2008)

El problema es que los puertos paralelo de las placas viejas no es la misma que las nuevas porque hay pines que los puedes configurar  no responde igual. Se configura en la BIOS.

Eso es lo que estoy leyendo por ahí y tengo intención de hacer un manual sobre ello con Visual C# si es posible.


----------



## VIKKOSKY (Nov 21, 2008)

Gracias por tus comentarios meta...

Me parece que es un problema con el win Xp y mi placa electronica con leds y todo eso
Hasta ahora no me habia percatado... pero me anime a probar mi plaqueta sin ejecutar mi programa, es decir sobre el escritorio crudo de windosxp !

y resulta que al enviarle pulsos  por pin13 (de entrada) y manteniendo unos leds (para salida por pines de Control) sucede que despues de cada cierta cantidad de pulsos de entrada aplicados al pin 13...  entre los pines de control suceden cambios inesperados... o sea variaciones momentaneas!

Y probe la misma placa electronica y la misma computadora... pero con S.O. win 98... y resulta que ya no existen tales variaciones... 

Si alguien pudiera hecharme una mano con esto quedaria muy agradecido...

Vikko


----------



## VIKKOSKY (Nov 21, 2008)

Q tal amigos...

Y me estoy desesperando...

Esta es la placa que utilizo pa mis pruebas en WINXP... y presenta la falla que les describi... no importa si haya programa o no ejecutadose en visual... yo le doy al pulsador y de pronto los valores del puerto de control CAMBIAN!... o parpadean por un momento pa volver a otro estado...

Probe el mismo circuito en otra Compu tambien con WINXP y tiene el mismo problema... finalmente probe en una Pentium3 con Xp y ... el mismo problema... No se si alguno de Uds pueda ayudarme con esto, o tal ves este circuito este con problemas... en fin ... aun tengo un poco de fe en que puedan hecharme una mano...

Vikko


----------



## VIKKOSKY (Nov 21, 2008)

perdon.. aca va la placa...


----------



## VIKKOSKY (Nov 21, 2008)

Bueno por ahora revisare y tratare de encontrar alguna información con el parport.sys que hasta donde pude ver es el driver de puerto paralelo para windows Xp...
Vik


----------



## VIKKOSKY (Nov 22, 2008)

Hola!

Alguien porfa pueda decirme si mi circuito esta bien... ya desconfio de todo de winxp... de la placa madre... de mi circuito.. programa...

auxilio.!

vikko


----------



## fernandoae (Nov 23, 2008)

Como alternativa te diria que pruebes con la libreria INPOUT32.dll


----------



## Meta (Nov 23, 2008)

Aquí os dejo más información sencilla del puerto paralelo por si acaso.

http://witsuk.com/index.php?option=com_content&task=view&id=84&Itemid=35


----------



## VIKKOSKY (Nov 25, 2008)

_Gracias por tu respuesta fernando..._

Sin embargo... ya probe inpout32.dll, io.dll.. tambien otros como PortalTalk y UserPort... y que creen?
Nada...

Estoy seguro que el problema es el Windows, esta es mi version:

*Windows Xp Profesional
Version 2002
Service Pack 2
*

la probe con 3 equipos:

*en un Core2 con Tarjeta Asrock
en un CeleronD con Tarjeta Intel
y en un Pentium 3 tarjeta intel...
*
y El problema continua...

Probe los sistemas operativos:

Windows 98 - Aca todo anda bien.
Windows 2000 - Aca todo anda bien
Windows Xp (el que ya mencione) - aca tiene los problemas...


Podria subir codigo... Pero no hace falta... simplemente mando pulsos al puerto de entrada... y el estado del *puerto de control* cambia... y de cuando en cuando presenta variaciones...

Ahora estoy indagando por el *parport.sys* .. es el driver de puerto paralelo.. en Windows Xp (lo que uno tiene que hacer por utilizar el puerto de control)... Si alguien sabe algo del uso este puerto en Xp os suplico que me heches una mano...

Saludos

Vikkosky


----------



## VIKKOSKY (Nov 26, 2008)

Ooops... pos no se pelen tanto por contestar...

Mientras voy buscando un* controlador de puerto de impresora* actualizado para WinXp, me doy cuenta que simplente tal actualizacion NO existe...  

Saludos..  Vere hasta donde puedo perseverar...

Vikkosky


----------



## fernandoae (Nov 26, 2008)

a mi me funcionaron todas esas dll, y tengo la misma version del xp... el problema debe venir por otro lado


----------



## digitalgirl (Nov 30, 2008)

ya probaste con los nuevos archivos del puerto paralelo?
yo tmbien hice un proyecto con visual hace poco y cuando lo intente instalar en win xp me daba error y no lo corria (bueno el ejecutable), a pues la cosa era que necesitaba las versiones mas recientes de los archivos
aqui te los dejo por si acaso es eso


----------



## VIKKOSKY (Dic 1, 2008)

Gracias por contestar Fernandoe y DigitalGirl...

Les cuento que ya probe INPOUT.DLL, IO.DLL, USERPORT, PORTALTALK y nada aun, utilice los archivos que me mando DigitalGirl.. y el problema continua...

Finalmente Probe el circuito *directamente*!! sobre windowsXp, Sin hacer ejecutar ningun programa .. solo le doy pulsos manualmente al sensor por la pata 13 (tal como esta en el esquematico) y veo que de cuando en cuando el estado del *PUERTO DE CONTROL varia!!!* ... 

Por eso me atrevo a decir que el problema es el WINDOWS... porque haciendo lo mismo en win98 NO PASA ESO..

Por otro lado el PUERTO DE DATOS no tiene este problema...

Bueno si no es una molestia.. Me gustaria que pudieran copiarme el esquematico del circuito con el que trabajaron.. tal vez el mio este mal...! yo utilizo el que muestro en un mensaje anterior..

Saludos y Gracias

Vikkosky


----------



## fernandoae (Dic 1, 2008)

El circuito no es complicado y solo hay que conectar los leds con las resistencias prestando atensión que esten conectados al pin correcto.
Aca te mando unos programitas que hice hace un tiempo para que pruebes


----------



## Dr. Zoidberg (Dic 1, 2008)

No entiendo como has hecho las conexiones al puerto paralelo. Si querés usar el port de control para encender los leds, entonces en base a tu esquema, tenes un par de errores en el circuito:

Pin 1    -> -Strobe -> Salida Invertida (OK)
Pin 14  -> -Autofeed -> Salida Invertida (OK)
Pin 15  -> -Error -> Entrada! (MAL... -ERROR es del puerto de STATUS, no del de CONTROL, además es entrada!)
Pin 3   -> D1 -> Salida sin inversion (MAL, por que D1 es del puerto de DATOS, no del de CONTROL)
Pin 13 -> Select In -> Entrada (OK)

Al final de esto hay comentarios mas detallados...
http://www.doc.ic.ac.uk/~ih/doc/par/

De todas formas, si no ponés el codigo que estas usando, dificilmente podamos saber lo que estas haciendo por soft....


Saludos!


----------



## VIKKOSKY (Dic 1, 2008)

Hola

Gracias Ezavalla por tus observaciones... y por los archivos q me enviaste gracias Fernando... 
y Como decias que querias ver mi soft .. es el que traigo ahora...
Aca va mi nuevo esquematico..: 

y el software en visual basic 6

bueno.. solo puedo decir que este softare funciona perfectamente en win98, en win2000 pero con winXP nada.. 

El problema es que mientras cuenta pulsos por Pata13 de pronto el valor del *puerto de control *cambia, el *puerto de datos* .. ningun problema... y el de *Estado... *ningun problema... Y lo que mas me hace dudar de WinXp es que aun cuando no tenga el programa ejecutandose, al mandarle pulsos por pin13, el puerto de control varia igual de cuando en cuando...

Bueno saludos y espero me hechen una mano...


vikkosky


----------



## Dr. Zoidberg (Dic 1, 2008)

Y donde usas, en el código que subiste, la subrutina "out" que es la que fija el valor de las lineas de los puertos de datos y control?
En ninguna parte haces algo como Out( DataPort, 120 ) [ojo, es un ejemplo] para cambiar el valor de los bits de el puerto de datos o algo similar para el puerto de control. SIn eso, no te va a andar nunca...
O te falta un pedazo de código o .....

Saludos!


----------



## Meta (Dic 1, 2008)

Hola:

¿Has probado algo de Visual Basic .net 2008?
http://www.microsoft.com/express/download/

Saludo.


----------



## fernandoae (Dic 1, 2008)

No creo que sea por la version del vb


----------



## VIKKOSKY (Dic 2, 2008)

Holas

Precisamente ese es el problema Ezavalla, no hago ninguna operacion de salida (aun) con el Puerto de Control, y sin embargo luego de contar una cantidad de pulsos por Puerto de Estado (Pin13), el valor del *puerto de control CAMBIA!!!* de repente... asi sin mas ni mas...

Ese es el problema... 

Lo q me hace pensar mas es que el mismo circuito, con el mismo programa y misma computadora, funciona perfectamente en Win98 y Win2000, sin cambios inesperados en el *puerto de control* .

Espero q ahora si haya logrado que me entiendan... ops:
Cualquier sugerencia es bienvenida...

Gracias por su tiempo..

Vikkosky.


----------



## Dr. Zoidberg (Dic 2, 2008)

VIKKOSKY dijo:
			
		

> Precisamente ese es el problema Ezavalla, no hago ninguna operacion de salida (aun) con el Puerto de Control, y sin embargo luego de contar una cantidad de pulsos por Puerto de Estado (Pin13), el valor del *puerto de control CAMBIA!!!* de repente... asi sin mas ni mas...
> 
> Ese es el problema...
> 
> Lo q me hace pensar mas es que el mismo circuito, con el mismo programa y misma computadora, funciona perfectamente en Win98 y Win2000.......



Entonces no digás que "anda perfectamente" por que parece que el funcionamiento que describes es el correcto en otros Sist. Operativos!

Bueno, volviendo a tu problema, seguí estos pasos:
1- Andá al BIOS y configurá el puerto paralelo para operación en modo SPP o EPP, que es como querés usarlo (no actives el modo ECP). Grabá la configuración y entrá a Windows XP.
2- Entrá al administrador de dispositivos, seleccioná el puerto paralelo que estés usando. Te tiene que decir algo como "Puerto de Impresora SPP" (o EPP, según lo que hayas puesto en el BIOS).
3- Con el puerto seleccionado, click derecho, propiedades. En la solapa que dice "Configuración del puerto" asegurate de DESACTIVAR la opción "Habilitar detección de Plug & Play heredado". Grabá los cambios y salí de ahí. Reiniciá la PC si te lo pide.
4- Volvé a ejecutar el programa. Supongo que debería andar sin problemas, a menos qu etengas algo raro instalado y funcionando....pero mi bola de cristal a esta hora no funciona.

Saludos!


----------



## fernandoae (Dic 2, 2008)

Che y no tendras algun programa o algun servicio que este accediendo al puerto?


----------



## VIKKOSKY (Dic 2, 2008)

holas

Gracias por tus sugerencias Ezevalla... y revisare lo que me comentas Fernandoe... ya les aviso como me fue...

Entretanto mientras buscaba algun problema parecido... finalmente encontre esta pagina donde avisan de un problema muy parecido... lastimosamente no pude guardar la direccion pero la descargue en un archivo.. pero puede actualizarse... 


Vikko


----------



## VIKKOSKY (Dic 3, 2008)

Holas!

Al fin la solucion!  

Resulto que el causante del problema no era la inpout32.dll ni la io.dll ... Y tampoco la version de Visual Basic ni estaba en la placa de la Bios.... sino  era el WindowsXP!  :evil:

Bueno les paso la solucion por si alguien a alguien le sirve o si alguien tiene un problema con este puerto...
Resulta que si solo utilizas *"puerto de dato" y "puerto de estado"* WinXp Asigna un valor predeterminado a *puerto de control*  y cada cierto tiempo revisa que este valor continue...Bueno, si *solo *utilizas puerto de datos y de estado, seguro no te afecta en nada... pero en cuanto te metes con el *puerto de control* antes de utilizar este puerto es necesario desactivar esta "revisión" en el registro de WinXP... que no *NO EXISTE*... 

1.- Como NO EXISTE, en el *regedit* crear el valor DWORD con el nombre de *"DisableWarmPoll"* con un valor de *1*, en: *HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Parport\Parameters*
(Ojo probe en otra CPU y ni siquiera tenia la clave!!! *Parameters*, Asi que la tuve que crear..  )

2.- Reiniciamos la MAKINA y listo!

Bueno, para hacerlo más facil les prepare un *QuitaProblema.reg* que sirve para que Windows no te haga problemas a la hora de manejar el *puerto de control*... Y un *AumentaProblema.reg* que sirve para que Windows te siga cambiando valores en el puerto de control cuando manejes los puertos... (ja.. aunque a nadie le gustaria sumar un problema mas de los que seguramente ya tiene.. pero en fin cada quien con su rollo...)

Los detalles tecnicos simplemente... los ignoro (yo solo intento que mi programa en Visual funcione bien..).. asi que por las razones preguntad a los especialistas en WinXP y la solución simplemente la tomo de la pagina que les envie en un post anterior... ah y el link para los mas avezados... *http://www.lvr.com/jansfaq.htm*  Bueno Aun tengo algunas Dudas mas en Visual Basic pero creo que tendra que ser en otro tema.. pos ya trato con graficas...

Gracias a quienes no me dejaron solo con este pequeño gran problema... Por sus amables ideas...

Vikkosky
[/url]


----------



## wensho (Sep 14, 2009)

buenas, mi problema es que quiero hacer un programa para poder conectarme al puerto paralelo y de ahi desifrar los valor que entrar por medio de una balanza electronica espero que me puedan ayudar.


----------



## ramirin (Feb 6, 2010)

Hola a todos. Yo no sé nada de programación en Visual Basic ni en ningún otro lenguaje, estoy perdido. He copiado algunos de los tantos códigos que han subido y he ido aprendiendo con ello, medio los modifico y veo el resultado y la verdad me facina este mundo. Soy técnico en electrónica, hacer circuitos me resulta sencillo; pero hasta hoy lo mas que he logrado es hacer que se activen con la pc dando una instrucción directa, ni idea de cómo programar una secuencia de eventos y que el programa vaya ejecutandose y obviamente el circuito seguirlo.

Pero bueno. La pregunta que tengo es: ¿cómo hacer que una secuencia de pulsos ingresen a través del puerto paralelo y que la cuenta aparezca en la pantalla, con un segundo pulso que también ingrese por el puerto resetear la cuenta pero que este mismo impulso, cuando vuelva a aparecer genere una especie de latch para que la cuenta no se pierda.

Los encoders generan un tren de pulsos (los que quiero contar) y también traen un pulso de referencia que aparece cada vez que completa una vuelta (el de reset) el problema es que uno no sabe dónde esta esa marca, por eso la primera vez que se presente debe resetear la cuenta, pero cuando aparezca por segunda vez debe retenerla para así saber cuántos pulsos hubo en una vuelta del encoder (su resolución).

Tal vez es mucho pedir, y sé que no se vale dar la solución total al problema, pero cualquier pista que me den la seguiré hasta alcanzar el objetivo. Como sea, los sigo intentando. Cuidense mucho y hasta pronto.


----------



## christianandres (Mar 9, 2010)

yo se programar en visual basic si necesitan algo solo pidanmelo ami correo tengo muchos programas relacionados con el puerto paralelo que yo mismo cree espero que les sirvan D: santy.skate@gmail.com


----------



## Greenwar (May 10, 2010)

Hola, me parece que le estás errando con el circuito, fijate en esto:





Deberías usar los pines: 1, 14, 16 y 17. Y acordate que salvo el 16, el resto está invertido. Saludos.


----------



## Meta (May 11, 2010)

Hola de nuevo.

Por ahora en Visual C# 2010 lo he acabado al 100 % y mefunciona como un campeón. 

http://electronica-pic.blogspot.com/2010/01/interfaz-puerto-paralelo.html

Me falta investigar para Visual Basic .net 2010 y Visual C++ 2010. Cuando me funcione los tres lenguajes, empezaré hacer un manual como este.

http://www.abcdatos.com/tutoriales/tutorial/z9521.html
http://www.abcdatos.com/tutoriales/tutorial/v12.html

Saludo.


----------



## jhonedwardvasquez (Jul 30, 2010)

yo tengo la respuesta para tu ayuda
cualquier cosa si esta interesado por favor enviarme un e-mail:



*Sin mails personales por favor*


asunto: driver para xp en electronica(Vikkosky)
para poderme acordar por que se me olvidan las cosa
feliz dia para todos y eeexxxxitosss


----------



## Meta (Jul 30, 2010)

Si estuviera de Moderador, en este sitio de microcontroladores y interfaz, les educo si o si.


----------

