Arduino+Java: LED de frecuencia variable con Java Threads

1
252
Un post sobre el uso de los hilos en Java (Java Threads) para emular el clásico ejemplo blink en Arduino. Se utiliza la librería RXTX como medio de comunicación entre Arduino y Java.

 

 

En mi post anterior publiqué como hacer el ejemplo blink de Arduino con Java Threads.

El resultado que obtuvimos es el siguiente:

Ahora utilizaremos este mismo ejemplo para poder variar la frecuencia del LED a nuestro antojo desde una interfaz en Java utilizando Java Threads.

Abrimos el mismo proyecto que ya creamos en Netbeans.

Sin título

Nos vamos al panel de la derecha, la “Paleta” y buscamos un control que se llama Slider y la agregamos a nuestro frame.

Sin título

También agregue un Label donde escribí que la frecuencia es 50 Hz. Esto se debe a que el Slider correrá en un rango de 1 Hz hasta 100 Hz.

El slider lo he llamado jSliderFrecuencia; el Label lo he llamado jLabelFrecuencia.

Ahora vamos a las propiedades del jSlider y establecemos que el valor mínimo es 1 y el valor máximo es 100.

Sin título

Ahora procederemos a programar el comportamiendo del Slider.

Primero declaramos una variable del tipo entero llamada frecuencia. La variable debe ser de tipo global.

Ahora nos valdremos de un evento del mismo tipo de los que ya hemos usado antes. Le damos clic derecho en jSlider y buscamos eventos/Change/changeState.

Sin título

Le damos clic y se nos abrirá la ventana de código. Este evento se ejecutará cada vez que halla un cambio en el state del Slider. El código es el siguiente:

La frecuencia será igual a 1000(milisegundos) entre el valor que tenga el slider. Recordemos que la frecuencia es la cantidad de ciclos que se producen en un segundo. Si tenemos que queremos una frecuencia de 1 Hz, dividimos 1000/1 y obtenemos 1000 milisegundos que será la duración del delay.

Luego de asignarle el valor a la frecuencia, imprimimos el valor de la misma en el jLabel.

Sin título

Ahora nos dirigimos al método Run donde se ejecutan los threads y cambiaremos el delay del comando Thread.sleep(). Actualmente tenemos el valor de 1000, que teníamos el ejemplo anterior. Reemplazamos el 1000 por la variable Frecuencia.

Sin título

Con esto estamos listos para ejecutar nuestro programa.

El código para Arduino será el mismo:

Con esté código en la placa, ejecutamos Netbeans y vemos el resultado.

Si desean más información por favor contáctenme.

Espero sus comentarios.

Saludos.

Compartir
Ingeniero Electromecánico, graduado de la Universidad Tecnológica de Panamá. Miembro fundador de Panama Hitek. Entusiasta de la electrónica y la programación.
  • GMO

    Hola buen dia, estoy teniendo problemas al importar algunos comando, ya que no se logra apreciar bien el comando que va, podrias subir el code source.