Foro de elhacker.net

Informática => Electrónica => Mensaje iniciado por: BADBYTE-K en 27 Noviembre 2004, 11:11 am



Título: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 27 Noviembre 2004, 11:11 am
porke no lo posteas en programacion?
-ya lo he puesto (http://foro.elhacker.net/index.php/topic,47786.0.html) hace dias, ya va por la page 3 kreo... pero para los que no visitan todos los foros aqui les va...



pues si, esto esta destinado para los novatos en el mundo de la programacion, a novatos que les guste la electronica, y que deseen combinar la  potencia de las computadoras con la electronica o a quienes simplemente les interese manipular o detectar variables fisicas desde la pc...
leelo todo, no es largo lo que pasa es que lo hice en el kwrite de linux (como el bloc de notas de winbugs) por eso me quedo asi =P todo desordenao...

pensamiento....
seria interesante tener por ejemplo, un software que te permita controlar las luces de la casa entera,
 o un software que te avise que puerta de la casa ha sido abierta, o un software que ayude a tu mamá a
 regar las platas automaticamente o desde la pc. se acabarian los tipicos regaños de tu mamá... "te la
 pasas todo el dia en la computadora y no haces nada en la casa".... ya no te dirian eso, por que desde
 la computadora, abririas puertas, encenderias luces, regarias las plantas, etc...

pero sin irnos tan lejos para empezar y no complicarnos tanto con electronica, podemos hacer tambien
 cosas basicas, aunque la verdad la aplicacion que le des a la programacion, es cuestion de los limites
 de tu imaginacion 8)

como esto es para novatos, antes que nada hay que conocer cual es el puerto paralelo... (cabe decir
que usare imagenes linkeadas, luego las cambio por unas que tengo... :P)

(http://www.ctp.ru/images/LPT.jpg)

si no la vez aki esta http://www.ctp.ru/images/LPT.jpg

es un conector del tipo hembra, que consta de 25 terminales (pines, huecos, como los llames...)
se conoce tecnicamente como DB25...

estos 25 pines estan divididos en tres "bytes" llamados dataport, statusport y controlport, todos
 orientados al manejo de una impresora conectada ahi, gestionan desde el control del papel, hasta
 si la impresora esta ocupada, etc...
vamos a robarnos esas propiedades y a usarlos para nuestros fines  :D


aqui tenemos en detalle los pines del puerto paralelo

(http://www.rafal.waw.pl/wynalazki/porty/lpt.gif)

si no lo vez http://www.rafal.waw.pl/wynalazki/porty/lpt.gif

podemos ordenar cada uno de los bytes

Dataport

pin 2 - D0
pin 3 - D1
pin 4 - D2
pin 5 - D3
pin 6 - D4
pin 7 - D5
pin 8 - D6
pin 9 - D7



Statusport

pin 10 - ACK
pin 11 - BUSY
pin 12 - PAPER END
pin 13 - SELECT IN

pin 15  - ERROR


ControlPort

pin 1 - STROBE
pin 14 - AUTO FEED
pin 16 - INIT
pin 17 - SELECT


la parte de GND, son los tierra
del 18 al 25

para saber cual pin es cual, acercate a tu puerto paralelo y te daras cuenta que a la par de cada terminal
tiene su numero, cuidado con conectar al revez la cosas xD

en resumen podemos decir esto:

el Dataport se usa como salida
el Statusport se usa como entrada
el controlport se usa de las dos formas anteriores

es decir que para encender leds, mandar voltaje al puerto usaremos el Dataport, para recibir niveles
de voltaje usaremos el Statusport (un ejemplo del uso del statusport es para cuando en un sistema de
riego que al terminar de regar, este haga un cambio de voltaje en algun dispositivo (como un rele)
se detecta el cambio de cero a 5 voltios y se puede hacer "la magia" de la deteccion de acciones fisicas
desde la computadora, en este caso desde visual basic) para empezar es mas que suficiente trabajar con
estos dos bytes.

Ahora que ya hablamos un poquito de el puerto, hablemos de la programacion necesaria para trabajar con
este puerto...

hay que saber que para trabajar con este puerto debes tener en tu pc, una dll que gestiona toda esta
programacion, una puede ser la io.dll y otra puede ser la inpout32.dll en este caso usaremos la inpout32.dll
(en realidad no cambia mucho la programacion entre las dos, pero de que palabritas cambian, cambian :P
ojo con eso...)

nos bajamos la inpout32.dll

http://www.google.com.sv/search?hl=es&q=inpout32.dll&btnG=B%C3%BAsqueda+en+Google&lr=

antes de continuar se nos hara necesario sabernos la posicion de memoria del puerto paralelo en nuestro pc
o la direccion en memoria, que viene a ser lo mismo...
generalmente la direccion en memoria del puerto paralelo se ve asi:

378------dataport
379------statusport
37A------controlport

si no estas seguro puedes hacer varias cosas para saber la direccion, una es durante el power on self test
de la bios irte con pause hasta que veas algo como el intervalo de salida/entrada del puerto paralelo
, en XP puedes irte a propiedades de mi pc> ficha hardware > administrador de dispositivos >
puertos COM y LPT > da click en el + y luego posicionate en el LPT > click derecho > propiedades > dale a
la ficha recursos > y ahi tendras el intervalo entrada/salida del puerto...


ocuparemos primero la direccion 378 para poder enviar voltaje al puerto paralelo

ok, creamos un nuevo proyecto, lo ideal a la hora de programar con esta dll es crearte un modulo nuevo

menu proyecto > agregar modulo
luego nos saldra una ventana que nos preguntara si es uno existente o uno nuevo, escogemos uno nuevo...

en el modulo vamos a declarar esto:

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)

todos entendemos lo que hace este codigo, no sera necesario dar detalles... cabe destacar que la dll debe
estar en el directorio del sistema c:/windows/system32 creo que ese es :P, si no corrobora en tu pc

ok, ahora que tenemos las instrucciones
empezamos con un ejemplo sencillo

agrega a tu formulario lo siguiente:

un nuevo textbox
un nuevo boton

la instruccion (con la inpout32.dll) para poder enviar datos al puerto paralelo es la mas logica que pueda
existir, es Out xD

su sintaxis es asi:

out(puerto, dato)

por ejemplo:

Out &H378, 255

hay que tener en cuenta tambien el tipo de dato que le enviaremos al puerto:

0
2
4
8
16
32
64
...
255

eso seria para enviar voltaje uno por uno a cada pin del dataport o pines de datos que es lo mismo
para poner en cero voltios a todos los pines de datos se usa el 0 ( out &H378, 0)
para poner un 1 logico(5 voltios) en el pin D1 se usa 2 (out &H378, 2) y asi sucesivamente....
hasta que para poner todos los pines de datos se utiliza el 255 (out &H378, 255)

esto seria un programita elemental con un boton para cada dato:

Private Sub Command1_Click()
Out &H378, 1
End Sub

Private Sub Command2_Click()
Out &H378, 2
End Sub

Private Sub Command3_Click()
Out &H378, 4
End Sub

Private Sub Command4_Click()
Out &H378, 8
End Sub

Private Sub Command5_Click()
Out &H378, 16
End Sub

Private Sub Command6_Click()
Out &H378, 32
End Sub

Private Sub Command7_Click()
Out &H378, 64
End Sub

Private Sub Command8_Click()
Out &H378, 128
End Sub

Private Sub Command10_Click()
Out &H378, 255
End Sub

Private Sub Command9_Click()
Out &H378, 0
End Sub


si quisieras enviar un 1 logico a varios pines de datos, unicamente debes sumar los datos:

por ejemplo, para mandar datos a la vez a D1 y a D2 se usaria 2 + 4 , es decir quedaria asi la order:

out &H378, 6

y asi sucesivamente...

si queremos detectar o captar desde el puerto paralelo, entonces hacemos algo asi...

usamos la instruccion inp

aki tienen el ejemplo que yo usaba para practicar que me da flojera modificar =P, pero
lo hacia junto a juegos de imagenes para simular...



Private Sub Timer2_Timer()
If Image4(1).Visible = True Then
Image4(2).Visible = True
Image4(1).Visible = False
Text2.Text = Str(Inp(Val(&H379))) '  aqu puedes notar como el textbox cogia el valor
Text2.Refresh
If Text2.Text = 207 Then
''MsgBox "entrada 15 detectada"
Shape1.FillColor = &HFF&
End If
If Text2.Text = 71 Then
MsgBox "entrada 11 detectada"
End If
If Text2.Text = 79 Then
MsgBox "entradas 11 y  15 detectada"
End If
Exit Sub
End If
If Image4(2).Visible = True Then
Image4(3).Visible = True
Image4(2).Visible = False
Text2.Text = Str(Inp(Val(&H379)))
Text2.Refresh
If Text2.Text = 207 Then
''MsgBox "entrada 15 detectada"
Shape1.FillColor = &HFF&
End If
If Text2.Text = 71 Then
MsgBox "entrada 11 detectada"
End If
If Text2.Text = 79 Then
MsgBox "entradas 11 y  15 detectada"
End If
Exit Sub
End If
If Image4(3).Visible = True Then
Image4(1).Visible = True
Image4(3).Visible = False
Text2.Text = Str(Inp(Val(&H379)))
Text2.Refresh
If Text2.Text = 207 Then
''MsgBox "entrada 15 detectada"
Shape1.FillColor = &HFF&
End If
If Text2.Text = 71 Then
MsgBox "entrada 11 detectada"
End If
If Text2.Text = 79 Then
MsgBox "entradas 11 y  15 detectada"
End If
Exit Sub
End If
End Sub


ok ahora que lo vieron y se dieron cuenta que es algo amateur xD, les explico...
el problema que se me daba a la hora de practicar la deteccion de "eventos" en un
circuito electronico, era que no encontraba el evento en visualbasic adecuado para
colocar el codigo que se encargaria de gestionarme todo lo que sucederia segun el estado
del statusport..

entonces se me ocurrio hacer un "simulador de activacion" es decir como un monitoreo
a la activacion...

por ejemplo se "encendien" foquitos(imagenes) en el formulario algo asi:

0=apagado
1= encendido

100
010
001
100
010
001
100
010
001

y aprovechando la secuencia de cambio automatico por medio del timer pude encontrar
el evento que me diera la deteccion automatica de la presencia de personas en una zona
por medio de sensores conectados por medio de una interfase al puerto paralelo (al
statusport)

If Image4(1).Visible = True Then
Image4(2).Visible = True
Image4(1).Visible = False

cuando la imagen 4(1) fuera visible, la imagen 4(2) se encendia y al instante se
apagaba la imagen4(1) y asi sucesivamente...


para la deteccion de codigos del status me apoye de un textbox
Text2.Text = Str(Inp(Val(&H379)))

ese me cogia el valor en el statusport que varia segun el estado de sus terminales
te genera una combinacion, la cual tienes que manipular segun te convenga y segun la
conexion que hayas hecho...

If Text2.Text = 207 Then
''MsgBox "entrada 15 detectada"
End If

si el codigo era 207 el msgbox lo dice todo...

se puede dar el mismo caso que al enviar datos al puerto, que mandes a dos pines ala vez
en ese caso:

If Text2.Text = 79 Then
MsgBox "entradas 11 y  15 detectada"
End If

todo es cuestion de probar uno a uno las combinacion posibles que te va a generar
lo de usar un textbox es nada mas para la hora de practicar, hacer pruebas y copiar
los codigos que te genera el statusport.. y si a la hora de hacer tu propia aplicacion
te da flojera modificarlo como es mi caso generalmente xD entonces nada mas lo pones
invisible y todo igual =)

text2.visible = false '=P

con respecto al aspecto de la seguridad y del cuido del puerto paralelo hay interfases
especiales que se encargan de echarte una mano y de cuidar a la vez el puerto paralelo
que puedes dañar si no tienes cuidado =P

http://www.google.com.sv/search?hl=es&q=interfase+puerto+paralelo&btnG=B%C3%BAsqueda&lr=

pues, en lo que generalmente se basa una interfase para el puerto paralelo en en la
amplificacion de salida que lastimosamente la salida directa de corriente del puerto
paralelo es muy pobre, y se hace necerio agregar una interfase estabilizadora con
buffers o con
transistores, y con otro monton de cosas que puedes usar...

hay muchas paginas que manejan como algo totalmente serio el uso de interfases de pro-
tecccion, porque puedes quemar el puerto paralelo, pero si no vas a manejar cosas
como motores, u otras cosas que exigen mas, y solo quieres practicar con leds por
ejemplo, no es necesaro armar o comprar ua interfase ya que funciona perfectamente
aunque siempre hay que tener el debido cuidado de no conectar mal algo...

espero les ayude a los novatos para que empiecen a trabajar con esto tan interesante
que es la manipulacion y deteccion de variables fisicas desde la pc =)

saludox
[/color]


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Bastian en 29 Diciembre 2004, 09:09 am
Hola! ;D

Estoy currandome un poco el puerto paralelo para hacerme unas cosillas (buscando informacion sobre esto encontre esta pagina y tu post, pero creo que seré asiduo). Y creo que podriamos intercambiar informacion.

De VB no se mucho, pero en C he escrito un par o tres lineas de codigo asi que nos entenderemos.

Queria hacerte una matizacion......
Citar
en resumen podemos decir esto:

el Dataport se usa como salida
el Statusport se usa como entrada
el controlport se usa de las dos formas anteriores

El Dataport, se puede usar como entrada y como salida (por lo menos en W98/ME).

Para poder leer el dataport, hay que activar el bit 5 del Controlport (C5=1, escribiendo por ejemplo
Código:
outportb(0x37a,0x20);
).
Este bit no tiene pin correspondiente en el conector, pero si existe en el registro Controlport = 0x37a y se encarga de comunicaciones bidireccionales. Tengo un programita en C (bajo dos)que lo hace perfectamente, si quieres el codigo lo publico.

En w2000/xp, de momento no lo he conseguido (tiene los puertos cerrados), pero estoy trabajando en ello (programo en C++ Builder). De momento, me he bajado la DLL, y voy a probar.

Por cierto, segun la configuracion del puerto paralelo en la BIOS (modos SPP, EPP, ECP) se crean mas registros ademas de los que mencionas. Por ejemplo en el modo EPP hay registros del LPT en las direcciones 378,379,37a,37b,37c,37d,37e,37f,778,779,77a. Estoy investigando que se oculta en estos registro, cuando lo sepa lo sabras

Salu2!


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 29 Diciembre 2004, 10:28 am

Citar
El Dataport, se puede usar como entrada y como salida (por lo menos en W98/ME).
si, hace poko un amigo hizo un soft que kontrola un sistema de riego y el censo de la humedad de la tierra lo hizo por medio del dataport, aunke personalmente no lo comprobe, pero lo uniko que me afirmo fue que uso otra dll y pues que dañaron un puerto mientras hacian las pruebas, es la razon por la que no me he lanzado a probarlo  ;D, aunke no estaria mal...

saludox[/color]


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Bastian en 30 Diciembre 2004, 02:49 am
Hola!

No sabras que otra DLL?

