# ¿Existe algun exe o ejecutable para mandar 5v o un pulso por puerto serie o com?



## mofetaone (Dic 17, 2014)

En primer lugar, no se mucho sobre programación delphi, visual basic y demás, llevo varios días leyendo y leyendo sin parar y no me aclaro.

Bien, resumo mi pregunta a ver si podéis orientarme hacia lo que busco.

¿Existe o es posible tener un ejecutable .exe en el pc que al ejecutarlo mande un pulso por puerto serie? es decir, por ejemplo tengo un led conectado al puerto serie (tendría que estudiar el pinout) y al ejecutar el programa se encendiese automáticamente, o se encendiese por un par de segundos. Todo esto sin necesidad de ningún pic, arduino o controlador.

Un saludo, no se si me pregunta esta bien por aquí, pero como veis soy un total principiante en estos ámbitos.

Un saludo.


----------



## Fogonazo (Dic 17, 2014)

No creo que ya venga hecho, pero no sería difícil programarlo.

No creo que lleguen 5V exactos y esos 5V no sirven para alimentar algo externo, salvo que consigas controlar los 5 V del puerto USB


----------



## mofetaone (Dic 17, 2014)

Fogonazo dijo:


> No creo que ya venga hecho, pero no sería difícil programarlo.
> 
> No creo que lleguen 5V exactos y esos 5V no sirven para alimentar algo externo, salvo que consigas controlar los 5 V del puerto USB



En realidad 5V es por decir un voltaje, me bastaria con que cerrase un circuito por unos segundos. Si bien dices que no seria muy dificil de programar, podrias orientarme un poco sobre como hacerlo, o indicarme un tutorial o alguna informacion, solo necesito informacion concreta porque google es un caos y no encuentro nada decente.

Muchas gracias.


----------



## Fogonazo (Dic 17, 2014)

https://www.forosdeelectronica.com/f26/enviar-pulso-puerto-serial-com3-106637/

https://www.forosdeelectronica.com/f19/control-servomotor-pc-5377/

https://www.forosdeelectronica.com/f27/prender-led-puerto-serial-36787/

https://www.forosdeelectronica.com/f26/puedo-encender-leds-traves-comunicacion-serial-69896/

https://www.forosdeelectronica.com/...l-automaticamente-al-ejecutar-programa-18907/

Y hay muchos mas en el Foro


----------



## chclau (Dic 17, 2014)

Por el puerto USB me parece poco menos que imposible... por lo menos segun lo que yo se.

Por puerto serial RS-232 ya seria mucho mas simple, si es que tenes un puerto serial en la PC.


----------



## Scooter (Dic 17, 2014)

Por el puerto serie es fácil, basta con activar alguna de las líneas auxiliares


----------



## mofetaone (Dic 17, 2014)

Fogonazo dijo:


> https://www.forosdeelectronica.com/f26/enviar-pulso-puerto-serial-com3-106637/
> 
> https://www.forosdeelectronica.com/f19/control-servomotor-pc-5377/
> 
> ...



Habia leido casi todos estos hilos y no me queda nada claro


----------



## sergiot (Dic 17, 2014)

Mas allá de poder o no, tené en cuenta que los niveles lógicos del com no van de 0V a 5V, pasan de -8 a +8 por ejemplo, en algunos casos son -9 a +9, pero de muy poca corriente.


----------



## mofetaone (Dic 17, 2014)

Scooter dijo:


> Por el puerto serie es fácil, basta con activar alguna de las líneas auxiliares



Si, se que se puede, pero como, necesito algo mas de ilustracion

Gracias por la paciencia a todos


----------



## Fogonazo (Dic 17, 2014)

Existe una forma de controlar la salida del USB, pero no recuerdo donde leí que se podía hacer y no es para cualquier PC.




mofetaone dijo:


> Si, se que se puede, pero como, necesito algo mas de ilustracion
> 
> Gracias por la paciencia a todos



Tu PC ¿ Posee puerto paralelo ?


----------



## Scooter (Dic 17, 2014)

mofetaone dijo:


> Si, se que se puede, pero como, necesito algo mas de ilustracion
> 
> Gracias por la paciencia a todos



Ya no me acuerdo porque no me interesó en su día. En Visual Basic era una simple instrucción. Es cuestión de _leer el manual_, ya sabes.
Apostaría a que en linux se puede hacer un script de media línea, darle permisos de ejecución y a correr.



Parece que se puede hacer con un simple .bat desde windows/dos
http://www.lawebdelprogramador.com/...anejar_puerto_serie_y_o_paralelo_con_BAT.html

con 
mode com1: rts=on se enciende rts
con
mode com1: rts=off se enciende rts

Lo mismo con dtr

En mi PC contesta como que activa y desactiva, es cuestión de usar un polímetro a ver si cambia el estado o no.


----------



## mofetaone (Dic 17, 2014)

Mi pc no tiene paralelo.

Lo del simple bat es lo que buscaba, voy a probar el bat a ver que voltaje me da. que gran ilustracion amigo.


----------



## mofetaone (Dic 17, 2014)

Scooter dijo:


> Ya no me acuerdo porque no me interesó en su día. En Visual Basic era una simple instrucción. Es cuestión de _leer el manual_, ya sabes.
> Apostaría a que en linux se puede hacer un script de media línea, darle permisos de ejecución y a correr.
> 
> 
> ...



No cambia el estado,los desativa pero siguen teniendo corriente, alguna idea para desactivar alguno de esos dos pines con un bat?


----------



## Scooter (Dic 17, 2014)

Es que windows pone cierta barrera entre el hard y el soft. Seguramente funcione en w98 pero no en los nt y posteriores.
A lo mejor ejecutando como administrador.
También hay dos formas de abrir la consola de windows, CMD es la consola de win16 creo, para abrir la consola de win32 se hace de otro modo que no recuerdo.

