Java + Arduino: Encendiendo un LED RGB desde un programa en nuestra PC

4
335
El siguiente post pretende ser un ejemplo básico del control de los colores de un LED RGB, a partir del cual se espera obtener 7 diferentes tonalidades de colores. El control se lleva a cabo desde una aplicación en Java.

 

Un LED RGB es un tipo especial de LEDs que se caracteriza por ser capaz de generar luz en diferentes tonalidades.

diodo-led-tricolor-rgb-5mm

Poseen 4 patas, 3 ánodos y un cátodo. Al inducir una corriente entre uno de los ánodos y el cátodo, se producirá un color diferente. Se le dice RGB por que sus colores primarios son el rojo (Red), verde(Green) y el azul(Blue).

Combinando dichos colores obtendremos otras tonalidades.

En informática se utiliza mucho el RGB como principio básico para la creación de tonalidades. Si utilizamos un editor básico, como el Pain de Windows, podemos observar lo que sucede con los valores RGB. Dichos valores se extienden del 0 al 255. Nosotros con un LED RGB solo podemos tolerar 2 valores, el máximo y el mínimo, es decir, el 0 y el 255.

Si le damos un valor de 255 al ánodo R, es decir, si colocamos 5 voltios en la pata R del LED, obtendremos lo siguente:

red

Podemos despreciar los valores de las casillas Matiz, Sat y Lum. Concentrémonos en las casillas Rojo, Verde y Azul. El valor 255 representa 5 voltios en la pata R, lo que devuelve un color rojo. Si hacemos lo mismo con las casillas Verde y Azul obtendremos otras tonalidades.

rgb rgb blue rgb sky blue rgb violet rgb white rgb yellow

A lo último podemos observar que si colocamos los valores máximos en las 3 casillas obtendremos el blanco; si colocamos los valores mínimos en las 3 casillas, osea 0, obtenemos el color negro, que no es más que un LED apagado por ausencia de voltaje entre el cátodo y cualquiera de los 3 ánodos.

Podríamos formar el Celeste si probamos con 255 Verde y 255 Azul, pero la verdad no se aprecia mucho la diferencia así que decidí excluirlo de este ejemplo.

Ahora procedemos a crear una interfaz para nuestro programa con el que vamos a encender los colores del LED.

Primero vamos a Netbeans IDE y creamos un proyecto. En mi caso yo lo llamé RGB. Insertamos un jFrame y colocamos los siguientes botones:

rgb

En caso de que usted no sepa hacer esto, puede visitar el tutorial Cómo crear nuestro primer programa en Java con NetBeans.

Ahora que hemos insertado nuestros botones, le asignaremos un nombre a cada uno. Para ello, le damos clic derecho en el botón cuyo nombre deseamos cambiar y vamos a la opción “Change Variable Name”.

rgb

Le damos clic y colocamos el nombre con el siguiente formato: jButton_nombre del botón.

rgb

Repetimos el proceso para todos y cada uno de los botones. Al final, en la parte izquierda de nuestro NetBeans IDE podremos visualizar todos los botones con sus respectivos nombres.

Ahora es tiempo de proceder a implementar la función ArduinoConnection() y EnviarDatos().

Agregamos lo siguiente a nuestro código en Java:

 

También recuerden agregar la librería RXTXComm y los siguientes imports:

Con esto debería trabajar nuestro software a la par de Arduino. Ahora programemos los botones:

Para la comunicación serial entre Arduino y Java utilizaremos el siguiente código:

0 – Apaga el LED (Botón OFF)

1 – Enciende el rojo

2 – Enciende el verde

3 – Enciende el azul

4 – Enciende el morado

5 – Enciende el amarillo

6 – Enciende el blanco

Con esta sencilla configuración, procedemos a implementar el método EnviarDatos() en cada uno de los botones.

No olviden agregar la línea ArduinConnection(); luego de initComponents() en la función que inicia el programa. Si no lo hacen, Arduino y Java no se comunicarán.

Con esto quedamos listos en Java y procedemos a programar en Arduino. Aquí les dejo el código:

Subiendo este código a Arduino podremos interpretar los datos enviados por Java.

Ahora es tiempo de armar el circuito. Necesitaremos un LED RGB y 3 resistencias de un valor que esté entre 220 y 360 Ohm. Yo utilizo 330 para trabajar con 9 voltios, pero aún así funciona bien con los 5 voltios de Arduino. Ahora necesitamos identificar el cátodo y los ánodos. Miramos en el interior del LED y la pata que sea mas gruesa que las otras 3 será el cátodo. Generalmente es el segundo de izquierda a derecha o el tercero de derecha a izquierda.

Procedemos a colocarlo en un ProtoBoard. Introducimos el LED RGB y colocamos una resistencia en cada ánodo.

Una buena práctica que podemos realizar es identificar los colores del LED RGB. Conectaremos el cátodo al GND de Arduino  y utilizando un jumper, conectaremos un extremo en los 5V y el otro extremo en alguna de las resistencias para ver que color se produce.

Cuando hallamos probado que todos los colores encienden, conectamos el ánodo R en el pin 10, el ánodo G en el pin 11 y el B en el pin 12. Esto lo establecimos en el código que escribimos para Arduino.

Una vez hecho esto, con nuestro microcontrolador conectado a la PC mediante USB y el código cargado, procedemos a iniciar la aplicación que construimos en Arduini IDE.

Si todo está en orden y no se produce ningún error, obtendremos los siguientes resultados:

Espero sus comentarios. Saludos.