Me interesa todo lo que sepas del tema.GRACIAS. ;)
Salu2!


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Shadow en 31 Diciembre 2004, 14:25 pm
Demasiado interesante, estos tipos de proyectos los empece a hacer bajo VB, pero usando el Ps2, del mouse o del teclado... asignando cada contacto... a alguna puerta por si se habre... o a sensores de una balanza, cositas asi, pero veo que es mucho mejor por el paralelo, y no parece muy dificil
Por USB es aconsejable hacer este tipo de experimentos, o se va demasiado dificil la cosa.


Salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 31 Diciembre 2004, 14:53 pm
para el caso de visual basic las mas comunes son la io.dll y la inpout32.dll  aunke segun dicen que la io.dll es la ideal para windows XP y la inpout no, pese a eso yo personalmente he trabajado con la inpout bajo windows xp y todo bien unicamente que en el dataport tenia la anormalidad de que los niveles de voltaje a veces variaban repentinamente, aunke ni idea si era a causa de eso... ademas he visto por ahi un control llamado LPT.ocx otro es la inpout16.dll he probado el LPT.ocx y te da una facilidad tremenda a la hora de la programacion porke trabaja con instrucciones tipo port.salida= 1 port.salida=2 basandose en el numero de pin

Citar
Por USB es aconsejable hacer este tipo de experimentos, o se va demasiado dificil la cosa.

me propuse trabajar con el USB pero honestamente me encontre limitado por la poka informacion que hay y la dificultad de la que hablan en otros foros, en mi caso unicamente he manejado un sistema de camaras por usb usando un .ocx (shareware) llamado imagingcontrol (a kien le interese buscar por imagingsource icimagingcontrol, imagingcontrol) es de una empresa experta en camaras y esos rollos, lo utilizamos para el manejo de un sistema de vigilancia inteligente... las limitantes del control es que unicamente lo puedes usar dos meses, aunke en la web de la empresa se encuentra mucha info y codigo y ejemplos de programacion.


saludox[/color]


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 31 Diciembre 2004, 15:51 pm
aki esta a kien le interese ese control

http://foro.elhacker.net/index.php?topic=52050

saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: free_kevin en 18 Enero 2005, 19:39 pm
si yo lo pense varias veces y hasta se me ocuriio quetambien use un sistema de alarma inteligente que tambien puedas mandar comandos con un celular por medio de tonos dtmf
al puerto como un codigo de acceso o accion
que cree "movimiento" en la casa cuendo esta sola y con grabaciones como que hay alguien dentro
encienda el equipo de musica ,la tele,luces,que llame a la policia cuando suene laa alarma con una grabacion tuya
diciendo tu direccion y llamandote a vos a tu celular
usando un voice modem o simplemente la placa de audio
y algunas sirenas de automovil
el soft es facil ,el tema como vos dijiste BADBYTE es la
imaginacion...............




Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 4 Febrero 2005, 11:24 am
heterotopo movi tu duda a telefonia

http://foro.elhacker.net/index.php/topic,56385.0.html



saludox


Título: Programación del Puerto Paralelo con Linux
Publicado por: BADBYTE-K en 7 Febrero 2005, 04:25 am
     Programación del Puerto Paralelo con Linux (breve)

http://bulma.net/body.phtml?nIdNoticia=1150


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: privatic en 8 Febrero 2005, 03:42 am
Hola,
Resulta que estoy haciendo experimentos con el puerto paralelo.
Yo antes solo conocia la programacion en C mediante Borland 3.0, o sea que hacia algunas cosas solo para DOS.
Resulta que saltar de C de DOS en lo que es codigo para control del puerto paralelo a WINDOWS XP es todo un camino para recorrer y experimentar.
tuve que bajarme el DEVCPP y ALLEGRO para hacer mis practicas... y por supuesto la DLL inpout32.dll para el manejo del puerto.
Ahora bien, lo que ando necesitando es que no se COMO HACER RETARDOS DE MICROSEGUNDOS para tener que mis datos enviados se mantengan a una velocidad constante independientemente de la maquina donde se ejecute.
Antes usaba un codigo en asm insertado que trabajaba con el puerto del Speaker y su configuracion, alterando algunas direcciones de memoria del ic timer para obtener una bandera de retardo...
Pero ahora en WIN32, MODO CONSOLA COMO ESTOY... necesito adicionar codigo y ESTOY BUSCANDO ALGUN EJEMPLO.... en resumen... hazte cuenta que quiero generar por ejemplo una onda cuadrada en el bit 2 del DATA PORT y que su espaciado entre estados 1 sea de 15 microseg.... se podra con algun codigo?

Otra cosa que me interesaria saber es si puedo programar con este gnu DEVCPP que tiene el compilador mingw con archivos insertados asm como solia hacer con mi viejo borland.... alguien sabe algo?
 
 
 


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: cartocman en 22 Febrero 2005, 10:06 am
 ;D hola, en el momento estoy muy metido en el cuento del puerto paralelo y tengo una ventana que descargue para elegir el pin que se desea activar, se puede enviar datos y tambien los recibe y muestra tanto en los led's que esten conectados como en el PC, es muy util ojala les sirva de algo... A mi me ha servido para probar el funcionamiento de mis proyectos. conectense a esta pagina:
www.qeekhideout.com (http://www.qeekhideout.com)
luego en la linea de menu que esta a la izq de esta pagina busquen el Freeware y metanse a PARALLEL PORT MONITOR y descarguenlo.
me despido y les mando muchas saludes y les repito.. ojala que les sirva de algo mi aporte


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 29 Marzo 2005, 02:56 am
;D hola, en el momento estoy muy metido en el cuento del puerto paralelo y tengo una ventana que descargue para elegir el pin que se desea activar, se puede enviar datos y tambien los recibe y muestra tanto en los led's que esten conectados como en el PC, es muy util ojala les sirva de algo... A mi me ha servido para probar el funcionamiento de mis proyectos. conectense a esta pagina:
www.qeekhideout.com (http://www.qeekhideout.com)
luego en la linea de menu que esta a la izq de esta pagina busquen el Freeware y metanse a PARALLEL PORT MONITOR y descarguenlo.
me despido y les mando muchas saludes y les repito.. ojala que les sirva de algo mi aporte

No me funciona el link... es este el OCX que menciono Badbyte????
esk e buscado el ocx pero no lo encuentro, y esto que dice badbyte no me keda claro del todo, de toas formas gracias


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 29 Marzo 2005, 06:40 am
ocx hay varios que hacen por asi decirlo "magia" te hacen las cosas automaticas, lo mejor es que uses alguna de las dll que menciono inpout32.dll, io.dl asi manipularas mejor tu software


saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 29 Marzo 2005, 08:38 am
si, yo ya tengo la inpout32.dll, lo que pasa esque no me quedo muy claro eso de que "Out &H378, 255 " yo lo que quiero es sacar por un determinado pin x voltios, como hago eso?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 29 Marzo 2005, 18:53 pm
Out &H378, 255 con esto lo que logras en enviar un 1 logico a todos los pines del data es decir todos tienen voltaje, en el tutorial explico como hacer para varias la salida de voltaje segun pin:

Citar
hay que tener en cuenta tambien el tipo de dato que le enviaremos al puerto:

0
2
4
8
16
32
64
...
255


si pones 0 ninguno tiene voltaje

si pones 2....pin 2 - D0 tiene voltaje (5voltios, 1 logico)
esto es = a decir:

Citar
Out &H378, 2

si pones 4....pin 3 - D1 tiene voltaje

Citar
Out &H378, 4

y asi sucesivamente:

Citar
pin 2 - D0
pin 3 - D1
pin 4 - D2
pin 5 - D3
pin 6 - D4
pin 7 - D5
pin 8 - D6
pin 9 - D7

Citar
8
16
32
64
...
255


saludox



Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 30 Marzo 2005, 01:28 am
Lo siento, pero esk no consigo entenderlo, y otra cosa, Ej: Un led tiene dos Patillas (+/-), yo conecto la patilla de un led a un pin dataport (que creo k son los que envian voltaje) y la otra patilla a donde va? (creo k sera al borde del enchufe)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Ian~Shadow en 30 Marzo 2005, 04:56 am
A creo que ya entendi:

Out &H378, 0 no manda nada, o 0 logico en todos los pins

Out &H378, 1 manda un 1 logico al 1°
Out &H378, 2 manda un 1 logico al 2°
Out &H378, 4 manda un 1 logico al 3°
Out &H378, 8 manda un 1 logico al 4°
Out &H378, 16 manda un 1 logico al 5°
Out &H378, 32 manda un 1 logico al 6°
Out &H378, 64 manda un 1 logico al 7°
Out &H378, 128 manda un 1 logico al 8°

Y Out &H378, 255  manda un 1 logico a todos los pins

Corrijanme si me equivoco.

anoche hacia las cuentas, y no me salian 10 combinaciones para 8 pins n_n ;D



Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 30 Marzo 2005, 08:43 am
umm creo k voy cojiendo el hilo

Osea Out &H378, 1 lo que hace es enviar al puerto 378, uno logico k son 5 voltios al pin 1, y como seria para enviar un dos logico????? dos logico cuantos voltios son?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 30 Marzo 2005, 12:28 pm
umm creo k voy cojiendo el hilo

Osea Out &H378, 1 lo que hace es enviar al puerto 378, uno logico k son 5 voltios al pin 1, y como seria para enviar un dos logico????? dos logico cuantos voltios son?

No, antes dejame aclararte algo:

Los sistemas digitales trabajan en base a "pulsos" por asi decirlo, dichos pulsos no son constantes dependientes si no que son ya establecidas y unicamente son dos...

el 1 logico: 5v
el 0 logico: 0v

no existe un dos logico ni nada mas, digamos es como decir

1= encendido
0= apagado

solamente es eso  :)

A creo que ya entendi:

Out &H378, 0 no manda nada, o 0 logico en todos los pins

Out &H378, 1 manda un 1 logico al 1°
Out &H378, 2 manda un 1 logico al 2°
Out &H378, 4 manda un 1 logico al 3°
Out &H378, 8 manda un 1 logico al 4°
Out &H378, 16 manda un 1 logico al 5°
Out &H378, 32 manda un 1 logico al 6°
Out &H378, 64 manda un 1 logico al 7°
Out &H378, 128 manda un 1 logico al 8°

Y Out &H378, 255 manda un 1 logico a todos los pins

Corrijanme si me equivoco.

anoche hacia las cuentas, y no me salian 10 combinaciones para 8 pins n_n ;D



exacto!  es asi  :) lo unico es que en tu aclaracion los valores 1º, 2º, 3º, 4º, 5º, etc... corresponden a lo que ya les dije anteriormente:

Citar
pin 2 - D0
pin 3 - D1
pin 4 - D2
pin 5 - D3
pin 6 - D4
pin 7 - D5
pin 8 - D6
pin 9 - D7


Lo siento, pero esk no consigo entenderlo, y otra cosa, Ej: Un led tiene dos Patillas (+/-), yo conecto la patilla de un led a un pin dataport (que creo k son los que envian voltaje) y la otra patilla a donde va? (creo k sera al borde del enchufe)

Tienes unos pines de "tierra" 

Citar
la parte de GND, son los tierra
del 18 al 25

ahi debes conectar los negativos de tus dispositivos


saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 2 Abril 2005, 05:28 am
Gracias Badbyte-k ya tengo todo aclarado... ya me explicaron lo del 0 y 1 logico...  para no joder la placa base del pc con estas cosas, que me hace falta? ¿Y si utilizo reles?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 3 Abril 2005, 04:54 am
depende, puedes usar reles con transistores de potencia o puedes usar unos dispositivos llamados "buffers" y otros llamados "drivers" que son los que se usa para trabajar con motores paso a paso


saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 3 Abril 2005, 06:40 am
drivers te refieres a controladoras nop?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 3 Abril 2005, 12:32 pm
me parece que si, recuerda que de pais en pais varia el nombre de la s cosas este es un "driver"

el L293B:

(http://www.hispavila.com/3ds/tutores/motorpap_files/l293b.gif)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 3 Abril 2005, 20:58 pm
Gracias por la info, haber si aprendo a soldar y me pongo ha hacer cosas de estas


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 4 Abril 2005, 06:05 am
COMO SOLDAR BIEN en electronica
http://www.geocities.com/ResearchTriangle/System/9627/soldar.htm

aki estamos pa aprender de todo  :D

saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: CarWarlock en 8 Abril 2005, 20:11 pm
Buenas.

Por mi experiencia con el puerto paralelo me gustaría añadir que el impout32.dll corre muy bien con los Win9x/Me pero con los NT no hay manera, en canvio el IO.dll va de maravilla ya que su programación es más avanzada.
Para activar dispositivos en las salidas del puerto paralelo (relés,...) recomiendo el integrado I2004 que trabaja como driver y va perfecto.

Salu2.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 8 Abril 2005, 20:45 pm
y como se usa en visual la IO? el I2004 donde me puedo hacer con el?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: CarWarlock en 8 Abril 2005, 21:29 pm
Buenas.

Esta es la manera de llamar a la IO.dll, el código lo he sacado de un ejemplo que hice hace tiempo, si quieres el código fuente hazmelo saber y te lo enviaré.
Referente de como puedes encontrar el I2004 no tengo ni idea en mi trabajo lo pedimos a los grandes distribuidores y ellos nos lo proporcionan pero mi imagino que en cualquier tienda de electrónica lo puedes encontrar.


Public Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)
Public Declare Sub PortWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Integer)
Public Declare Sub PortDWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Long)
Public Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte
Public Declare Function PortWordIn Lib "IO.DLL" (ByVal Port As Integer) As Integer
Public Declare Function PortDWordIn Lib "IO.DLL" (ByVal Port As Integer) As Long
Public Declare Sub SetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub ClrPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub NotPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Function GetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Public Declare Function RightPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function LeftPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function IsDriverInstalled Lib "IO.DLL" () As Boolean



Dim sOrt As Byte       'valor de la salida puerto paralelo
Dim sIn As Byte         'valor de la entrada puerto paralelo

Dim pOut As Integer  'direccion del puerto paralelo
Dim pIn As Integer    'direccion del puerto paralelo


Private Sub Form_Load()

If IsDriverInstalled = True Then

    pOut = &H378           'puerto LPT1 (salida datos)
    pIn = &H379             'puerto LPT1 (Status )
   
    sOrt = 0                   'desactivo todas las salidas
    PortOut pOut, sOrt     lo saco por el puerto
   
    sIn = PortIn(pIn)       'obtengo el valor del puerto paralelo

 Else
   MsgBox "El Driver no se encuentra cargado en memoria ", vbCritical + vbOKOnly, "Error"
   Unload Me
 End If
End Sub



Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 9 Abril 2005, 13:02 pm
vamos a probar


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: chinone en 22 Abril 2005, 23:54 pm
holas queria saber si me puedes ayudar necesito hacer un programa en visual basic con una alarma cuando la alarma detecte un movimiento manda un pulso al puerto paralelo y visual despliega un mensaje por pantalla... pero no se como hacerlo y con cuantos voltajes trabaja me podrias ayudar por fa...  :)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 23 Abril 2005, 03:01 am
 te dire teoricamente y si kieres aprender bien bien, debes tratar de empezar a hacerlo tu en base a la info que recolectes...

cuando la alarma detecte un movimiento manda un pulso al puerto paralelo y visual despliega un mensaje por pantalla...

