miércoles, 22 de febrero de 2017

Composición de colores RGB con potenciómetros a través de Bluetooth


Con este POST vamos a ser capaces de realizar la composición de cualquier color en un LED RGB mediante 3 potenciómetros, uno para cada color (Rojo, Verde y Azul), tal y como se analizó en un POST anterior, pero esta vez, lo haremos a través de comunicación bluetooth entre dos Arduinos, es decir, en vez de conectar tanto el LED RGB como los tres potenciómetros de control del color RGB al mismo Arduino, conectaremos el LED RGB al “Arduino Esclavo”, que va a ser el encargado de recibir a través de bluetooth los valores R, G y B necesarios para componer el color, además de aplicárselos al LED RGB para que los ejecute,  y por otra parte conectaremos los tres potenciómetros al “Arduino Maestro” que va a ser el encargado de leer el valor analógico de los mismos y de transformarlos para poder enviarlos a través de bluetooth hacia el “Arduino Esclavo”.
 
  Comunicación Bluetooth “Maestro-Esclavo” entre dos Arduinos

Para poder realizar la comunicación bluetooth entre los dos Arduinos, necesitaremos conectar un módulo bluetooth HC-06 al “Arduino Esclavo” para que pueda recibir los valores R, G y B de la composición del color y además necesitaremos conectar un módulo bluetooth HC-05 al “Arduino Maestro” configurándolo como maestro para que pueda enviar los valores R, G y B a través de bluetooth. Debemos de tener en cuenta que para que ambos Arduinos se sincronicen vía bluetooth deben de tener configurado mediante “comandos AT” el mismo pin de conexión, que en mi caso es “1234” en ambos Arduinos y también la misma velocidad de transmisión (os recomiendo 38400 Baudios para no tener que modificar los programas que cargamos en los Arduinos),  para ello,  tenemos el siguiente POST, donde se explica con detenimiento cómo configurar estos módulos bluetooth con éxito.

  Tabla de conexiones

Cabe aclarar que tanto la masa (GND) como la alimentación (VCC) de los módulos bluetooth HC-05 y HC-06 van conectadas respectivamente a los pines “GND” y “+5V” de Arduino. Los potenciómetros lineales de 10KΩ tienen un mando de control  y tres terminales de conexión que denominaremos P1, P2 y P3, donde P2 es el terminal central del potenciómetro. Como necesitamos tres potenciómetros en este proyecto, vamos a utilizar la matriz de enteros “const int Pot[3] = {0, 1, 2}” para definir a que pines analógicos de Arduino van a ir conectados los terminales centrales de los potenciómetros para poder realizar la lectura de sus valores, lo que significa que el terminal central del potenciómetro que regula el color rojo del LED RGB (P2_Pot[0]) va conectado a la entrada analógica “A0” de Arduino, el que regula el color verde (P2_Pot[1]) le conectaremos a la entrada analógica “A1” y el que regula el color azul (P2_Pot[2]) le conectaremos a la entrada analógica “A2”. Los otros dos terminales, P1 y P3, de cada uno de los tres potenciómetros van conectados respectivamente a los pines +5V y GND de Arduino. Por último, tengo que explicar, que el módulo RGB consta de cuatro pines de conexión, tres de ellos para los valores de entrada R, G y B que van conectados a los pines digitales 9, 10 y 11 respectivamente, y el restante que va conectado al pin “GND” de Arduino.
Para finalizar tengo añadir que para que todo esto funcione correctamente simplemente debemos de realizar correctamente la conexión de todos los componentes, a la vez que cargar el código correspondiente en cada uno de los Arduinos para que se comporten de manera adecuada. Una vez realizado esto, debemos de tener alimentados los dos Arduinos y esperar a que sincronicen los módulos bluetooth entre sí para comenzar a operar. Esto es un proceso automático y no es necesario realizar ninguna tarea adicional para que ocurra, sabiendo que están sincronizados cuando el LED de conexión de los módulos bluetooth HC-06 y HC-05 deje de parpadear para permanecer en un estado fijo. A partir de aquí podremos ir moviendo el mando de control de los 3 potenciómetros (R, G y B) para ir componiendo los colores en el LED RGB. Si abrimos el monitor serie del “Arduino Maestro” cuando lo tenemos conectado al PC a través del cable USB, podremos ver el valor de R, G y B (de 0 a 255) que estamos enviando a través de Bluetooth en cada momento cuando movemos los mandos de los tres potenciómetros.

Monitor serie


Lista de Materiales:


·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Módulo Bluetooth HC-05 (Maestro).

·         Módulo Bluetooth HC-06 (Esclavo).

·         LED RGB de  5mm (cátodo común).

·         3 Resistencias de 220Ω.

·         3 Potenciómetros lineales de 10KΩ.

·         Protoboard.

·         Cables de conexión.

NOTA: Si utilizamos un módulo RGB, no nos hace falta utilizar ni el LED RGB ni las resistencias, puesto que ya viene todo integrado en una pequeña placa.
 

Código del programa:

·         Arduino Esclavo
 

 
 
 
·         Arduino Maestro
 

 
 
  
Video:
  

2 comentarios: