24 octubre, 2012

Modulador de Ancho de Pulso (PWM) en Java

javaPWM.png


JavaPWM es una sencilla aplicación que permite convertir cualquier PC con un puerto serial en un modulador de ancho de pulso (PWM).

Existen en internet varios circuitos simples que permiten controlar un relé con el puerto serial. JavaPWM aprovecha esta característica y envia pulsos al puerto serial que pueden servir para controlar un relé u otro dispositivo similar. He aqui un esquemático simple para controlar un relé por medio del puerto serial:

(originalmente publicada en http://www.windmeadow.com/node/4)

Permite configurar el puerto, modo de operacion, ciclo de trabajo y frecuencia. Se puede trabajar con un pulso simple de duracion determinada o bien como un oscilador a la frecuencia indicada.

El ciclo de trabajo (duty cycle) puede variar entre 1 y 99%. 

En modo oscilador (continuo) la frecuencia puede variar entre 1 y 50 Hz.

En modo pulso, el pulso puede durar entre 1 y 100 segundos.

El modo "off/on" invierte el ciclo.

Requiere Java 6 o superior y la biblioteca rxtx correctamente instalada o configurada.

En ciertos casos puede dejar el puerto bloqueado. En linux se desbloquea eliminando el archivo Lock del puerto en /var/lock. En Windows no tengo idea como desbloquear un puerto.

Para descargar la aplicación clic aqui. Es totalmente gratuita!
El codigo fuente se puede descargar desde aca.

Si te sirve, te gusta o tienes alguna sugerencia, tu comentario es bienvenido.



3 comentarios:

BetHania Mtz. dijo...

Holaa !! me sirvio de mucho tu aplicacion :d muchas gracias en serio. solo un comentario y espero puedas ayudarme me gustaria saber como hiciste la parte de modo pulso? veras tambien estoy haciendo un programa parecido pero solo con duracion de 1 a 50 ms Me encantaria si podrias proporcionarme tu codigo de esa parte si no es mucho pedir por favor mi correo es bethiis126@gmail.com :D tengo muchas dudas sobre eso y apenas estoy trabajando con ello. muchas gracias

Leopard dijo...

Hola @BetHania Mtz. Gracias por comentar!

Modifique el articulo agregando el link de descarga al fuente.

Es un proyecto Netbeans. Necesita JDK 1.6+

Puedes usarlo y distribuirlo libremente. Recuerda hacer siempre referencia al origen (licencia BSD)

Con respecto al timer. Puedes usar ub bloque synchronized con un objeto de control final, invocando el metodo wait(). Fijate en la clase Pwm.java, metodo run()

saludos.

BetHania Mtz. dijo...

muchas gracias :D en verdad