Puerto paralelo, visual Basic y circuito de prueba

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
 

Adjuntos

  • vb_125.rar
    478.9 KB · Visitas: 141
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!
 
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
 

Adjuntos

  • inter_462.rar
    12.6 KB · Visitas: 69
  • nuevoesquema_499.jpg
    nuevoesquema_499.jpg
    36.4 KB · Visitas: 175
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!
 
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.
 
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!
 
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
 

Adjuntos

  • posiblesolucion_824.rar
    173 KB · Visitas: 65
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... :eek:

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
:LOL:[/url]
 

Adjuntos

  • puerto0x37a_202.rar
    539 bytes · Visitas: 65
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.
 
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.
 
Hola, me parece que le estás errando con el circuito, fijate en esto:
port01.gif

Deberías usar los pines: 1, 14, 16 y 17. Y acordate que salvo el 16, el resto está invertido. Saludos.
 
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
 
Última edición por un moderador:
Atrás
Arriba