# Programa para control de luces por puerto paralelo



## mati89

bueno aque les traigo un programa que me tomo 2 dias enteros en hacelo espero que les guste esta muy muy completo

(seg son los pasos)
si conocen como es la logica el tilde de los seg significa que en esa secuencia va a estar en valor logico 1 o por decirlo pseudamente va a estar prendido y si esta destildado va estar apagado

lo primero que deven hacer es establecer la velocidad en milisegundos

en segundo lugar hasta que seg quieren secuenciar 

*si no funciona el programa puede ser que tengas estos problemas

-la direccion del puerto sea incorrecta
-no tengas instaladas las librerias dll en el directorio c:/windows/system32/
-tengas las librerias dll instaladas en el system32 pero estas sean de windows 98 (en caso que tengas xp)si tenes windows 98 95 deves instalar las librerias de estas versiones

espero que les guste y dejen su comentario para que vea si fue exitoso o no les gusto y para aclarar todas sus dudas.


----------



## jesaltori

ok pero tengo xp y no tengo las librerias para este sistema podrias ponerlas en algun link


----------



## sony

se ve muy bueno el programa que librerias serian


----------



## mati89

la libreria es inpout32.dll la debes descargar y pegar en la carpeta c/windows/system32
en windows xp aparece oculta esta carpeta entonces lo que deves hacer es entrar a la carpeta system y agresgarle un 32 en donde dice direccion

espero que te haya servido de ayuda.


----------



## alco79ar

excelente programa estaria bueno que nos enseñes como lo hiciste, yo estoy buscando algo asi pero, aprendert como se hacen en visual basic 6.

Saludos


----------



## sony

gracias por la respusta


----------



## jesaltori

Muy bueno el programa ,muy completo  
pero tendras alguno para que trabaje con ritmo del sonido?


----------



## Trainux

Alguien me podria guiar en todos los pasos para encontrar en .dll? Tengo windows xp y estoy realizando un trabajo donde quiero controlar unos leds  de una maqueta. No se velocidad ni nada que tengo q poner en el programa. Si alguien es tan amable de responder me aria un gran favor.


----------



## Fogonazo

Primero instalas el programa de Mati89

Luego te bajas el inpout32.rar de aqui:  https://www.forosdeelectronica.com/download.php?id=5905

Lo descomprimes con el WinRAR

El inpout32.DLL (Que esta dentro del inpout.RAR) lo copias a la carpeta C:\WINDOWS\system32

Y si Bill Gates tiene ganas ya te funciona el programa de manejo del puerto paralelo.


----------



## Trainux

Esto serviria al conectar un cable de impresora al puerto paralelo y con leds?¿ O solo sirbe para las luces que hay en el programa?. Muchas gracias.


----------



## Fogonazo

Eso te puede servir para encender led´s conectados al puerto paralelo

Por ejemplo:
Dentro de tu maqueta colocas los led´s.
Llevas el cableado hasta tu pc.
Lo conectas a esta en la salida de impresora. 

Una vez todo armado lo controlas con el programa


----------



## fernandoae

Trainux dijo:
			
		

> Esto serviria al conectar un cable de impresora al puerto paralelo y con leds?¿ O solo sirbe para las luces que hay en el programa?. Muchas gracias.


Para eso justamente es el programa.Pueden conectarse leds, lamparas de 220v, motores... lo que se te ocurra siempre y cuando uses una interfaz adecuada.
El programa esta bueno y funciona bien... pero se puede mejorar.  
Aunque yo para esto programaria la parte del secuenciador en macromedia flash y despues usaria un socket local para conectarme a un "puente" en visualb para lograr el acceso al puerto. Lo positivo de usar flash es que la interfaz queda mejor que en vb y se le puede dar mas interactividad.

Quiza algunos lo conozcan pero aca les dejo el vinculo de un programa similar con la modalidad audiorritmica y salida expandible para 32 luces (o lo que sea):
http://www.sools.com/index.php?menu=lightning&page=lightning-download&edit=

Si alguno quiere un curso acelerado de vb que nos pregunte y le explicamos


----------



## Toño

hola, en que lenguaje hiciste tu progarma?...gracias


----------