Se me acaba de ocurrir una idea descabellada. Mira a ver si puedes encender y apagar los leds del teclado y conectas en lugar del led un optoacoplador. Total el led de boq despl no lo uso para nada.
De paso tienes un mando manual.


----------



## adhominen (Dic 17, 2014)

Amigo como dijeron arriba no hay un software (que yo conozca) que lo haga automáticamente. Te recomendaría realizar un programa sencillo en Matlab, en Phyton o en Labview. Con estos puedes controlar salidas lógicas de los puertos y varíar lo que necesites (en los límites de lo normal). En ocasiones se hace necesario usar optoacopladores dependiendo de la necesidad que tengas, lo que vayas a conectar a dichos 5v. 

Tengo un código sencillo desarrollado, no para 5v, pero si variable en Labview y en Matlab. Avísame


----------



## mofetaone (Dic 17, 2014)

lo tengo solucionado con un bat, gracias a todos


----------



## Fogonazo (Dic 17, 2014)

mofetaone dijo:


> lo tengo solucionado con un bat, gracias a todos



Y ¿ Por que no comentas como lo solucionaste ?


----------



## torres.electronico (Dic 17, 2014)

Por si alguien llega al tema en busca de algo similar, con Xscada se puede hacer mucho mas sencillo que con vbasic...es similar, pero mas sencillo


----------



## mofetaone (Dic 17, 2014)

La solucion ha sido conectar el circuito a un pin del puerto serie, en mi caso elegi el pin 7 del conector db9, este pin esta identificado como RTS.

Para mandar pulsos he creado un bat super simple que cada vez que lo ejecutas manda un pulso de encendido, aunque se puede mandar otro de apagado, aqui los dos bats:

encendido:

@ECHO OFF 
MODE COM1:RTS=ON

apagado:

@ECHO OFF 
MODE COM1:RTS=OFF

Asi de simple ha sido la solucion.

Gracias a todos.


----------



## miguelus (Dic 18, 2014)

Buenos días.

Hace algunos años (o mas) necesité una herramienta para comprobar los Puertos series de los PC´s.

No me quedó más remedio que hacer un programita con Visual Basic.

Con este programa puedes controlar independientemente las líneas de salida, DTR, RTS, y TXD. las puedes poner a -12V (1 lógico) o a +12V (0 Lógico)

También puede leer el estado de las Líneas de entrada DCD, DSR, CTS y RI.

El estado de la Línea RXD no es posible leerla ya que, esta línea, en realidad el PC no lee el estado de "0/1", lo que lee es la "Ristra" de datos que entra.

Para comprobar que el puerto funciona correctamente hay que hacer un puente entre los Pines 2 y 3 ( TXD y RXD), el programa envía una "Ristra" de datos y los lee.

Dejo el ejecutable y una DLL, esta librería (Port.dll) fue publicada por la Revista Elector.

Este programa ha funcionado en todas la versiones de Windows, incluso en Windowds 8 

Si necesitas algún cambio podría intentar modificarlo. 

Sal U2


----------



## Scooter (Dic 18, 2014)

Pues mira, lo probaré con mas calma que resulta interesante.
De paso lo probaré con el adaptador usb a ver si también funciona.


----------



## analogico (Dic 18, 2014)

tambien el contador  de pulsos con un puerto serie funciona con un adaptador usb usando pines de control
aca en el foro esta el circuito y un programa en delphi de ejemplo

lo pase a visualbasic  y le mejore antirebote por software

ahora no lo  tengo  pero el programa era batante sencillo  de adaptar
de hecho no se delphi


----------



## mofetaone (Dic 18, 2014)

Yo todo esto lo queria para una cosa muy simple, estoy construyendo un arcade, y tengo los botones conectados a un pad usb de los chinos que tiene un boton para activar y desactivar el modo analogico del mando, este pad siempre arranca en modo no analogico y necesitaba activarlo automaticamente, con el bat que he dejado puesto en el hilo metido en el inicio de windows, se ejecuta automaticamente en el arranque, manda un pulso por el pin del puerto serie que esta conectado al boton del pad y me activa el modo analogico de manera automatica.


----------



## Scooter (Dic 19, 2014)

Pues seguramente con un simple RC puesto dentro del mando en el botón lo podrías haber hecho.


----------



## mofetaone (Dic 19, 2014)

no, no habia manera, a veces funcionaba, a veces no, en el arranque se reinicia varias veces el pad usb y el RC solo lo hace cuando recibe almentacion, la solucion es hacerlo cuando windows este inicado totalmente y el pad usb detectado. es la mejor solucion.


----------



## Rafl_314 (Ago 24, 2022)

mofetaone dijo:


> La solucion ha sido conectar el circuito a un pin del puerto serie, en mi caso elegi el pin 7 del conector db9, este pin esta identificado como RTS.
> 
> Para mandar pulsos he creado un bat super simple que cada vez que lo ejecutas manda un pulso de encendido, aunque se puede mandar otro de apagado, aqui los dos bats:
> 
> ...


Hola a todos. He llegado al post buscando algo muy similar. Quiero enviar dos pulsos consecutivos a los puertos RTS y DTR, es decir prender y apagar a RTS y despues de cierto tiempo prender y apagar por DTR, sin embargo el programa no distingue de los puertos y los envía al mismo tiempo. Implemente algo muy parecido al código de aquí para un bat. Espero alguien tenga una idea de como solucionarlo.

MODE COM3TR=ON
timeout 2 /nobreak
MODE COM3TR=OFF
timeout 5 /nobreak
MODE COM3:RTS=ON
timeout 2 /nobreak
MODE COM3:RTS=OFF
pause


----------

