Introducción
Los módulos HC-05 y HC-06 son módulos de Bluetooth que podemos usar para conectar Arduino por Bluetooth.
Mucha gente puede tener la impresión de que el Bluetooth es una tecnología anticuada, que se usaba para trasmitir datos entre dispositivos, y que actualmente está en desuso. Nada más lejos de la realidad.
Bluetooth tiene la enorme ventaja de estar integrado de fábrica en la mayoría de dispositivos. Portátiles, Tablets, y Smartphones llevan integrado Bluetooth. Además, su uso es independiente del sistema operativo (Windows, Linux, Mac o Android).
Esto convierte a la tecnología Bluetooth en uno de los mejores medios para comunicarnos de forma inalámbrica con Arduino. Por ejemplo, puede ser empleado para controlar un robot desde el móvil o Tablet, o para recibir mediciones en un ordenador para registrarlas en un servidor web.
Incluso es posible programar Arduino de forma inalámbrica a través de Bluetooth.
Los dos módulos, HC-05 y HC-06, nos permiten conectar de forma sencilla un Arduino por Bluetooth. La diferencia entre ambos módulos es que el HC-06 sólo permite recibir comunicaciones (slave) mientras que el HC-05 puede recibirlas e iniciarlas (master and server). Por tanto el módulo HC-05 es superior en características técnicas.
¿Cómo funcionan los Módulos HC-05 y HC-06?
La comunicación Bluetooth es similar al uso del puerto serie normal. Por tanto, resulta muy versátil y muy sencillo de usar.
La diferencia principal es que, en lugar de un conectar un cable, debe emparejarse el módulo con un dispositivo. El proceso de emparejado depende del sistema operativo (y la versión del mismo) pero es, en general, un proceso sencillo.
Para establecer la comunicación desde el dispositivo, puede usarse el propio Serial Monitor del Arduino IDE. También se encontraran en todos los sistemas (Windows, Linux, Mac, o Android) las aplicaciones para establecer la comunicación por el puerto serie.
Por último, resulta muy sencillo integrar el uso del puerto serie (y por tanto del Bluetooth) en una gran variedad de lenguajes de programación, incluidos Java, C#, VB .Net, o Python, que disponen de funciones específicas para ellos.
Te puede interesar
Conexiones
Utilizar el módulo de Bluetooth requiere el uso de un puerto serie de nuestra placa Arduino. Por tanto, mientras se utilice el módulo de Bluetooth no es posible usar el puerto serie en las placas modelo Uno, Mini, y Nano. En el modelo Mega no tiene este problema, ya que incorpora 4 puertos de serie.
Mientras se esta cargando un nuevo programa en la placa Arduino es necesario que desconectar el módulo Bluetooth, dado que la programación se realiza a través del puerto serie.
Si realmente ambas comunicaciones son necesarias, puede emplearse la librería SoftSerial para establecer una comunicación de puerto serie por cualquier pareja de pins digitales, aunque ello supondrá un coste adicional de tiempo de proceso en Arduino.
La conexión es sencilla. Se alimenta mediante Vcc y GND. Posteriormente se conecta el TXD (pin de transmisión) y RXD (pin de recepción) a los opuestos de la placa Arduino (cada TXD a un RXD). Así quedarían las conexiones del módulo, con los pines de Arduino.
Ejemplo de Conexión
| HC-05 y HC-06 | RXD | TXD | GND | VCC |
|---|---|---|---|---|
| Arduino | TXD | RXD | GND | 5V |
Código
Como se mencionó, el uso del módulo Bluetooth es idéntico al uso de puerto serie. Por tanto, todos los códigos de uso de puerto serie funcionan igualmente por Bluetooth.
Por ejemplo, el siguiente código envía un número a Arduino por Bluetooth y hace parpadear el Led integrado en la pláca el número de veces que hemos enviado.
const int led = 13;
int option;
void setup(){
Serial.begin(9600);
pinMode(led, OUTPUT);
}
void loop(){
//Si existe información pendiente
if (Serial.available()>0) {
//Leeemos la opcion
char option = Serial.read();
//Si la opcion esta entre '1' y '9'
if (option >= '1' && option <= '9') {
//Restamos el valor '0' para obtener el numero enviado
option -= '0';
for(int i=0;i<option;i++){
digitalWrite(led, HIGH);
delay(100);
digitalWrite(led, LOW);
delay(200);
}
}
}
}