Primero, supongo que esa alarma cuenta ademas de su "sistema de alarma" cuenta con su sensor o algo por el estilo que detectara el movimiento... entonces lo que debes hacer es conectar la parte del "flujo de deteccion" del movimiento (por ejemplo: en un sensor infrarojo, conectas la parte en donde se alimenta la activacion de la alarma, ya tu sabes..) entonces esa misma conexion la haces llegar al puerto paralelo de la pc, la conectaras en la etapa de estado del puerto:

Citar
Statusport

pin 10 - ACK
pin 11 - BUSY
pin 12 - PAPER END
pin 13 - SELECT IN
 
para mas detalles lee mi explicacion del status port:

http://foro.elhacker.net/index.php/topic,48748.0.html

entonces dicho status port sera el que detectara la actividad del movimiento de tu alarma, claro debes tomar en cuenta el voltaje, con esto aprovecho para contestar tu otra pregunta

y con cuantos voltajes trabaja me podrias ayudar por fa... :)

trabaja con 5 voltios tal y como un sistema digital TTL... si tu alarma trabaja con mas voltaje una alternativa (y cuando digo alternativa me refiero a que hay otras formas) es construir una etapa separadora por medio de reles (relays) en la cual se maneje el valor de voltaje de tu alarma separa totalmente de la conexion al puerto para no dañarlo...


y con respecto al mensaje que dara tu programa en visual basic, por ejemplo lo puedes hacer usando la condicional IF - ENDIF

Código:
If tal cosa then
pasa esto
End if

recuerda que el estado del status port (valga la redundancia) genera un dato, un dato numerico que sera por ejemplo 123,562, 345, etc.. segun la combinacion que se tengan en los pines de este... entonces en base al dato de el status port a la hora de activacion/desactivacion de la alarma haces tu estructura con el IF-END IF
te hare un ejemplo a la rapida

Código:
If dato = 143 then
msgbox ("La alarma se activo")
End if

Suponiendo que la variable dato sea la que almacena el estado de los pines y 143 sea la combinacion que indica que se ha activado la alarma...

lo demas me parece que esta explicado en el post principal:

http://foro.elhacker.net/index.php/topic,48748.0.html

trata de empezar a programarlo, y si tienes otras dudas durante el proceso de programacion, hazlas saber que aki estamos varios con animos de ayudar  :)



saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Ian~Shadow en 24 Abril 2005, 03:13 am
y si la señal que recive la computadora es variable como la señal de un fotosensor???

Gracias


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 24 Abril 2005, 03:42 am
la señal debe ser rectificada antes de entrar en contacto con el SP porke el metodo que te doy se basa en la sensibilidad del SP a la conmutacion


saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: chinone en 26 Abril 2005, 21:33 pm
Hola sabes que todavia no puedo hacer que funcione mira te envio el codigo me podrias decir que me falta porfa ...

Dim recibe As String

Private Sub Form_Load()
Label2.Visible = False
Out &H378, 0 'Apaga todas las salidas del puerto LPT1

End Sub

Private Sub Command1_Click()
Label1.Visible = False
Out &H378, 1 'Prende numero 2 en la salidas del puerto LPT1
recibe = Inp(&H379)
MsgBox recibe

If recibe = 71 Then
 MsgBox "Entrada 11 Detectada"
 Label2.Visible = True
End If
End Sub

y no se por que no me funciona de antemano gracias...


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 26 Abril 2005, 22:23 pm
sabe que creo...  porque le as hecho que detecte cuando pulse el boton, entonces solo funcionara cuando le des al boton y llegue señar, te recomiendo que pongas un timer con un intervalo bajo y que ay pongas
Código:
recibe = Inp(&H379)
MsgBox recibe

If recibe = 71 Then
MsgBox "Entrada 11 Detectada"
Label2.Visible = True
End If


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: chinone en 27 Abril 2005, 00:27 am
todavia nop ... lo puse como dijiste

Dim envia As String
Dim recibe As String

Private Sub Form_Load()
Label2.Visible = False
Out &H378, 0 'Apaga todas las salidas del puerto LPT1
Out &H378, 1 'Prende numero 2 en la salidas del puerto LPT1
End Sub

Private Sub Timer1_Timer()
Label1.Visible = False
recibe = Inp(&H379)
Text1.Text = recibe

If recibe = 71 Then
Text1.Text = "Entrada 11 Detectada"
Label2.Visible = True
End If

End Sub

y no pasa nada  :'(



Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: marcn en 27 Abril 2005, 00:53 am
hola
soy ingeniero electronico y estoy desarrollando un proyecto. el proyecto consiste en manejar el puerto ubs como entrada y salida, la toma de datos vienen de una tarjeta que se esta diseñando. pero el software se debe de hacer en linux para la visualizacion de los datos de entrada. pero no estoy seguro que software me permite manejar el puerto usb en linux y ademas que linux usar. el programa debe de trabajar muy rapido...



Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 27 Abril 2005, 06:31 am
todo lo que necesites saber de usb en linux lo encuentras aki:

http://www.linux-usb.org/

y con respecto a que linux usar, podrias usar cualkiera, aunke recomendada podria ser debian, aunke asi com es de buena asi es de compleja...

para mas detalles de linux, usa las FAQ de adikto:

http://foro.elhacker.net/index.php/topic,4269.0.html

para saber donde bajar la gran mayoria de distribuciones de linux:

http://foro.elhacker.net/index.php/topic,28752.0.html

saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: chinone en 27 Abril 2005, 17:29 pm
BADBYTE-K sabes todavia no me funciona, queria consultarte con que le enviaste el pulso al computador para que lo recibiera en puerto 11 y si estas seguro que son 5 vol, lo que yo hago es que salga por el puerto 2 y entre por el 11 pero siempre me arroja como resultado el numero 126 y no cambia ojala que me puedas ayudar, despues de que detecte tiene que sacar una foto con una camara web y guardar la imagen en el pc en una carpeta...[/b][/color]


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: CarWarlock en 27 Abril 2005, 20:56 pm
Buenas.

El pin 11 del puerto paralelo es el BUSY,  trabaja con "inversión de hardware" o sea que si le pones 5V leeras un 0 en el pin y al revés si tienes 0V tendrás un 1.
Para empezar no se porque declaras un string para recibir el dato, creo que es un error hacer eso ya que luego no puedes enmascararlo bien.
yo lo haría así y partiendo de la libreria io.dll:

 BytIn = PortIn(&H379)          'el valor lo almaceno en un byte
 BytIn = BytIn And &H80        ' enmascaro el Busy
 
 If BytIn = &H80 Then
    'Hay 0V en el pin
 Else
    'Hay 5V en el pin
 End If

Salu2



Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: chinone en 4 Mayo 2005, 00:26 am
queria pedirte si me podias mandar el programa que tu diseñaste del puerto paralelo de entrada y salida hecho en visual basic, por que la verdad todavia no logro que funcione... mi correo es chinone_p@yahoo.es por favor que se me acaba el plazo de entrega


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Ian~Shadow en 5 Mayo 2005, 17:46 pm
queria pedirte si me podias mandar el programa que tu diceñaste del puerto paralelo de entrada y salida hecho en visual basic, por que la verdad todavia no logro que funcione... mi correo es chinone_p@yahoo.es por favor que se me acaba el plazo de entrega

Yo preferiria que lo puciera aqui. en codigo fuente aunque sea. O si tienes un link o download  ;)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: CarWarlock en 5 Mayo 2005, 23:04 pm
Buenas.

El ejemplo es muy sencillo activa unas salidas y lee el pin "SELECT IN", el programa se diseño para una aplicación ejemplo que tenía una protección Mochila.
Si alguien está interesado en los fuentes y sabe algún site donde dejarlos que me lo haga saber.

Código:

'Aquí está mi modulo de las declaraciones.

Public Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)
Public Declare Sub PortWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Integer)
Public Declare Sub PortDWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Long)
Public Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte
Public Declare Function PortWordIn Lib "IO.DLL" (ByVal Port As Integer) As Integer
Public Declare Function PortDWordIn Lib "IO.DLL" (ByVal Port As Integer) As Long
Public Declare Sub SetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub ClrPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Sub NotPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Public Declare Function GetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Public Declare Function RightPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function LeftPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Public Declare Function IsDriverInstalled Lib "IO.DLL" () As Boolean

'api de retardo
 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)



'Mi formulario

Dim sOrt As Byte   'valor de la salida puerto paralelo
Dim sIn As Byte    'valor de la entrada puerto paralelo

Dim pOut As Integer 'direccion del puerto paralelo para Activacion
Dim pIn As Integer  'direccion del puerto paralelo para lectura


Private Sub Form_Load()

Dim icon_punter As String

If IsDriverInstalled = True Then

    icon_punter = App.Path & "\" & "Harrow.cur"      'icono personalizado para la pantalla
    Screen.MouseIcon = LoadPicture(icon_punter)
   
    pOut = &H378           'puerto LPT1 (salida datos)
    pIn = &H379            'puerto LPT1 (Status impresora)
   
    sOrt = 0               'desactivo todas las salidas
    PortOut pOut, sOrt     'lo saco por el puerto
   
    Call Lee_Pin_Select    'leo el estado del pin
 
 Else
 
   MsgBox "El Driver no se encuentra cargado en memoria ", vbCritical + vbOKOnly, "Error"
   Unload Me
 
 End If
 

End Sub


Private Sub lblEntradas_Click(Index As Integer)

Dim valor As Byte
    valor = 2 ^ Index

If shpEntradas(Index).BackColor = vbWhite Then

    sOrt = sOrt Or valor
    shpEntradas(Index).BackColor = RGB(255, 0, 255)

Else
    sOrt = sOrt - valor
    shpEntradas(Index).BackColor = vbWhite

End If

'Sacalo por el puerto
PortOut pOut, sOrt      'lo saco por el puerto

'un pequeño retardo para no leer el pin inmediatamente
Sleep (100)

Call Lee_Pin_Select

End Sub

Private Sub Lee_Pin_Select()

 sIn = PortIn(pIn)       'obtengo el valor del puerto paralelo &H379(LPT1) Status
 sIn = sIn And &H10      'mascara para obtener el estado del pin Select In
 
 If sIn = &H10 Then
    lblPinSelect.Caption = "1"
 Else
    lblPinSelect.Caption = "0"
 End If
 
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Screen.MousePointer = 0

End Sub
Private Sub fmrEntradas_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Screen.MousePointer = 0

End Sub

Private Sub lblEntradas_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)

Screen.MousePointer = 99

End Sub




Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: CarWarlock en 8 Mayo 2005, 16:40 pm
Buenas.

A quien esté interesado en los fuentes del ejemplo anterior aquí los podreis descargar.


http://rapidshare.de/files/1643248/puertoparaleloll.rar.html
 (http://rapidshare.de/files/1643248/puertoparaleloll.rar.html
)

Salu2.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Syphroot en 9 Mayo 2005, 00:17 am
 ;D Buenas, veo que hay mucha gente queriendo programar para hacer aplicaciones con el puerto paralelo y que estan teniendo problemas y muchas dudas en la realizacion de sus proyectos.

Estos problemas se deben a que todavia no estan familiarizados con los sistemas digitales, algo basico como el manejo de CEROS y UNOS es lo que causa problemas. Tambien piensen en la manera en que trabaja una PC, alguien preguntaba por ahi como podia mandar X voltios hacia el paralelo, NO SE PUEDE, son unicamente 2 niveles de voltaje ( +5 V y 0V, no hay mas).

Entonces como recomendacion les propongo antes de postear dudas, busquenlas en el gran GOOGLE, investiguen, sean logicos, traten de hacer las cosas sencillas, a lo que me refiero es que en varios post se menciona:

" Con este numero pones el pin X de LPT a nivel alto "

Es mejor manejar estos numeros decimales en base hexadecimal, veamos como:

Tenemos (en el DataPort) 8 pines que van de D0 hasta D7, osea UN BYTE.  Un byte puede tener valores desde 0 hasta 255 en DECIMAL,  00 hasta FF en hexadecimal. Hagamos una peque+a tabla de valores (los que vamos a usar, o si ya manejas el Hexa a la perfeccion hazlo mentalmente):


 D7  D6  D5  D4  D3  D2  D1  D0    |   Codigo Hexadecimal   
 

   0    0    0    0    0    0    0    0      |    00h

   0    0    0    0    0    0    0    1      |    01h

    .
    .
    .
 
   0    0    0    1    0    1    0    1      |    15h


Me explico: Con esta "tabla" puedes ver que pines activas y cuales no de manera mas sencilla, una vez que tienes tus datos en bits pasalos a hexadecimal.

Para pasar de Binario a Hexadecimal es muy facil, veamos la siguiente tabla:

BINARIO    DECIMAL        HEXADECIMAL

0000          0                   00h
0001          1                   01h
0010          2                   02h
0011          3                   03h
0100          4                   04h
0101          5                   05h
0110          6                   06h
0111          7                   07h
1000          8                   08h                     
1001          9                   09h
1010          10                  0Ah
1011          11                  0Bh
1100          12                  0Ch
1101          13                  0Dh
1110          14                  0Eh
1111          15                  0F

Ahora tomamos nuestro numero binario de un byte, pongamos por ejemplo este:

Binario:   1001 0101        (vean como los separo en nibles)

NOTA: 1 nible es un conjunto de 4 bits

Despues vemos nuestra tabla hexadecimal y sustituimos cada nible por su respectivo hexadecimal, asi:

1001  -> 9
0101  -> 5

Nuestro HEXA para el binario 10010101 es un 95h

Otro:

1010 1100     ->  ACh

VEN que FACIL!!!!!!!

Y pues este metodo pueden aplicarlo con la cantidad de bits que sean, solo la unica regla es que deben separarse en grupos de 4 bits de derecha a izquierda, asi que cuando se nos ponga enfrente un binario asi:

 1000101110101101010111

es mas facil sacar su hexadecimal, es mas, hagamoslo:

(lo separo):

 10 0010 1110 1011 0101 0111

(Observen que a la izquierda nos quedaron dos bits, solo se le ponene ceros a la  derecha para completar el nible)

Y nos queda como:

 22EB57h

Que Facil salio!!!!

Y a la hora de expresarlo ya sea en VB o C seria:

En VB, poner los caracteres ' &H ' y en seguida nuestro numero HEXA, asi:

     &H95
     &HAC
     etc

En C se ponene los caracteres ' 0x ' y a continuacion nuestro numero HEXA,asi:

     0x95
     0xAC
     etc

Todo esto fue para ""despertar"" un poco y para trabajar como debe ser en los Sistemas Digitales como las PC, con puros numeros Hexadecimales, que es mas sencillo que manejar Decimales.

Por ultimo, me despido y espero les sirva esta observacion

Saludos ;D



Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: carlosmtnez en 29 Mayo 2005, 18:38 pm
Toy en desarrollo de un proyecto de abrir una cerradura por el puerto paralelo a demas de estar gestionada por una base de datos y tal...  pero mi problema está en que cuando doy voltaje a la cerradura, ese pin se queda "encendido permanentemente" y si le doy a "apagar todos" me activa un relé temporizador que esta conectado al STROBE, cosa que no me interesa. Mi deseo es saber que codigo es el que tng que poner para "apagar" el estado del pin.

