Página principal
Arduino
Control salidas

JAVA


En un montaje anterior arseta.html había realizado un controlador de salidas mediante una placa Arduino.
Estaba realizado en Gambas (VB Linux), en esta ocasión lo realizo en JAVA.
Normalmente o trabajo en C, C++, y Basic.
El trabajo que he tenido que realizar para programarlo en JAVA a sido increíble.
Intentar encontrar fuentes donde existan ejemplos sobre la programación de los puertos serie en JAVA a sido muy difícil.
Cuando encontraba algo, estaba semicompletado o no funcionaba realmente.
En una de mis múltiples búsquedas encontré:
    http://josedeveloper.com/2012/01/28/comunicacion-serial-java-y-arduino/
Además de proporcionar los programas completos, enseñaba como compilar los programas sin errores.


Circuito.


Programa JAVA funcionando.


En cuanto al programa realizado para el arduino, los códigos se basan en anteriores montajes míos, son del tipo: petición de dato a través del interface serie, y respuesta por parte del arduino a través del mismo interface serie.
Por ejemplo:
     SET 8,0          Apagar pin 8  

    SET 8,1          Encender pin 8
El que quiera puede mandar los comandos por el teminal y mandarlos con SEND, harán el mismo efecto.
En la parte del Arduino, está preparado para que entienda desde los pin 14 al 19, que corresponden a A0 - A5 , pero no están implementados en la interface JAVA.
El cansancio de programar este programa en JAVA, me hizo que no realizara la comprobación del estado real de las salidas, estaba harto.
Para colmo, en teoría se puede empaquetar todo en un único fichero *.jar, pero yo no lo he conseguido.
Para hacer mas fácil la compilación y ejecución del programa, he realizado dos ficheros de comandos BASH   ./copile y ./run .
Lo que parece fácil de C o C++ , se hace muy complicado en JAVA, como el manejo de ficheros o puertos serie.
Está realizado en el entorno de Debian 10 , por lo cual el arduino debe encontrarse en /dev/ttyUSB0 , lo normal es que  buscase automáticamente donde está conectado el arduino, pero lo he simplificado.
Si por casualidad estuviese en otro sitio, deberemos indicarlo en la línea de comandos. ./run /dev/ttyUSB1 .

Versión 2.    15/04/2020
Estuve pensando como reducir el código, y lo primero que se me vino a la cabeza era hacer un arrays de JRadioButton.
Esto hacía bastante mas fácil el código.
También observe que daba un pequeño error cuando se iniciaba el programa.
Esto se producía debido a que no se había cerrado antes el puerto serie.
He añadido una función que cierra los puertos, pero también esto genera un reset cuando se inicia el programa.
En algunos casos beneficia y en otros casos lo perjudica. Dependiendo lo que se quiera se debe comentar esta función.
PROGRAMA V2



Espero que les sirva este programa para vuestros proyectos.

PROGRAMA-JAVA-ARDUINO

Saludos.
Juan Galaz

Bibliografía:
http://josedeveloper.com/2012/01/28/comunicacion-serial-java-y-arduino/