## fernandoae

El que se llama "LPT CONTROL"? Ese no lo hice yo pero està hecho en Visual Basic 6.


----------



## Toño

ok ok..gracias por contestar fernandoae, de casualidad tienes forma de asesorarme con un programa asi mas o menos pero hecho en C, estoy trabajando en el borland con winxp y llevo dias intentnado de varias formas que me pueda reconocer las funciones que llamo, inportb y outportb...gracias


----------



## fernandoae

De C no c nada 
Aunque si no te funciona con esa DLL proba con io.dll ... ademas en xp cuesta encontrar algo que funcione bien por el tema de que no te da acceso directo al puerto.


----------



## luis dario gallardo

buenas, esta muy lindo el programa quisiera saber si alguien lo puede hacer para ponerle un tiempo a cada ledya sea 10, 15 30 60 minutos de encendidoy luego se apaga.


----------



## jcarreno

Cómo lo hago en vb6 para que la salida sea intermitente


----------



## fernandoae

En este momento no tengo ningun ejemplo pero esto te puede servir:
http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html

Algo sobre interfaces para el puerto:
http://logix4u.net/Legacy_Ports/Parallel_Port/A_tutorial_on_Parallel_port_Interfacing.html

Pero a grandes rasgos lo que tenes que hacer es utilizar un timer que invierta el estado del bit que queres hacer intermitente.
Ahora que hago memoria si usas la inpout32.dll la funcion ya està implementada...
Aca te paso un documento donde està mejor explicado, el la funcion "notportbit":
observatorio.cnice.mec.es/images/upload/ob_innovacion/libreria_io.pdf


----------



## christianandres

tee amooooooooooo  me sirbio el programa


----------



## clan lion darck

oye!! 

amm me registre por tu programa

pero mi profunda ignorancia no logra entender tu programa a la perfeccion

quiero saber si me servira par un proyecto escolar

tengo un timbre alimentado por usb y se debe prender cada 50 minutos por 10 segundos o x tiempo , primero pense enviarle codigo para apagarlo y prenderlo a decicion

pero se me hace mas facil apagar el puerto cada determinado tiempo

me puedes ayudar??

tu programa me puede servir??

te lo agradeceria mil!!

oye tengo un proyecto escolar donde tengo que controlar un timbre para que suene cada 50 minutos  

y quiero que me ayudes

y sabes si tu programa me puede servir

y  dame un tutorial!! porfa!!

y perdon por las molestias!!

y un tutorial ya q tengo win 7


----------



## MaxiSan20

Yo probe el programa y funciona bien 
para  lo que tu quieres haces solo te restaria agregarle una interface con un optocoplador muy sensillo y practico 
ha y no te recomiendo que lo alimentes del USB usa mejor un transformador y ten cuidado al armar tu interface testea bien que este todo en su lugar antes de conectarla al puerto


----------



## davideg87

excelente programa gracias yo tengo que usar el puerto pero en pascal, te hago una consulta sabes como se hace para recibir datos por el puerto parelelo, lo que quiero hace es que me reciba un dato por el puerto de estado y cuando lo  reciba deje de enviar el dato por alguno del d0 al d7 mi pregunta es si en el programa es  nesesario meterlo ese comando  en un repeat para que lea a cado rato el puerto   o basta con un if o while o alguno de esos, ya que por ejemplo al enviar una dato por el D0 no es necesario meterlo en bucle que da siempre activado


----------



## elbrujo

clan lion darck, si sirve. Tenes que armar una interfase con un optoacoplador para la salida del puerto paralelo. La salida de la interfase hace de boton de timbre. El resto es programacion. Ten en cuenta los sabados, domingos y feriados. Yo lo hice y me paso eso.. los vecinos se quejaban que sonaba el timbre..


----------



## ls2k

hola amigos, la verdad me interesa el programa, pero no se usarlo, no se mucho del puerto paralelo ni de programacion, mi idea es controlar un sistema de luces para fiesta desde el pc, pero no tengo la interfaz, como puedo construi una simplesita, mi idea es no usar integrados, he leido que se pueden usar optoacopladores pero la verdad es que no tengo idea de como usarlos, tngo cerca de 20 iuales, que saque de una ups que desarme hace un tiempo ¿¡me sirven' Como los ocupo?..la verdad no tengo idea.. de programacion tampoco, estoy recien empesando con todo esto de hardware me gustaria que me yudacen.. si alguien puede le estaria enormemente agradecido..