Utilizo como bien habeis explicado lo siguiente:
Private Sub Command2_Click()
Out &H378, 2
End Sub

Pero ahora quiero apagarlo y no se como.

Gracias de antemano y enhorabuena por el foro, está genial.   ;D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: alecoyote en 31 Mayo 2005, 10:52 am
 ??? Hola soy Alejandro Abrego de Bolivia toy preparando un proyecto en el cual utilizo el puerto paralelo para habilitar un chip 7447 de 7 segmentos, entendi muy bien eso de como sacar datos por el puerto (Out &H378, 2), lo que necesito es saber como puedo habilitar dos chips 7447 para que se prendan los leds deacuerdo a los numeros que se envien por el puerto (ojo) solo utilizo dos digitos para los numeros que se envian, no se si me dejo entender, ojala que si.
Otra cosa quisiera saber como puedo activar un solo pin de DataPort, en si lo quiero hacer es:

Mandar un  98 o cualquier numero al panel que activan los chips 7447 y para eso quiero separar el 9 del 8 y convertirlos a binario es decir 1001  y   1000,  y sacar por por los pines individualmente asi:
D0= 5 V    1 LOGICO
D1= 0 v    0 LOGICO
D2= 0 v    0 LOGICO
D3= 5 v    1 LOGICO
D4= 5 v    1 LOGICO
D5= 0 v    0 LOGICO
D6= 0 v    0 LOGICO
D7= 0 v    0 LOGICO

no se si hay una forma mas sencilla de hacer todo esto pero si me pueden ayudar se los agradecere mucho






Título: manejo del puerto paralelo...
Publicado por: guibatorg en 1 Junio 2005, 02:17 am
hola amigos, alguien sabe de algun programa que haga girar engranajes, estoy recien metiendome en el tema y quiero fabricar un puente elevadiso. la maqueta la tengo lista. me dijeron que necesitaba una interfaz y bueno los accesorios electronicos tambien. si alguien  me ayudara le estaria agradecido. ;)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ....Gusto.... en 1 Junio 2005, 02:29 am
haces q el lpt le mande electricidad a un motor q este conectado al puente:

motor--------------------------motor




                   /  \
motor......../     \...........motor

lo unico calcula x cuantos milisegundos o el puente quedara asi:


......\ \/////\\ :P.......


saludos ;D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Syphroot en 1 Junio 2005, 23:25 pm
alecoyote

para que puedas hacer eso debes saber convertir de

binario -> hexadecimal
binario -> decimal
y viceversa, lo unico  que tienes que hacer es crear funciones que realicen esas conversiones y listo, recuerda: manejar el hexadecimal es mas facil.

saludos (lee un algo de mi post mas arriba)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: alecoyote en 2 Junio 2005, 07:44 am
Syphroot
 
gracias amigo ya consegui hacer eso, la verdad es muy facil y menos complicado, saludos desde Bolivia  ;D

Ale Coyote


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: alecoyote en 3 Junio 2005, 06:24 am
yo de nuevo, sigo con mi proyecto, como puedo sacar datos por el controlPort, segun dicen es para sacar y meter datos , intente hacer como Dataport, pero no me funciono Out &H7A, 1   Creo que esta mal, espero me corrijan. nos vemos


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: carlosmtnez en 3 Junio 2005, 13:20 pm
A ver si me podeis exar un cable por favor, el proyecto lo tengo que entregar el viernes dia 10.

Necesito poner un pin de 1 a 0 , sin utilizar el strobe ,ya que tng un relé conectado a él y me lo activaria de nuevo.

Graciassss.

Por favor ayudaaaaa :-[


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Trinchera en 14 Junio 2005, 00:14 am
Me gustaria trabajar con el puero paralelo pero en delphi..
Si me pudieran dar informacion...

Y tambien si es posible como trabajar con moviles(Celulares),
Programacion via puerto ya sea serial o USB.
Cualquier informacion es aceptada.

GRACIAS!!!!!!!!!  ???


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Ian~Shadow en 21 Junio 2005, 17:17 pm
Aun no he podido probar los puertos paralelos en mi casa. Pero segun lo que me dicen tendria un problema. Me dijeron que en Windows XP Estan bloqueadas las salidas de los puerto  ??? la verdad no entendi mucho, como podria desbloquearlas ???

A y de camino, alguien podria explicarme porfavor como puedo utilizar una fuente de comutadora de fuente para mi cirucuito del motorcito paso a paso???

GRACIAS


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 21 Junio 2005, 19:20 pm
yo he trabajado con XP y nunca me dio problemas de blokeo ni nada por el estilo, cheka que en la parte media del texto te menciono como trabajar con xp

http://foro.elhacker.net/index.php/topic,48748.0.html


saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: electronicabarrios en 28 Junio 2005, 20:57 pm
Muy interesante espero logren sus proyectos en cuanto amy estoy buscando un proyecto sobre puerto paralelo que me permita controlar sensores de movimiento por ejemplo espero que alguien me pueda ayudar
gracias


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: CarWarlock en 30 Junio 2005, 23:05 pm
Buenas.

Si a alguien le interesa una explicación de el porqué a veces el puerto paralelo no funciona en el XP le recomiendo este Link (eso sí es muy técnico y en inglés).

  http://www.beyondlogic.org/porttalk/porttalk.htm
 (http://www.beyondlogic.org/porttalk/porttalk.htm
)
Ese driver es una pequeña maravilla para aquellos programas que usan puertos y no funcionan con los XP,NT...
además te dan el código fuente, flipante.

Saludos.

Carmelo.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 1 Julio 2005, 09:18 am
el link no funciona amigo! arreglalo por fa que me dejastes con las ganas!  ;D


saludos


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: CarWarlock en 1 Julio 2005, 18:26 pm
Buenas.

Es verdad el Link no chuta un fallo técnico  ;D

a ver ahora:
http://www.beyondlogic.org/porttalk/porttalk.htm


Salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 3 Julio 2005, 06:38 am
huerto123:
put the source code, we need see the code to attempt help you

CarWarlock:
ahora si  va, muy buen link, alguien probo el driver ya?

saludox


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: CarWarlock en 4 Julio 2005, 18:33 pm
Buenas.

Yo mismo lo he probado, por ejemplo programas basados en MS-DOS en los que usaba el puerto paralelo, con este driver  en el XP me han funcionado sin nigún problema, doy fe de ello.

Saludos

Carmelo.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 5 Julio 2005, 15:08 pm
Hola.
Yo estuve programando el puerto paralelo desde delphi con la libreria InpOut32.dll bajo win xp y 2003 el tema era que en una maquina me andaba y en la otra no (las 2 con winxp) cuando volvi a la que andaba me di cuenta que el archivo Inpout32.dll ocupaba mas asi es que lo lleve a la otra maquina en la que no andaba y salio corriendo lo mas bien.
Asi que verifiquen que tengan la ultima version de ese archivo, en mi caso ocupa 32.768 bytes a comparacion de 27.648 que fue la que baje en la otra maquina (la que no andaba).
Aqui pongo el codiogo que use en delphi, (para Trinchera que preguntaba) por supuesto que hay que poner el archivo inpout32.dll en la misma carpeta que el proyecto o en su defecto en la carpeta de sistema, si no, no anda. Espero que les sea de utilidad

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Spin, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Timer1: TTimer;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Label1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function inportb(EndPorta: Integer): BYTE stdcall; external 'inpout32.DLL' name 'Inp32';
procedure outportb(EndPorta: Integer; Valor:BYTE); stdcall; external 'inpout32.DLL' name 'Out32';

procedure TForm1.Button1Click(Sender: TObject);
begin
        outportb($378,255); //pone el byte del puerto paralelo D0...D7 en alto  (5 volts)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
        outportb($378,0); //pone el byte del puerto paralelo D0...D7 en bajo (0 volts)
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
        Label1.Caption := IntToStr( inportb($379) ); //lee el byte de STATUS
end;

end.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 5 Julio 2005, 17:51 pm
Necesito ayuda con algun algoritmo para que el byte de datos siga como tal y por el salgan todos los datos que queiro hacer llegar a un circuito en particular pero que ademas con algun pin del byte de status pueda generar un reloj. o sea que en ese pin la salida sea lo mas constante posible y cuadrada. mientras yo pongo a gusto y piachere los datos sin estar pendiente a cada rato de poner un bajo y alto al dicho pìn.
No se si me explico bien.
A ver si a alguien se le ocurre algo?
desde ya gracias.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Jbom en 7 Julio 2005, 10:22 am
Estoy intentando hacer un programa tipo osciloscopio, lo que pasa que ando algo perdido, se programar en VB y se mas o menos como tratar con los puertos. Pero no tengo ni idea que maximo vontaje puedo meter por el puerto, aunque eso no es problema por que cuando sea mucho puedo poner un atenuador. Solo quiero saber como leo los voltios que me entran por un pin del puerto paralelo. En definitiva como tendria que abordar para hacer un osciloscopio.

Salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 7 Julio 2005, 21:37 pm
Hay varias limitaciones en construir un osciloscopio para pc por puerto paralelo. La mas importante es que no se alcanzan velocidades aceptables y por internet hay un monton de software ociloscopio por entrada de placa de sonido que llegan casi a los 40 khz en frecuencia de lectura.
Por otro lado por el puerto paralelo no podes meter mas de 5 voltios, pero no podrias leer las diferencias entre 0 y 5 vols, porque trabaja digitalmente y solo reconoce dos estados el 0v nivel bajo y 5v nivel alto, para reconocer las distintas diferencias de voltaje necesitas acoplar un adc (convertidor analogico a digital) como puede ser el adc0804.

en esta pagina hay un data logger o adquisidor de datos:

http://www.quasarelectronics.com/3112.htm


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 7 Julio 2005, 22:00 pm
huerto123

tu pregunta me hizo ir al primer mensaje de este hilo y al leerlo conteste parcialmente mi duda, vamos lo que dijo BADBYTE-K:

podemos ordenar cada uno de los bytes

Dataport

pin 2 - D0
pin 3 - D1
pin 4 - D2
pin 5 - D3
pin 6 - D4
pin 7 - D5
pin 8 - D6
pin 9 - D7



Statusport

pin 10 - ACK
pin 11 - BUSY
pin 12 - PAPER END
pin 13 - SELECT IN

pin 15  - ERROR


ControlPort

pin 1 - STROBE
pin 14 - AUTO FEED
pin 16 - INIT
pin 17 - SELECT


la parte de GND, son los tierra
del 18 al 25

para saber cual pin es cual, acercate a tu puerto paralelo y te daras cuenta que a la par de cada terminal
tiene su numero, cuidado con conectar al revez la cosas xD

en resumen podemos decir esto:

el Dataport se usa como salida
el Statusport se usa como entrada
el controlport se usa de las dos formas anteriores

por lo tanto en tu caso en vez de conectar en los pines ACK y BUSY lo conectas en dos de los pines del control port ya que desde la cpu vas a poner esos bit en uno y asi se puede.
por ejemplo el cable que sale del cronografo y que va al ACK lo conectas en AUTOFEED, y el que va a BUSY lo conectas a INIT.
Espero que haya sido de utilidad.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 8 Julio 2005, 14:44 pm
No entiendo bien lo que queres hacer. pero otra duda, que cable usas para conectar las dos pcs?
un paralelo de pin a pin? o un paralelo laplink como el que hay en esta pagina:

http://hwb.sunsite.dk/ca_InterLink.html

si el cable es pin a pin no creo que ande muy bien la cosa.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Jbom en 12 Julio 2005, 12:50 pm
andesgui lo que yo quiero hacer es conectar la salida de una etapa de potencia de un coche para ver la onda para equializar todo el equipo. Por la tarjeta de sonido podria??


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: electronicabarrios en 14 Julio 2005, 21:39 pm
PROGRAMACION PUERTO PARALELO SECUENCIA DE LED'S CON VBASIC LPT1
Estas son paginas muy buenas sobre puerto paralelo espero les guste es muy interesante leannlo ademas tiene todas las descargas que necesitamos para poder experimentar. Cualquier otro link plz publiquenlo para estudiarlo gracias

PROYECTOS:
http://es.wikibooks.org/wiki/Usuario:NIKO_JUAN
http://www.twistedmods.com/modules.php?name=Sections&op=viewarticle&artid=184
http://www.hardcore-modding.com/modules.php?name=Guias&rop=leer&id=33
http://foros.cantv.net/forum/forum_posts.asp?TID=36546&PN=1
http://perso.wanadoo.es/luis_ju/puerto/port02.html
http://www.misionrg.com.ar/feria.htm
http://foro.elhacker.net/index.php/topic,48748.0.html
http://foro.perroshackers.com/index.php?topic=11462.new
http://www.todorobot.com.ar/proyectos/paralelo/paralelo.htm
http://www.codeproject.com/csharp/csppleds.asp
http://www.laneros.com/showthread.php?t=23408
http://robotica.hn3.net/semaforo.htm
http://www.pablin.com.ar/electron/circuito/computer/
http://html.rincondelvago.com/interfaz-grafico.html
http://www.anser.com.ar/pc.htm
http://kataix.umag.cl/~mmarin/eventos/encuentro1/cervantes.html
http://usuarios.lycos.es/tervenet/Montajes/control_de_potencia_con_triac.htm

INFORMACION PUERTO PARALELO:
http://comunidad.ciudad.com.ar/internacional/aruba/megatronica/nuevo2.htm
http://www.fortunecity.es/felices/barcelona/146/3ds/tutores/motorpap.html
http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm
http://www.ii.uam.es/~gdrivera/varios/notas_lpt.htm
http://www.ii.uam.es/~gdrivera/labetcii/curso0001/pract2.htm
http://cfievalladolid2.net/tecno/cyr_01/control/index.htm
http://members.fortunecity.com/stealthizer/puertos2.htm
http://www.angelfire.com/pa2/jcgr/tecnica/PP/pp.htm
http://www.cienciasmisticas.com.ar/informatica/hardware/puertos/index.php

PROGRAMACION EN ASSEMBLER PARA MANEJO DE 8 LED:
http://usuarios.lycos.es/charlytospage/assembler4.htm

                   
Cualquier otra informacion mandenmela a electronicabarrios@hotmail.com
Manuel Barrios Oyague *******Lima-Peru********

FOROS RECOMENDADOS:
http://laneros.com/
http://foro.perroshackers.com/
http://foro.elhacker.net/


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: RaZieR SarE en 17 Julio 2005, 08:04 am
HOLA!!!
soy RaZieR SarE -> hombre -> 20 años -> estudiante de ingenieria en sistemas computacionales y administrativos.

Recien hoy estaba navegando por el internet, resulta que me mandaron un proyecto de programacion 2, hacer cualquier juego en c++.
personalmente no lo quiero hacer quiero se ++ que los demas :)
por lo tanto me propuse hacer un proyecto en el que consiste en hacer el programa que simule a un control remoto de un carro de juguete. manejado solo por las direccionales y las salidas tienen que ser por el puerto paralelo. supongo que deberia hacer un tipo de transmisor de señal para que la resiva el carrito. tengo CASA ABIERTA en 3 semanas y recien se me ocurrio el proyecto hace 12 horas. quiero hacerlo y creo que se escucha posible pero nesecito ayuda no tengo ni nocion de como programar el puerto paralelo. mm mi profesor quiere que lo que valla a hacer lo haga en borland c++   :-\
necesito tutoriales o que me ayuden de alguna manera e ideas que me puedan ayudar, les agradezco de antemano.
me parace excelente este foro, en especial el de electronica y programacion.!!! ;D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 25 Julio 2005, 16:58 pm
Para Jbom:
Si lo que quieres hacer se puede, puedes conectar la salida de un amplificador a la entrada de la placa de sonido pero no directamente porque quemarias la entrada de la placa de sonido, tendrias que fabricar un divisor resistivo, el tema es que tienes que buscar informacion sobre tu placa de sonido para ver cual es el voltaje maximo permitido (eso creo que es estandard y se encuentra en el orden de los milivolt) pero no se cuanto con exactitud.
repito NO CONECTES derecho la salida del amplificador a la entrada de la placa de sonido.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 25 Julio 2005, 17:28 pm
Para huerto123:
La diferencia de cables paralelo pin a pin y laplink es que el primero los pines estan conectados el 1 con el 1, el 2 con el 2... y asi susecivamente hasta el 25 con el 25.
si se conectan dos pcs asi se corre el riesgo de QUEMAR el puerto paralelo.
en cambio el segundo que es el que tu tienes se conectan
pc1                                pc2
data bit0 (pin 2)-------->error(pin15)
data bit1 (pin3)--------->select(pin13)
data bit2 (pin4)--------->paper out(pin12)
data bit3 (pin5)--------->acknowledge(pin10)
data bit4(pin6)---------->busy(pin11)
acknowledge(pin10)---->data bit3(pin5)
busy(pin11)-------------->data bit4(pin6)
paper out(pin12)-------->data bit2(pin4)
select(pin13)------------>data bit1(pin3)
error(pin15)------------->data bit0(pin2)
reset(pin16)------------->reset(pin16)
select(pin17)------------->select(pin17)
gnd(pin25)---------------->gnd(pin25)