estaba pensando en que en cuanto aprenda hacer un sistema de multiplexado para ampliar las salidas, pero topo en eso de la programacion.. pero es para despues.. de antemano gracias..


----------



## elbrujo

Entonces, me parece que no podras hacer nada sino tienes conocimientos de electronica ni de sistemas (programacion).

Que deberia hacer el programa con las luces? si tienes infinidad de temas musicales de distintos ritmos/genero?

Como el programa identificara el gusto de la gente, mas la dinamica del momento?


----------



## MaxiSan20

Hola quiesiera q me ayuden con un problema, 
bien hice un pequño programa para controlar dos motores pp por VB6
bien hasta ahi voy bien el problema o duda es que cuando se esta ejecutando
un funccion no puedo ejecutar otra osea solo podria hacer una haccin a la ves y 
mi idea no es esa es poder manejar los dos a la ves para el sleep use el kernel32
creo que pude ser ese el problema, cualquier ayuda bine bien 
att. Maximiliano 
aca les dejo el progrma para q lo vichen


----------



## elbrujo

No lo puedo ver, no uso windows. Y te funcionará donde tenes puesto el foco. Si tenes dos funciones tendras que agruparlas en una estructura y ejecutarlas de a una en forma secuencial. Que es exactamente lo que quieres hacer.


----------



## MaxiSan20

No entiendo cuando decis foco.


mira este es el script
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)


Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Cancel = 1
End Sub

Private Sub Abajo_Click()
For i = 0 To Text1.Text Step 1
Abajo1
Next
End Sub
Function Abajo1()
 PortOut &H378, 0
 For X = -7 To -4 Step 1
 Text4.Text = X

 Sleep Text2.Text
     SetPortBit &H378, X * -1
    Sleep Text3.Text
        PortOut &H378, 0
 Next
End Function

Private Sub Retrocede_Click()
For i = 0 To Text1.Text Step 1
Retrocede1
Next
End Sub
Function Retrocede1()
   For i = -3 To 0 Step 1
 Text4.Text = i

 Sleep Text2.Text

    SetPortBit &H378, i * -1
    Sleep Text3.Text
    PortOut &H378, 0

 Next
End Function
Private Sub Arriba_Click()
For i = 0 To Text1.Text Step 1
Arriba1
Next
End Sub
Function Arriba1()
 PortOut &H378, 0
 For i = 4 To 7 Step 1
 Text4.Text = i

 Sleep Text2.Text

    SetPortBit &H378, i
    Sleep Text3.Text
        PortOut &H378, 0
 Next
End Function

Private Sub Avanza_Click()
For i = 0 To Text1.Text Step 1
Avanza1
Next
End Sub
Function Avanza1()

PortOut &H378, 0
    For i = 0 To 3 Step 1
 Text4.Text = i

 Sleep Text2.Text
    SetPortBit &H378, i
    Sleep Text3.Text
        PortOut &H378, 0
   Next
End Function

Private Sub Command2_Click()
PortOut &H378, 0
End
End Sub



Private Sub Command1_Click()
PortOut &H378, 0
End Sub



osea yo quiero que cuando ejecuto la juncion por ej avnza1 tambien pueda arriba1 
pero yo al dar ejecutar avanza1 no puedo hacer ninguna accion hasta q se termine el ciclo se entiende.
SI me podrias dar una opinion de como lograr lo te lo agradeceria 


att. Maximiliano


----------



## elbrujo

El foco es justamente donde esta la antencion del programa en ejecucion. Si esta aca no puede estar alla.. 

No puede comer chicle y cruzar la calle al mismo tiempo..

No se si windows lo permite, creo que no maneja procesos backgroud, en cambio linux si podrias hacerlo.

Lo que te decia si te sirve, es que los procesos los lances dentro de un objeto timer con lo que el sistema le pone el foco depende el tiempo por ejemplo 1 seg.

Cada 1 seg estara haciendo algo y en otro timer le pones otra rutina, con eso logras que este en dos lugares simultaneos, bueno diferido en un determinado tiempo.


----------



## MaxiSan20

bueno lo voy a probar y despues te comento gracias por el aporte


----------



## elbrujo

Cuando una ventana tiene foco la barra superior se pone azul. Tenes comandos en VB para forzar el foco donde vos queres. Investiga eso a ver si te sirve, sino hacele el truco de los timers..


----------



## MaxiSan20

Bueno voy a investigar eso del foco gracias


----------



## davideg87

hola quisuiera saber que datos tienen ustedes cuando verifican el puerto de estado 
porque ami me aparecen todos con tension ,no se de donde  incluso conecte un led con una resistencia y se prendia ,verifique con el tester y todos tenian  5v incluso los de control ,me parece que no voy a poder  controlar nada jaja ,quisiera saber si es problema mio o es asi tengo el puerto configurado como  spp pero puedo elegir cualquiera de los tres


----------



## elbrujo

Y si lo pasas a bajo responde? Parte desde una verdad, arranca tu programa y los pones a todos en bajo. A partir de ahi controlas la salida que quieras...


----------



## MaxiSan20

jaja Yo ese problema tmb lo tenia al principio y agregue este pequeño programa al
inicio de la pc 

Basicamente lo que hace es pone todos los puertos en 0 
(portout &h378, 0 )usando el modulo IO.dll
espero te sirva


----------



## davideg87

bueno el problema es que no puedo poner en bajo los de estado(s3a s7) ya lo intente y no pasa nada , pero encontre una solucion si mando y cable a tierra desde el pin a la tieerra la tension recoore el camino hacia la tierra y al leer ese pin esta en bajo es medio raro debe ser algo interno de mi pc


----------



## babyblue

me funciona perfecto pero no se como puedo guardar la seleccion para un uso proximo ya que al iniciar otra ves tengo que remarcar


----------



## MaxiSan20

davideg87 dijo:


> bueno el problema es que no puedo poner en bajo los de estado(s3a s7) ya lo intente y no pasa nada , pero encontre una solucion si mando y cable a tierra desde el pin a la tieerra la tension recoore el camino hacia la tierra y al leer ese pin esta en bajo es medio raro debe ser algo interno de mi pc


estas usando las salidas correctas y la configuracion correcta?


----------



## samigoro

saludos a todos, estuve experimentando con el puerto paralelo, primero manejando leds, luego lamparas de 220V y motores, ahora me interesa agregarle un funcion de mando por voz, en la cual al hablarle al mic de la pc, ejemplo, "encender luces", active la salida que las encienda, "apagar luces", las apague, y cosas asi. tengo entendido que estan los programas Dragon NaturallySpeaking y Responding Heads que son para comandos por vos, es posible implementar esa idea? talvez utilizando con visual basic. agradezco cualquier idea de como implementarlo. buscando encontre esto


----------



## franko10

hola estube leyendo un poco todo lo que respecta al programa (y lo descargue tambien) y me parece muy bueno el programa pero no tengo idea como hacer el circuito con los leds para poder complementarlos a traves del puerto y poder controlarlos, si me ayudan se los agradeceria mucho ya que es un proyecto que tengo que hacer para la escuela, desde ya gracias.


----------



## xaviergarvi

alguien tiene un software para poder encender los 8  bits del puerto paralelo con el dragon naturally speaking lo que quiero es implementar el control de voz de este programa y al decir "encender luz" pueda hacer presisamente eso o "bajar vidrio" y cosas asi pero que cada comando pueda ser reprogramable por ahi lei sobre un programa muy interesante para carputer que se llama kitt talk que puede controlar el puerto paralelo e incluso personalizar el que diras para cada comando dirigido a un bit en particular del puerto desde encender el coche hasta habrir las puertas todo con la voz, lo malo es que busque cielo y tierra por este programa por que se adecua a lo que busco pero no encuentro ningun enlace para descargarlo, ayuda porfavor alguien save como lograr esto??


----------



## ken192000

muchas grasias compa me sacaste de un apuro eres bien bueno para programar


----------