para comprender mejor:
http://hwb.sunsite.dk/ca_InterLink.html
http://support.microsoft.com/kb/q142324/

espero que sea de utilidad.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: kuiofer en 8 Agosto 2005, 05:08 am
Yo se que se debatio mucho sobre el tema, pero aun no tengo bien claro algunos temas

Con la programacion no tengo nada que decir, lo comprendo perfectamente, es el hardware que me complica(especificamente la salida, con los dataport no hay drama)

El tema es que los cables de statusport estan constantemente a 5v, no? Y cuando quiero leer algun dato tengo que llevarlos a 0v, pero no se como conseguir eso

Como soy muy animal, pele el cable del paralelo, y con mis manos uni el cable que queria leer con uno de tierra, y si, leyo esa variacion.

Asi se hace???? y si es asi, necesito un rele algo asi para mandarlo a tierra????

Dejando de lado las preguntas, casi todo lo que aprendi de programacion de puerto paralelo lo aprendi de aca, de la nada. Si un curioso de por las dudas esta perdido en tiempo y espacio en este tema es demasiado recomentable que comience su investigacion de aqui


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 10 Agosto 2005, 18:43 pm
Nunca medi con el tester alguno de los pines del status port pero no deberian tener voltaje ya que son pines de entrada. de todas maneras no importaria si aun asi lee lo que uno le ponga en cada pin, 0v o 5v.

pin 11--> Busy  (como este pin esta negado cuando se pone un cero logico o 0v lee un 1 logico o 5v, o lee 0v cuando se aplica 5v o un 1 logico en ese pin)
pin 10-->Acknowlege (lee 1 cuando se palican 5v y cero cuando se aplica 0v)
pin 12--> no paper (lee 1 cuando se palican 5v y cero cuando se aplica 0v)
pin 13--> selected (lee 1 cuando se palican 5v y cero cuando se aplica 0v)
pin 15--> error (lee 1 cuando se palican 5v y cero cuando se aplica 0v)

La linea busy generalmente tiene una resistencia de pull up interna, es un estandar que las lineas sean ttl.

puedes conectar una serie de llaves derecho al pin y que cuando se activen manden ese pin a masa o a 5 volts y asi leer los diferentes estados, si lo que quieres es controlar algo que se maneje con voltajes mayores que 5 volts ahi si tendrias que conctar esos pines a travez de optoacopladores o reles.
Espero haberme explicado


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ViCrack€r en 8 Septiembre 2005, 00:35 am
Hola, estoy practicando con el puerto de impresora que tiene 36 pins, he comprobado que puedo usar este puerto como si fuera el puerto paralelo (25 pins) utilizando la dll inpout32.dll.

Puedo mandar voltaje a cada pin sin ningún problema, pero si quiero cortar el voltaje con Out &H378, 0 que creo que es para cortal el voltaje de todos los pins, lo que consigo es mandar voltaje a pin 0. Y yo lo que quiero es poder cortar el voltaje de todos los pins.

Diganme que estoy haciendo mal, ¿Puedo aplicar esto en el puerto de 36 pins de la misma forma que como se hace en el puerto de 25 pins?

Si se puede hacer lo mismo con los 2 puertos diferentes, ¿Como corto el voltaje de todos los pins?

Espero que alguien que sepa del tema me responda, porque me parece muy interesante y quiero ponerlo en práctica.

Saludos.   ;D




Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Gemu en 8 Septiembre 2005, 05:51 am
lo que sucede es que tienes 3 registros de datos (direcciones de puerto) para cada Grupo de pines, ademas de que algunos de esos pines estan negados a su salida, lo que significa que lo desactivas con un 1 logico, no un 0 como es habitual.

Si envias un dato numerico 0 al puerto de Datos, entonces dejaras los 8 pines de datos "desactivados" (0 logico) que son el pin 2 al pin 9. Los demas pines corresponden para Control (lo puedes setear a gusto) o de Estado (son de solo lectura y no puedes establecerlos desde el pc).

PD: El conector de 36 pines no sera un cable centronic conectado al paralelo del pc?, ya que electricamente es lo mismo que el paralelo, solo cambia tu conector,.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ViCrack€r en 8 Septiembre 2005, 17:36 pm
Hola Gemu, gracias por responder, ahora ya se dar y quitar voltaje a los terminales Dataport, lo siguiente que quiero hacer es sumar los voltajes de dos terminales para obtener 10 voltios, pero no le he conseguido creo que el codigo es este:
Out &H378, 3
Con esta linea doy voltaje al pin2 y pin3 para obtener 10 voltios.
Quiero tener 10 voltios para poner en marcha un motor que tengo.
Compruebo con el tester que no consigo sumar 5+5 voltios, ¿como lo hago?

Saludos.    ;D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ....Gusto.... en 8 Septiembre 2005, 20:52 pm
no trates de prender un motor, quemaras el LPT. usa un relay o relé en español.
salu2 !!


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ViCrack€r en 9 Septiembre 2005, 18:35 pm
Hola, gracias por la aclaración Gusto, me comprare un rele y una batería recargable y así accionare el motor desde el rele.

Tambien me gustaria saber como puedo usar muchos leds conectados a los pins Dataport, ahora conecto un led a cada pin, pero me gustaria saber como controlar por ejemplo 25 leds, para hacer un circulo y hacer que se vallan encendiendo y apagando. ¿Como puedo controlar todos estos leds si solo hay 8 pins que corresponden al Dataport?

¿Se puede dañar el puerto si alimento muchos leds con la corriente que sale del puerto paralelo?

Saludos.  ;D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ....Gusto.... en 9 Septiembre 2005, 22:44 pm
ahi ya nose  ;D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: andesgui en 12 Septiembre 2005, 14:24 pm
Para encender tantos led vas a tener que usar algun tipo de bufer como el 7406. o con transistores y siempre con una fuente externa ya que el puerto paralelo no puede entregar tanta corriente.
con la ayuda de los otros 4 pines de salida del puerto y con 4 transistores puedes llegar a controlar 24 leds. siempre con alimentacion externa.
Supongo que otra manera seria con un multiplexor o algo asi.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: elpelao en 19 Septiembre 2005, 00:51 am
Saludos a todos y gracias por adelantado por toda la información que tan altruistamente están ofreciendo:
Me van a llamar tarugo, pero es que acabo de empezar, y acabo de encontrarme con el primer problema, a saber:
Tengo un circuitillo que consiste en 8 led´s conectados a los pines del 2 al 9 del puerto paralelo.
Al arrancar la máquina, los 8 se quedan encendidos (uso xp).
Debido a las restricciones a nivel de kernel de estos SO (NT/2000/xp), como ya saben, me bajé inpout32.dll, y lo copié en:
windows\system
Bueno, pues no hay manera de encender/apagar los leds a través de soft.
La copié entonces también en:
windows/system32
c:\qbasic\
Probé con todas las opciones de cofiguración del paralelo en la bios.
Pues que no. Que no hay manera.
Las lineas que uso para enviar ordenes al paralelo en qbasic son las siguientes:
out 888, 0 (para apagarlos)
out 888, 255 (por si funcionase al revés)
¿Podría ser que, directamente, no se puede usar qbasic en xp?
Si fuese así, ¿que lenguaje debería aprender para controlar estas salidas?(uno sencillo de aprender, si pudiera ser ;))
Gracias por adelantado.
Saludos.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ViCrack€r en 19 Septiembre 2005, 03:26 am
Hola elpelao, yo también soy nuevo y acabo de hacer un programa en Visual Basic para tener control total de 8 leds que van conectados a los pines de 2 al 9 del puerto Centronics (no es el paralelo pero funciona).

He puesto los leds en la torre, en una bahia arriba de la grabadora de DVD.

El programa que he hecho controla los leds de la siguiente forma:

- Intermitencia entre leds verdes y rojos. (tengo pustos verde,rojo verde, rojo... asi hasta 8 leds).

- Se iluminan de izquierda a derecha luego derecha a izquierda y se repite. Solo hay uno encendido mientras se va moviendo (efecto coche fantástico).

- Se iluminan aleatoriamente.

-Se encienden desde la Izquierda hasta la derecha (se quedan encendidos conforme se mueve a la derecha). Luego se van apagando en dirección a Izquierda.

- Se encienden del centro hacia los lados.

Se me ocurren muchos efectos para iluminar los leds, pero con estos ya he conseguido comprender el funcionamiento para controlar los leds.

Si te gusta Visual Basic, prueba ha hacerlo con este lenguaje ya que es muy fácil de hacer este programa.

Si tienes alguna duda, pregunta en este foro y te ayudaré a hacer el programa.

Donde pones:

out 888, 0

Yo pongo Out &H378, 0

Comprueba que ese es el número que tienes que poner.

Saludos.  ;D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Gemu en 19 Septiembre 2005, 04:20 am
elpelao, entra a la bios y revisa en que direccion esta funcionando tu puerto paralelo, revisa si es 378h u otra direccion, ya que segun la placa puede cambiar.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: elpelao en 21 Septiembre 2005, 11:54 am
Muchas gracias por las respuestas:
¡Vaya!, me parece que hasta que logre el manejar led´s de esa manera aún me queda un largo camino :-[
Lo que yo pretendo es poder manejar servos y motores paso a paso obteniendo datos de terceros programas. Ahora estoy en la fase 0.0001 beta :)
Ya comprobé vuestras sugerencias, y sigo igual :-\
La dirección del puerto es la correcta, y tambíen probé cambiando la configuración del puerto desde la bios (epp, etc).
Lo que he leído en lagún sitio es que para tener control sobre los pines del paralelo, hay que hacerlo a través de un programa que tenga (atención, no se programar por lo que ponga ahora no se si se me entenderá) instancias, o módulos que hagan referencia a inpout32.dll. ¿Es así?.
Si así fuese, sería entonces lógico el no poder encender/apagar led´s a través de Qbasic, ¿no?.
¿Existe alguna alternativa es esta dll, para poder usar el puerto con Qbasic?... Al menos hasta que aprenda visual basic :)
PD: He empezado con "Aprenda Visual Basic como si estuviera en primero". ¿Es éste ideal para empezar, o me recomendais otro?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: santi01 en 22 Septiembre 2005, 21:07 pm
Wenas a todos! ;D
estoy haciendo un proyecto de una casa domótica controlada desde el puerto paralelo con VBasic. como actuadores voy a colocar LEDs. Mi idea era poner también entradas; estas serían un sensor de infrarrojos y un fotodiodo. El código para poder encender los LEDs ya lo tengo, pero no se como hacer para que si el fotodiodo no detecta luz se encienda un LED y lo msimo con los infrarrojos. Se puede hacer? Cómo se programa eso?
mersi x la ayuda! :P


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: yovaninu en 26 Septiembre 2005, 06:09 am
Buenas a todos, he leido casi todo el post y me parece muy bueno, a diferencia de todos, yo aun no he iniciado ningun proyecto al respecto del paralelo, pero leendo este post me anime, (claro que tengo mucha nocion de lo que quiero hacer) y tengo una primera consulta, para hacer el ejercicio del control de los Led's,  ¿no necesito ninguna interfaz de por medio, para no malograr el puerto? es decir: ¿puedo conectar directamente las 2 patitas de los led's al paralelo?

Desde ya muchas gracias por su atencion y su respuesta...


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ViCrack€r en 26 Septiembre 2005, 14:25 pm
Hola yovaninu, si puedes conectar directamente los leds, 8 leds a los pines Dataport (pin2 a pin9) y 4 leds a los pines ControlPort ( pin1,14,16 y 17)

Lo mejor es que repases la información que hay en este tema en la 1º página.

El control de los leds, lo puedes hacer desde un programa hecho en VB o el que uses, si tienes alguna duda con el programa te ayudaré.

Yo ahora estoy montando mi primer microbot, espero que alguien de este foro que este haciendo uno o lo tenga ya hecho de información sobre como lo ha hecho.

Saludos.  ;D



Título: Re: [Electronica y programaci�n] manejo del puerto paralelo...
Publicado por: Juano en 2 Octubre 2005, 10:13 am
hola... que tal!!!

Quisiera saber cómo puedo manejar un motor (tiene marcha adelante y marcha atrás) a través del puerto paralelo al cual tengo que alimentarlo con corriente de una bateria. Necesito diseñar un circuito para hacer eso???

Agradeciendo de antemano...

Saludos!


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 2 Octubre 2005, 16:45 pm
pues, lo primero que te recomiendo es que te buesques una controladora para no quemar la placa.

Saludos!


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Juano en 2 Octubre 2005, 22:09 pm
Cuando hablas de controladora te refieres a una tarjeta de expansión (PCI) con un puerto paralelo??? Si te refieres a eso, tengo una disponible.

Gracias por responder!


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 2 Octubre 2005, 23:19 pm
pues no estoy seguro, pero en caso de usar eso, me parece que si se qmara se qemaria solo la PCI, de todas formas ten cuidado, y usa reles para encender el motor


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 8 Octubre 2005, 09:06 am
Juano que deseas hacer exactamente con la pc?


saludos


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Cuasar en 13 Octubre 2005, 20:18 pm
Hola BADBYTE-K mira hice al pie de la letra todo lo que dice en tu post baje la dll y cree el modulo nuevo en el pryecto y cuando le doy al boton para que supuestamente me envie el dato al puerto me da un error. mira te detallo mi proyecto en estas imagenes:

(http://www.scrngs.unlugar.com/lpt11.JPG)
Por si no se ve http://www.scrngs.unlugar.com/lpt11.JPG



(http://www.scrngs.unlugar.com/lpt12.JPG)
Por si no se ve http://www.scrngs.unlugar.com/lpt12.JPG



(http://www.scrngs.unlugar.com/lpt13.JPG)
Por si no se ve http://www.scrngs.unlugar.com/lpt13.JPG



Claramente no encuntra la dll, Ahora como espesifico en que directorio esta? porque la dll esta la acabo de bajar y la grabe en c:windows/system32.
si podes decirme en que estoy fallando te lo agradecería mucho salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Cuasar en 13 Octubre 2005, 20:24 pm
Hola mira esto es lo que hice y no encuentra la dll como puedo resolverlo porque la dll esta en c:/windows/system32 de eso estoy seguro porque la baje recien.



(http://www.scrngs.unlugar.com/lpt11.JPG)

por si no se ve   http://www.scrngs.unlugar.com/lpt11.JPG

(http://www.scrngs.unlugar.com/lpt12.JPG)

por si no se ve http://www.scrngs.unlugar.com/lpt12.JPG

(http://www.scrngs.unlugar.com/lpt13.JPG)

por si no se ve  http://www.scrngs.unlugar.com/lpt13.JPG

agradecería que supueras decirme como resolber esto gracias
salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Cuasar en 13 Octubre 2005, 20:30 pm
hola mira hice todo como dices pero no encuentra la dll y esta porque recien la baje y la copie en c:/windows/system32


(http://www.scrngs.unlugar.com/lpt11.JPG)

Por si no la ves  http://www.scrngs.unlugar.com/lpt11.JPG

(http://www.scrngs.unlugar.com/lpt12.JPG)

Por si no la ves  http://www.scrngs.unlugar.com/lpt12.JPG

(http://www.scrngs.unlugar.com/lpt13.JPG)

Por si no la ves  http://www.scrngs.unlugar.com/lpt13.JPG


salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 14 Octubre 2005, 07:25 am
Aqui lo tienes, paciencia hermano  ;D

http://foro.elhacker.net/index.php/topic,90462.0.html

saludos


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 14 Octubre 2005, 15:25 pm
no entiendo por q haces 3 post con el mismo error, algo abras puesto mal, y si nos prueba a registrar la dll

Saludos


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Cuasar en 14 Octubre 2005, 21:56 pm
perdon por lo de los 3 post es que cuando le ponia en publicar lugo queria entrar para confirmar que se aya publicado y no logre verlos fu ese el motivo, pido disculpas.
salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: xadap en 16 Octubre 2005, 00:36 am
Saludos a todos y gracias por adelantado por toda la información que tan altruistamente están ofreciendo:
Me van a llamar tarugo, pero es que acabo de empezar, y acabo de encontrarme con el primer problema, a saber:
Tengo un circuitillo que consiste en 8 led´s conectados a los pines del 2 al 9 del puerto paralelo.
Al arrancar la máquina, los 8 se quedan encendidos (uso xp).
Debido a las restricciones a nivel de kernel de estos SO (NT/2000/xp), como ya saben, me bajé inpout32.dll, y lo copié en:
windows\system
Bueno, pues no hay manera de encender/apagar los leds a través de soft.
La copié entonces también en:
windows/system32
c:\qbasic\
Probé con todas las opciones de cofiguración del paralelo en la bios.
Pues que no. Que no hay manera.
Las lineas que uso para enviar ordenes al paralelo en qbasic son las siguientes:
out 888, 0 (para apagarlos)
out 888, 255 (por si funcionase al revés)
¿Podría ser que, directamente, no se puede usar qbasic en xp?
Si fuese así, ¿que lenguaje debería aprender para controlar estas salidas?(uno sencillo de aprender, si pudiera ser ;))
Gracias por adelantado.
Saludos.


Muchas gracias por las respuestas:
¡Vaya!, me parece que hasta que logre el manejar led´s de esa manera aún me queda un largo camino :-[
Lo que yo pretendo es poder manejar servos y motores paso a paso obteniendo datos de terceros programas. Ahora estoy en la fase 0.0001 beta :)
Ya comprobé vuestras sugerencias, y sigo igual :-\
La dirección del puerto es la correcta, y tambíen probé cambiando la configuración del puerto desde la bios (epp, etc).
Lo que he leído en lagún sitio es que para tener control sobre los pines del paralelo, hay que hacerlo a través de un programa que tenga (atención, no se programar por lo que ponga ahora no se si se me entenderá) instancias, o módulos que hagan referencia a inpout32.dll. ¿Es así?.
Si así fuese, sería entonces lógico el no poder encender/apagar led´s a través de Qbasic, ¿no?.
¿Existe alguna alternativa es esta dll, para poder usar el puerto con Qbasic?... Al menos hasta que aprenda visual basic :)
PD: He empezado con "Aprenda Visual Basic como si estuviera en primero". ¿Es éste ideal para empezar, o me recomendais otro?


cuando yo estuve mirando hace unos meses para empezar mi proyecto de robótica inpout32.dll no funcionaba bien con ventanucosXP.

uso io.dll , que además es muuuuy sencilla :D www.geekhideout.com , creo q era la url oficial. si no, google para encontrar el site oficial de io.dll , que tiene las instrucciones.

os recomiendo las funciones setportbit, clrportbit, i portout. las demás son prescindibles.
cuando os bajéis la libreria y miréis las instrucciones y el codigo base sabréis a qué me refiero :)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Cuasar en 16 Octubre 2005, 17:33 pm
hola xadap  mira no conozco el qbacic qie mencionas pero te comento que yo se poco y nada de vb y logre hacer una aplicacion sensilla que controla perfectamente el puerto. calculo que si saves programar es ese programa que mencionas sabras lo que es un if, un select case, una constante y una varible. bueno con solo esos conosimientos y la gran ayuda del post de  BADBYTE-K  logre hace esto.
fijate es este post http://foro.elhacker.net/index.php/topic,48748.0.html

y sige todos los pasos.

y seguramente aqui hay gente que save mucho mas pero aqui mi umilde colaboracion.


una ves que tengas el modulo puedes mandar ordenes al puerto coniendo por ejemplo Out &H378, 255


en el modulo pegas este codigo

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)

yo por ejemplo puse un text al cual en el evento change le agrege este codigo


Out &H378, text1.text

y todo lo que escriba en el text se envia el puerto paralelo podrias tambien definir que en ese text se escriban solo numeros y algo que yo hice para evitar un error de desvordamiento es esto mira


if text1.text > 255 then
Out &H378, text1.text
else
msgbox "la representacion maxima de o bits en decimal es de 255"
Out &H378, 255
end if

y con eso logre que si escribo 256 no le evie ese numero al puerto y me salga esa advertencia y le agrege que me dejara en 255 el estado del puerto suponiendo que si uno quiere poner por ejemplo 290 es porque quiere encender todos los leds

yo tambien soy novato en esto de Vb y por eso no estoy seguro ya que ahora estoy en el trabajo no tengo vb pero fijate si no te funca la instruccion de envio


Out &H378, text1.text
pon el dato a enviar entre comillas 

Out &H378, "text1.text"

no recuerdo como lo hice y tampo si hacia falta el signo = en el medio jeje

Out &H378, text1.text

Out &H378, "text1.text"

Out &H378, = text1.text

Out &H378, = "text1.text"

prueva con estos estoy seguro que uno de esos 4 es el que hace lo que pretendemos. aclaro que en mi caso la salida del puerto no era 378 si no que es 379 pero en el post que te mencione antes el de BADBYTE-K te explica como saver cual es la direccion de tu puerto es muy facil de verlo.

bueno espero aver ayudado un poco ya que me siento en deuda con ustedes porque de no ser por estos post no podria averlo echo yo.

y a los que mas saven.. espero no les moleste que trate de explicar algo que ya explicaron ustes antes.

chau
salu2
 y suerte.




Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Cuasar en 16 Octubre 2005, 17:41 pm
casi me olvido ahora pregunto yo como saven logre hacer que que yo queria, ahora, es muy incomodo tener la aplicacion simpre en pantalla si es que uno controla por ejemplo las luces de la casa por lo que me intersa saver como hacer para que esta aplicacion quede en la barra tray pero actiba y que haciendole un click se abra seria como el nsn que siempre esta abierto pero solo lo muestro en pantalla cuando yo lo quiero. se puede esto con Vb? y como seria?
gracias.
salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 20 Octubre 2005, 06:54 am
si, claro que se puede, te doy un articulo excelente cuando se lee en ingles pero algo confuso cuando se lee en español a causa del traductor barato que usan, pero de igual forma te servira para lo que buscas

How To Manipulate Icons in the System Tray with Visual Basic
Cómo manipular iconos en la Bandeja del sistema con Visual Basic
http://support.microsoft.com/kb/q162613/


saludos


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: LARIOS en 21 Octubre 2005, 12:35 pm
Hola doy las gracias a todos los q participan en el foro , es muy util.
estoy haciendo un proyecto con puerto paralelo y tengo el software hecho xo mi problema es la electronica , quiero conectar un rele al D0 (x ejemplo) para abrir un circuito por el q circula mayor corriente , el problema es q he probado con 3 tipos de reles de diferentes intensidades , el ultimo q he probado ha sido de 3A y 4,5 o 6v (me han dicho q se usa el mismo rele para 4, 5 , o 6 voltio ).
me gustaria saber que tipo de reles utilizais vosotros o alguna solucion . gracias


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: vlad67 en 26 Octubre 2005, 20:31 pm
que pasará que cuando ejecuto el programa y le doy enviar se me cierra..:(... lo tengo solo que envie 255 por el puerto y ya... al otro lado que me reciba


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Syphroot en 3 Noviembre 2005, 10:09 am
LARIOS:

El problema es que el puerto no entrega mucha corriente, incluso para activar un relevador, lo que tienes que hacer es interfazar el pin 2 (D0) con un transistor que soporte la corriente que consume dicho relevador.

Si tienes dudas sobre como hacerlo hazlo   saber...

saludos


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: LINKTD en 3 Noviembre 2005, 10:55 am
HOLA CHILDS, YA ME LEI CASI TODOS LOS POST Y ME PARECEN MUY INTERESANTES, PERO NECESITO AYUDA.

NECESITO ENVIAR UNOS PULSOS SEA POR EL LPT1 A DOS MOTORES QUE SE ENCARGAN DE ABRIR UNA PUERTA CADA UNO. NO SE EXACTAMENTE QUE NECESITO PARA HACER ESTO Y COMO DEBO HACER EL CODIGO, LO PIENSO HACER EN VB.

GRACIAS Y SIGAN ASI!!  ;D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: servidor32 en 8 Diciembre 2005, 04:59 am
Bueno, hola a todos, estoy haciendo un proyecto para la escuela, y es controlar un auto a radio control desde la pc, no se si me doy a entender pero, las flechas de direccion de mi teclado deben ser las k muevan el vehiculo.

Como puedo hacer en visual basic para que cuando presione las teclas de direccion de mi teclado, ese pulso salga por el Puerto Paralelo?
 Es urgente por favor ese sera mi proyecto final. :) :)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 8 Diciembre 2005, 15:56 pm
Mira la primera pagina de este tema, puse un ejemplo de como programar una a una cada salida del puerto, eso te servira


saludos


Título: Puerto paralelo
Publicado por: jodinator en 13 Diciembre 2005, 12:59 pm
Saludos, he hecho un montaje para el control del puerto paralelo, siguiendo las indicaciones de este foro y utilizando inpout32.dll (la versión para xp) y Visual basic. El asunto ha sido un éxito total, muchas gracias!

Pero... necesitaría utilizarla en un PC que no tiene puerto paralelo sino un cable USB paralelo UC-1284B ¿esto puede funcionar? ¿Que dirección de memoria utiliza?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: gabimelgar en 19 Diciembre 2005, 10:57 am
Hola, he leido todo el post y me va muy bien con el tema del envio de datos, pero quisiera saber si hay alguna forma de darme cuenta que hay datos en el puerto para ser leidos sin tener que chequearlo permanentemente; es decir, alguna especie de "deamon" q me avise cuando cambian los datos de entrada.
Estoy programando en Delphi, por si la solución varia dependiendo del lenguaje.
Muchas gracias.
Sl2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: gabimelgar en 20 Diciembre 2005, 03:48 am
Hola, otra consultita:
Hay forma de usar la dll desde Macromedia Flash MX 2004?
Gracias de Nuevo
Sl2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: ARACHNE en 29 Diciembre 2005, 07:23 am
 ;) Hola. Buscando informacion encontre esta pagina que se me hace de lo mas interesante, estoy estudiando electronica y automatizacion y me gustaria saber si alguien me puede decir donde bajar las librerias para trabajar con windows xp y poder programar en vb ya que me marca errores al querer manipular datos de entrada y salida y con windows 98 no hace eso, ademas el codigo.
Gracias y saludos 


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: BADBYTE-K en 29 Diciembre 2005, 07:33 am
hola gabimelgar

Nunca he averiguado si se pueda usar directamente en flash pero si podras hacerlo haciendo uso de un programa en visual basic que contenga alguna animación en flash, honestamente no lo he tratado de lleno pero puedes ver un poco mas del tema de flash & visual basic en este texto:

Flash con otros lenguajes - Parte 1, Visual Basic
http://www.cristalab.com/tutoriales/19/flash-con-otros-lenguajes---parte-1-visual-basic

Hola ARACHNE

Revisa todos los mensajes anteriores de esta discusión, hay una parte en la que se habla de trabajar con Windows XP

saludos


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: jodinator en 3 Enero 2006, 15:05 pm
...Si alguien sabe si se puede utilizar la inpout32.dll en un puerto paralelo creado con un cable usb, que me lo diga si hace el favor. ¿Se podrá utilizar mediante una determinada dirección de memoria o es completamente imposible?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: cardaba713 en 13 Enero 2006, 20:03 pm
hola amigos, nesecito ayuda, espero q puedan, he creado un pequeño programa en vb6 q envia datos al puerto paralelo, pero cuando le pido q envie los datos a la direccion de puerto correspondiente sale un error:

se ha producido la excepcion unknown software exception 0xc0000096 en la direccion 0x03205c0b

luego aparece un mensaje diciendo:

Unhandbled exeption in VB6.EXE (INPOUT32.DLL): 0c0000096: Privilegerd Instruction.
 y se abre el editor de C++ con un monton de numeros en una fila y cosas q no entiendo del otro lado, supongo q los numeros son direcciones de memoria, intrucciones en lenguaje ensamblador o algo asi, alguien sabe q puedo hacer para q mi programa funcione?

soy nuevo en esto, pero me gusta la idea de enviar datos mediante lpt ayudenme porfavor.
escribanme a cardaba713@hotmail.com
el programa q escibi esta en http://galeon.com/deimos/index.htm  aver si lo revisan y me explican q le falta.

pdta: solo funciona el envio de datos al dataport, el statusport y control port no estan terminados, si tienen algun manual q explique las funciones del inpout32.dll detalladamente porfa mandenmelo a mi mail


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: santi01 en 2 Febrero 2006, 19:59 pm
hola, tengo una pequeña consulta :p.
he hecho un programa en VB6 que me controla 8 Leds por los pies de salida. Ahora mi intención es conectarle a un pin de entrada una placa solar y hacer que si detecta luz pase una cosa y sino otra. muchas gracias x adelantado! :D


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 3 Febrero 2006, 00:04 am
por hay ay un ejemplo con un timer, el timer cada x milisegundos comprueba si hay corriente o no


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: dafsoftware en 3 Febrero 2006, 06:07 am
Hola, otra consultita:
Hay forma de usar la dll desde Macromedia Flash MX 2004?
Gracias de Nuevo
Sl2


claro que se puede usar en flash mx, conozco 2 formas:
-Hay un Software llamado mdm zinc, este permite añadir dll a flash
yo se donde conseguirlo completo, dafsoftware@hotmail.com
-en flash 8 pro  se hace en c y un procedimiento que no se hacer


Título: manejo del puerto paralelo por medio de pulsador
Publicado por: luismv en 9 Febrero 2006, 16:01 pm
saludos amigos, tengo un problema y estoy seguro que me pueden ayudar, resulta que tengo que hacer un proyecto donde tengo que manejar un software de musica como una especie de rockola por medio de un pulsador y este entra por el puerto paralelo, la pregunta es como le hago ?? he estado leyendo pero no he podido hacerlo, estoy intentando por medio de xp pero no he podido, lo que si estoy seguro que funciona es el pulsador ya todo esta bien conectado pero no logro que funcione, solo funciona si conecto el teclado asi si funciona el software pero por el puerto paralelo no jala, espero y me puedan ayudar, gracias...


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: renga73 en 9 Febrero 2006, 22:11 pm
Lo que quiero hacer en si es conectar un sensor ya sea de luz o de movimiento a la pc y hacer un programita que me avise con un mail por ejemplo si detecta alguna anomalia.
Utilizando el puerto serie y programarlo en visual basic.
Que elementos nesecito para lograr esto?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: {_The_Alwar_} en 9 Febrero 2006, 22:31 pm
pos el sensor y unos cuantos cables.... ah! y el conector al puerto del pc


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: renga73 en 9 Febrero 2006, 22:38 pm
pos el sensor y unos cuantos cables.... ah! y el conector al puerto del pc

Que tipo de sensor tengo q comprar?
El sensor ya viene con el cable para conectar al otro extremo por el puerto paralelo? O se nesecita algo de por medio?


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: nil_appserver en 18 Febrero 2006, 23:46 pm
Hola mundo
El hardware del puerto paralelo

     El puerto paralelo de una típica PC utiliza un conector hembra de tipo D de 25 patitas (DB-25 S), éste es el caso más común, sin embargo es conveniente mencionar los tres tipos de conectores definidos por el estándar IEEE 1284, el primero, llamado 1284 tipo A es un conector hembra de 25 patitas de tipo D, es decir, el que mencionamos al principio. El orden de las patitas del conector es éste:
Vista del conector DB-25 hembra que utiliza el puerto paralelo

     El segundo conector se llama 1284 tipo B que es un conector de 36 patitas de tipo centronics y lo encontramos en la mayoría de las impresoras; el tercero se denomina 1284 tipo C, se trata de un conector similar al 1284 tipo B pero más pequeño, además se dice que tiene mejores propiedades eléctricas y mecánicas, éste conector es el recomendado para nuevos diseños. La siguiente tabla describe la función de cada patita del conector 1284 tipo A:
Patita    E/S    Polaridad activa    Descripción
1    Salida    0    Strobe
2 ~ 9    Salida    -    Líneas de datos
(bit 0/patita 2, bit 7/patita 9)
10    Entrada    0    Línea acknowledge
(activa cuando el sistema remoto toma datos)
11    Entrada    0    Línea busy
(si está activa, el sistema remoto no acepta datos)
12    Entrada    1    Línea Falta de papel
(si está activa, falta papel en la impresora)
13    Entrada    1    Línea Select
(si está activa, la impresora se ha seleccionado)
14    Salida    0    Línea Autofeed
(si está activa, la impresora inserta una nueva
línea por cada retorno de carro)
15    Entrada    0    Línea Error
(si está activa, hay un error en la impresora)
16    Salida    0    Línea Init
(Si se mantiene activa por al menos 50
micro-segundos, ésta señal
autoinicializa la impresora)
17    Salida    0    Línea Select input
(Cuando está inactiva, obliga a la
impresora a salir de línea)
18 ~ 25    -    -    Tierra eléctrica

Tabla 1: Configuración del puerto paralelo estándar

     Observe que el puerto paralelo tiene 12 líneas de salida (8 líneas de datos, strobe, autofeed, init, y select input) y 5 de entrada (acknowledge, busy, falta de papel, select y error). El estándar IEEE 1284 define cinco modos de operación:

   1. Modo compatible
   2. Modo nibble
   3. Modo byte
   4. Modo EPP, puerto paralelo ampliado
   5. Modo ECP, puerto de capacidad extendida

     El objetivo del estándar es diseñar nuevos dispositivos que sean totalmente compatibles con el puerto paralelo estándar (SPP) definido originalmente por la IBM (en éste artículo trataré solamente el modo compatible). Hay tres direcciones de E/S asociadas con un puerto paralelo de la PC, éstas direcciones pertenecen al registro de datos, el registro de estado y el registro de control. El registro de datos es un puerto de lectura-escritura de ocho bits. Leer el registro de datos (en la modalidad unidireccional) retorna el último valor escrito en el registro de datos. Los registros de control y estado proveen la interface a las otras líneas de E/S. La distribución de las diferentes señales para cada uno de los tres registros de un puerto paralelo esta dada en las siguientes tablas:
Dirección
   
Nombre
   
Lectura/Escritura
   
Bit #
   
Propiedades
Base + 0
   
Puerto de datos
   
Escritura
   
Bit 7
   
Dato 7
Bit 6
   
Dato 6
Bit 5
   
Dato 5
Bit 4
   
Dato 4
Bit 3
   
Dato 3
Bit 2
   
Dato 2
Bit 1
   
Dato 1
Bit 0
   
Dato 0

Tabla 2: Registro de datos
Dirección
   
Nombre
   
Lectura/Escritura
   
Bit #
   
Propiedades
Base + 1
   
Puerto de estado
   
Sólo Lectura
   
Bit 7
   
Busy
Bit 6
   
Acknowledge
Bit 5
   
Falta de papel
Bit 4
   
Select In
Bit 3
   
Error
Bit 2
   
IRQ (Not)
Bit 1
   
Reservado
Bit 0
   
Reservado

Tabla 3: Registro de estado
Dirección
   
Nombre
   
Lectura/Escritura
   
Bit #
   
Propiedades
Base + 2
   
Puerto de control
   
Lectura/Escritura
   
Bit 7
   
No usado
Bit 6
   
No usado
Bit 5
   
Permite puerto
bidireccional
Bit 4
   
Permite IRQ a
través de la
línea
acknowledge
Bit 3
   
Selecciona
impresora
Bit 2
   
Inicializa
impresora
Bit 1
   
Nueva línea
automática
Bit 0
   
Strobe

Tabla 4: Registro de control

     Una PC soporta hasta tres puertos paralelo separados, por tanto puede haber hasta tres juegos de registros en un sistema en un momento dado. Existen tres direcciones base para el puerto paralelo asociadas con tres posibles puertos paralelo: 0x3BCh, 0x378h y 0x278h, nos referimos a éstas como las direcciones base para el puerto LPT1, LPT2 y LPT3, respectivamente. El registro de datos se localiza siempre en la dirección base de un puerto paralelo, el registro de estado aparece en la dirección base + 1, y el registro de control aparece en la dirección base + 2. Por ejemplo, para un puerto LPT2 localizado en 0x378h, ésta es la dirección del registro de datos, al registro de estado le corresponde la dirección 0x379h y su respectivo registro de control está en la dirección 0x37Ah. Cuando la PC se enciende el BIOS ejecuta una rutina para determinar el número de puertos presentes en el sistema asignando la etiqueta LPT1 al primer puerto localizado, si existen más puertos entonces se asignarán consecutivamente las etiquetas LPT2 y LPT3 de acuerdo a la siguiente tabla:
Dirección inicial
   
Función
0000:0408
   
Dirección base para LPT1
0000:040A
   
Dirección base para LPT2
0000:040C
   
Dirección base para LPT3
0000:040E
   
Dirección base para LPT4

Tabla 5: Direcciones base en el BIOS

     Para trabajar con el puerto paralelo necesitamos en primer lugar conocer la dirección base asignada por el BIOS (estamos hablando de una PC compatible con IBM), podemos utilizar un programa llamado Debug.exe que nos indique la(s) dirección(es) asignada(s): en la plataforma Windows vamos al menú inicio, seleccionamos programas y luego MS-DOS para abrir una ventana de Símbolo de MS-DOS y aquí podemos introducir los comandos indicados más abajo. Si se trabaja en ambiente DOS basta con teclear en la línea de comandos la palabra debug, el programa responde colocando un signo de menos - en donde tecleamos sin dejar espacios en blanco d040:08L8 y presionamos la tecla entrar, entonces el programa debug.exe nos indica en una serie de números la(s) dirección(es) para el (los) puerto(s) paralelo(s) disponibles en nuestro sistema, la siguiente imagen muestra el resultado obtenido en mi máquina:
Ejecutando Debug.exe en la línea de comandos

     Se puede observar una serie de números de dos dígitos (ocho en total), se trata del volcado de memoria que empieza en la dirección 40:0008h. Los primeros seis pares de números representn las direcciones base para los puertos paralelo instalados, en la imagen de arriba se aprecia que el único puerto paralelo de mi máquina está en la dirección 0x378h (78 03). Los números están invertidos porque Intel almacena tal información en un formato de "byte de bajo orden - byte de alto orden". Una vez que obtenemos la información deseada cerramos el programa Debug.exe simplemente tecleando la letra q y presionando la tecla entrar. Para cerrar la ventana de Símbolo de MS-DOS tecleamos la palabra exit y presionamos la tecla entrar.

     Por supuesto, también podemos conocer la dirección asignada al puerto paralelo utilizando un programa, faltaba más, el código es el siguiente:


/**********************************************************
*  puerto1.c                                              *
*  (c)Virgilio Gómez Negrete                              *
*  Determina la direccion del puerto paralelo             *
**********************************************************/

#include <stdio.h>
#include <dos.h>

int main()
{
    unsigned int __far *puntero_a_direccion;
    int i;

    puntero_a_direccion=(unsigned int __far *)0x00000408;

    for (i=0; i<3; i++)
    {
        if (*puntero_a_direccion == 0)
        printf("No se encontro puerto asignado a LPT%d \n", i+1);
        else
        printf("La direccion asignada a LPT%d es 0x%Xh\n",
          i+1, *puntero_a_direccion);
        puntero_a_direccion++;
    }

    return 0;
}

     El programa es muy sencillo, necesitamos un puntero que señale a la ubicación de memoria que almacena la información para las diferentes direcciones asignadas al puerto paralelo, lo llamamos puntero_a_direccion, éste puntero debe ser de al menos dos bytes, por ésta razón se declara como de tipo unsigned int __far. Es importante que Usted verifique en la documentación de su compilador la manera precisa para utilizar la palabra clave far, ésta puede ser simplemente la palabra como tal ó bién puede llevar uno (_far) o dos guiones bajos (__far), asegúrese de utilizar la forma correcta ó el programa no funcionará. Creo que con lo explicado arriba el funcionamiento del programa puerto1.c no presenta problema alguno.

Volver al principio
Hola mundo
Interfaz para el puerto paralelo

     Actualmente, la mayoría de los puertos instalados en las computadoras son de tipo multimodal configurables a través del BIOS de la máquina, en éste artículo me refiero expresamente al modo Normal (SPP), además de éste están las opciones Bidireccional, EPP versión 1.7, EPP versión 1.9 y ECP principalmente. El modo de operación Normal es el más elemental y solamente permite la escritura en las líneas de datos, patitas 2 a la 9 del conector DB-25 del puerto paralelo de la PC.

     Eléctricamente, el puerto paralelo entrega señales TTL y como tal, teoricamente, se le puede conectar cualquier dispositivo que cumpla con los niveles de voltaje específicos de la lógica TTL, sin embargo el hardware del puerto paralelo está muy limitado en cuanto a su capacidad de manejo de corriente, por ésta razón se debe ser muy cuidadoso con el manejo de las señales del puerto, un corto circuito puede dañar permanentemente la tarjeta madre de la PC. Para disminuir lo más posible el riesgo de daños al puerto utilizamos un circuito integrado 74LS244 como etapa separadora y al mismo tiempo mejoramos la capacidad de manejo de corriente, de esta forma podemos conectar una serie de diodos emisores de luz (LED) que nos indiquen la actividad en las líneas de datos del puerto paralelo. El circuito se detalla en el siguiente diagrama:
Interfaz para el puerto paralelo

     Por cada línea de entrada que tomamos directamente del puerto paralelo existe una etapa amplificadora-separadora dentro del circuito integrado 74LS244 que nos permite trabajar con una tasa de entrega de corriente suficiente para desplegar en los diodos emisores de luz la información escrita en las líneas de datos del puerto. Además es posible habilitar ó deshabilitar el despliegue del nibble de orden inferior ó superior del byte escrito en el puerto. Colocando en un nivel lógico alto la patita 1 del CI 74LS244 inhabilitamos el despliegue del nibble de orden bajo, un nivel lógico alto en la patita 19 evita el despliegue del nibble de orden alto. Para comodidad, conecto las patitas 1 y 19 permanentemente a tierra de tal manera que sea posible visualizar la actividad en los diodos emisores de luz (LED). En el diagrama se especifican con números las correspondientes patitas del conector DB-25. Obviamente se requiere de una fuente regulada de 5 Voltios para operar éste circuito, además los siguientes materiales:

    * 1. Circuito Integrado TTL 74LS244.
    * 8. Diodos Emisores de Luz.
    * 8. Resistencias de 220 Ohms, 1/2 Watt.
    * 1. Cable y conector para el puerto paralelo.

     Naturalmente lo más recomendable es probar el correcto funcionamiento del circuito antes de conectarlo al puerto paralelo de la PC. Ensamble el circuito, preferentemente en un circuito impreso, y conéctelo a una fuente regulada de 5 Voltios, conecte temporalmente un extremo de una resistencia de 10,000 Ohms a una línea de entrada, el resto de las líneas de entrada conéctelas a tierra. El otro extremo de la resistencia conéctelo directamente al borne positivo de la fuente de alimentación para inducir una señal TTL alta, el respectivo LED debe encender. Con un trozo de alambre conectado a Tierra, toque temporalemente el extremo de la resistencia que está conectado a la línea de entrada para inducir una señal TTL de lógica baja, el LED se debe apagar. Repita ésta operación para cada una de las ocho líneas de entrada. Una vez que ha verificado el correcto funcionamiento del circuito está listo para conectarlo al puerto paralelo de la PC.

     En primer lugar apague la computadora y el circuito. Conecte el cable al puerto paralelo asegurándose que el conector esté firme en su sitio. Encienda el circuito y por último encienda la computadora, por regla general, el circuito de restablecimiento de la computadora coloca inicialmente en las líneas de datos del puerto paralelo un valor igual a 0x0h, por lo tanto todos los diodos deben estar apagados una vez que la computadora ha terminado su proceso de arranque, sin embargo, si algún diodo permanece encendido ésto no indica una condición de falla, es responsabilidad del software que Usted escriba para controlar el puerto inicializarlo con un valor adecuado antes de realizar cualquier otra operación.

Volver al principio
Hola mundo
Escribiendo datos al puerto paralelo

     Con ocho bits podemos escribir en el puerto un total de 256 valores diferentes, cada uno de éstos representa un byte de información y cada byte puede representar una acción concreta que nosotros podemos definir de acuerdo a nuestras necesidades. En éste artículo el objetivo es entender cómo trabajar con el puerto paralelo, por lo tanto hagamos un programa que nos permita escribir un número cualquiera entre 0 y 255 de tal manera que sea posible visualizar el valor en formato binario. En primer lugar consulte la documentación de su compilador para verificar la correcta sintáxis de la función que nos sirve para escribir en el puerto, en el caso específico de Symantec C++, dicha función es outp( ). Ésta función requiere dos parámetros, el primero de tipo unsigned int que especifica la dirección del puerto paralelo, y el segundo de tipo char que especifica el valor a escribir en las líneas de datos de puerto. Una típica llamada a la función outp( ) se parece a ésto:


outp(0x378, 65);

     Se aprecia la facilidad de manejo de la función, aunque diferentes compiladores dan a sus respectivas funciones nombres diferentes, la mecánica es la misma, se requieren dos parámetros, la dirección del puerto y el valor a escribir en el puerto. Estudie el siguiente código:


/**********************************************************
*  puerto2.c                                              *
*  Escribe datos al puerto paralelo de la PC              *
*  (c)1999, Virgilio Gómez Negrete                        *
**********************************************************/

#include <stdio.h>
#include <dos.h>

int puerto(int direcc);
int seleccion;

int main()
{
    unsigned int __far *puntero_a_direccion;
    int i, direccion[3]={0,0,0}, disponible[3]={0,0,0};

    puntero_a_direccion = (unsigned int __far *)0x00000408;

    printf("Seleccione el puerto:\n");
    /* ¿Cuantos puertos existen? */
    for (i=0; i<3; i++)
    {
        if (*puntero_a_direccion == 0)
        printf("Puerto LPT%d...............no disponible\n", i+1);
        else
        {
            disponible = 1;
            direccion = *puntero_a_direccion;
            printf("Puerto LPT%d...............%d\n", i+1, i+1);
        }
        puntero_a_direccion++;
    }
    printf("Salir del programa........0\n");
    scanf("%d", &seleccion);

    do
    {
        switch(seleccion)
        {
            case 0:/* Salir del programa */
            printf("Adios!!!\n");
            return 0;
            break;

            case 1:/* Puerto LPT1 */
            if(disponible[0]==1)
            puerto(direccion[0]);
            else
            {
                printf("ERROR: PUERTO NO DISPONIBLE\n");
                return 0;
            }
            break;

            case 2:/* Puerto LPT2 */
            if(disponible[1]==1)
            puerto(direccion[1]);
            else
            {
                printf("ERROR: PUERTO NO DISPONIBLE\n");
                return 0;
            }
            break;

            case 3:/* Puerto LPT3 */
            if(disponible[2]==1)
            puerto(direccion[2]);
            else
            {
                printf("ERROR: PUERTO NO DISPONIBLE\n");
                return 0;
            }
            break;

            default:
            printf("ERROR: OPCION INCORRECTA!\n");
            break;
        }
        if(seleccion!=0)
        {
            printf("Seleccione otra opcion\n");
            scanf("%d", &seleccion);
        }
    }
    while(seleccion!=0);

    return 0;
}

int puerto(int direcc)
{
    unsigned char valor; /* Solo valores entre 0 y 255 */

    printf("Ahora puede escribir cualquier valor\n");
    printf("entre 1 y 255, 0 para terminar el programa\n");
    do
    {
        printf("Valor al puerto?\n");
        scanf("%d", &valor);
        outp(direcc, valor);
        printf("Se ha escrito %d al puerto\n", valor);
    }
    while(valor!=0);

    return seleccion=0;
}

     El programa determina el número de puertos paralelo instalados en la computadora y almacena sus respectivas direcciones en el arreglo llamado direccion, en caso de encontrarse una dirección válida además se establece en 1 el valor del arreglo llamado disponible simplemente como una medida de seguridad adicional. Como resultado de éstas acciones el programa despliega un menú basado en los puertos encontrados, en este punto Usted puede seleccionar, en caso de que disponga de más de un puerto, el puerto en donde está conectado el circuito mostrado en el diagrama de arriba.

     Una vez seleccionado el puerto Usted puede escribir un valor cualquiera comprendido entre 0 y 255. Independientemente del puerto seleccionado toda la funcionalidad del programa está encapsulada en la función de tipo int llamada puerto( ) a la cual se le pasa un único parámetro que es la dirección del puerto seleccionado. La función está codificada de tal forma que al escribir un 0 el programa termina, de ésta manera al cerrar el programa las líneas de datos del puerto paralelo están todas en un nivel lógico bajo. Éste programa y el circuito asociado son útiles para entender de forma visual la forma de representar valores en formato binario, además establece las bases de trabajo para otros proyectos de control basados en computadora. Disfrute la experiencia.

Volver al principio
Hola mundo
Descargas

     El diagrama esquemático de la interfaz para el puerto paralelo y el código fuente de los programas mostrados en éste artículo están disponibles en el archivo llamado paralel1.zip (11.7 Kb.)

Volver al principio
Hola mundo
© 1999 Virgilio Gómez Negrete, Derechos Reservados


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: zlackware en 18 Marzo 2006, 23:59 pm
Para los que les sale el fulano error
Unhandbled exeption in VB6.EXE (INPOUT32.DLL): 0c0000096: Privilegerd Instruction
al usar la libreria inpout32.dll, les recuerdo que deben bajarse el
codigo fuente de

http://www.logix4u.cjb.net/

y COMPILARLO en su maquina. Esto se debe a que por lo general esta dll viene precompilada para su uso en windows95-98-ME (plataforma 16 bits) y NO funcionara en Windows XP a menos que lo compilen. Esto es tanto para Visual Basic como Visual C++


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Jim_Morrison en 24 Marzo 2006, 07:39 am
 hola a todos.

necesito ayuda, estoy en un proyecto con el puerto paralelo pero necesito manejar frecuencias, y quisiera ver si me podrian ayudar sobre esto, o se los agradeceria si me ayudaran o diganme si puedo encontrar algun manual referente a este tema.

muchas gracias y asta luego.
espero su contestacion.


Título: Re: [Electronica y programaci�n] manejo del puerto paralelo...
Publicado por: GeoMX en 26 Marzo 2006, 22:33 pm
no sé precisamente qué requieras, pero como el puerto paralelo es completamente digital (sólo puedes tener activado o desactivado algún pin de entrada/salida), me parece necesitarás un ADC con salida de máximo 5 bits (son los pines de entrada del puerto paralelo, aunque podrías ampliarlo utilizando algún codificador, p. ej.). Eso en cuanto a tu caso, lo demás (el programa), pues es software y aquí en este post hay enlaces a varios recursos que te serán de ayuda.

Saludos,
José Jorge (Geo).


Título: Re: [Electronica y programaci�n] manejo del puerto paralelo...
Publicado por: Jim_Morrison en 31 Marzo 2006, 04:19 am
 ;D hola jorge:

Gracias por responder, en realidad tienes razon no me di a explicar vien, bueno mi problema consiste en que tengo que ,anejar los pulsos de los pines de salida para mnaejar un servomotor. asta ahora e visto las funciones de abilitar y desabilitar que es un par de las funciones que necesito, pero quisiera saver si pudiera manejar los pulsos, un ejemplo de esto es que:

un pulso de 1.5 ms hase que gire el servomotor a neutral o a 90º
un pulso de 1.25 ms hase que gire a 0º
un pulso de 1.75 ms hase que gire a 180º

mas o menos el valor de los pulsos solo varea de los 1.25 ms a los 2.25 ms para una bulelta completa.


bueno es algo de lo que necesito y me gustaria que me hecharas la mano porfa, pues lo ocupo mucho.

y gracias por tu atencion.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: pglobo2001 en 4 Abril 2006, 05:08 am
Hola a todos..
Queria ver si me pueden ayudar, tengo que hacer un tp para la facultad, y me piden hacer una maqueta en la cual sea controlada por puertos desde un pc.
Y como yo no tengo muchos conocimientos de electronica queria pedirles si me pueden dar ideas de que hacer y como muchas gracias.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: Socomate en 1 Mayo 2006, 02:24 am
Hola a todos:


     Estoy intentando hacer un programa para el puerto paralelo en C y en MS-DOS, para hacer comunicacion bidireccional, para empezar uso lo más básico en el menú de opciones que he programado separo si el programa va a leer el puerto paralelo o bien va a hacer un envio de datos a través del mismo (el programa no lo tengo aquí en concreto pero como digo es básico).

    Por otro lado también he creado el cable de datos siguiendo el esquema que encontré por la web, que es como sigue:

2-15
15-2
3-13
13-3
4-12
12-4
5-10
10-5
6-11

entonces resulta que todo falla y no sé porque he probado el cable con el polímetro y las conexiones están bien, los puertos de ambos ordenadores están en modo ECP y a mandar los datos desde un ordenador y leer el puerto desde otro y viceversa y lo máximo que consigo es que salga por pantalla el caracter 243 en ascii (esto caracter sale aunque sea con el cable desconectado).

uso las funciones inportb(0x379) para la recepción de datos y
outportb(0x378) (los puertos los he sacado con una función válida y comprobada, por lo que el procedimiento es correcto de esto).

toda mi idea va encaminada a hacer una comunicación bidireccional, agradecería cualquier ayuda que me puedan brindar.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: renga73 en 4 Mayo 2006, 09:41 am
Alguien me puede dar una mano con esto, parece sencillo pero me ta vovliendo loco.
Es en Visual Basic 6.0
Tengo un sensor conectado al pin 10, como seria el codigo para captar cuando este es activado???
Gracias


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: © Shadoweps ツ en 3 Noviembre 2006, 21:53 pm
Alguien sabe como controlar 100 leds por el puert paralelo? he googleado y no encuentro nada, solo como prender 8 leds

espero me ayuden

Salu2


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: rigotra en 1 Diciembre 2006, 16:43 pm
Estoy haciendo una aplicación que envíe y reciba voltaje al Puerto paralelo mediante el uso de la inpout32.dll:
Mi problema:
Hasta ahora he logrado enviar voltaje a las salidas del puerto (Data port), ahora cuando leo las entradas (Status port)  me dice que en las entradas hay voltaje y no tengo nada conectado a ellas, por lo que he probado no tengo acceso a cambiar los valores que tiene, me explico:
Primero por ahora estoy probando de la siguiente forma:
Como logro llevar a las salidas 5 voltios por cada ping lo que hago es conectar con un cable algún ping que se me active con una salida a una de las entradas por ejemplo:
Envío a las salidas un (1), esto envía 5 voltios al ping 2 y conecto este ping a uno de los pines de entradas (10, 11, 12, 13, 15), de esta forma los voltios que envío a las salidas trato de detectarlos en las entradas. (No sé si esta vía funcione fue una idea que se me ocurrió)
Casi siempre me dice que en las entradas hay 127, lo que me dice que el byte de entrada está en 1 menos el último bit (128), ahora esto no cambia, usando la variante anterior de ninguna forma, esos bits que están activos en las entradas no se desactivan.
Por el la imagen siguiente, analizando las entradas:
   Status      Ping      Valor que Aporta
   S3           15                8
   S4           13                16
   S5           12                32
   S6           10                64
   S7           11                128   

Entonces el voltaje se detecta por uno de estos pines e ignoro los valores de los otros (S0, S1, S2) haciendo un AND al valor detectado en las entradas con 248, esto debe darme el valor que aporta ese ping es decir (si se detecta un 8  en las entradas quiere decir que el ping que se detectó fue el 15, y así sucesivamente o combinando).   

Mis preguntas son:
1-   Si puedo conectar un ping de salida con uno de entrada y esto me funcione.
2-   Como puedo poner en 0 a las entradas (S3, S4, S5, S6, S7) 
3-   Haciendo un AND al valor obtenido de la lectura de las entradas con 248 (ignorando los primeros 3 primeros bits del byte de las entradas (S0, S1, S2)), me tiene que dar valor que aporta al byte ese ping o pines, es decir que me tiene que con este resultado puedo decidir que entrada se detecto.
Pueden escribirme a: rigotra_1984@yahoo.es


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: GrTk en 14 Diciembre 2006, 19:22 pm
Alguien sabe como controlar 100 leds por el puert paralelo? he googleado y no encuentro nada, solo como prender 8 leds

espero me ayuden

Salu2

podrias utilizar registros de desplazamiento utilizando solo 3 pines de salida del puerto paralelo... y podrias obtener cualquier cantidad de salidas.

El registro de desplazamiento es circuito integrado
que permite que le ingresen los datos en serie
y sacarlos en paralelo.
Basicamente consiste de 3 entradas.
La de datos
La de clock
y la de mostrar los datos.

si te quieres meter con eso
mira que se te complicaria con la programacion
y para "refrescar" todos los led... tomaria
demasiado tiempo( 1seg talvez, depende de
los integrados y de la velocidad de transmicion
del puerto paralelo (la cual desconozco)


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: MARCO_RECARGADO en 19 Diciembre 2006, 19:25 pm
lo primero que hay que saber es como esta la  configuracion del puerto paralelo, es decir la disposicion de sus pines.

(http://img185.imageshack.us/img185/7510/puertoparaleloht6.th.gif)
Una vez que lo sabemos debemos ver que puertos pueden configurarse como salida y cuales como entrada o ambos y que puertos su salida es negada. Yo he hecho9 porgramas con Visual Basic si Pero ahorita no tengo la informacion a la mano lo voy a buscar y despues los posteo.
Ahorita de lo que me acuerdo es que hay una instruccion que sellama outport e inport y ahi debes declarar que puerto es el que quieres trabajar como el 378 379 37A si mal no recuerdo de todos modos en la pagina de internet de visual basic esta como trabajr con puerto paralelo.


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: tabique13 en 16 Noviembre 2008, 07:32 am
Disculpa amigo, pero necesito programar un puerto paralelo que me detecte un voltaje de entrada y cuando lo detecte, mande una señal de salida que active una alarma, es para un proyecto tipo alarma de una casa como lo que mencionas...
Te agradeceria tu ayuda, ya que soy muuy novato para esto de la programacion, el circuito no es problema, se diseñarlo y todo, lo que de plano no se me da es la programacion...

Si alguien que lea esto me puede ayudar, mandeme un mail a gustavogarza13@hotmail.com...

Gracias...


Título: Re: [Electronica y programación] manejo del puerto paralelo...
Publicado por: skapunky en 16 Noviembre 2008, 16:07 pm
Tabuique utiliza el boton buscar y si no lo encuentras abre un nuevo tema o cita este en tu nuevo tema, pero no  escribas que hace 4 años este post...

Lo dejo blokeado