
¿Qué es un módulo HC-05 ó HC-06?
Los módulos HC-05 y HC-06 son módulos de Bluetooth que podemos usar para conectar comunicar con 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, podemos emplearlo para controlar un robot desde el móvil o Tablet, o recibir mediciones en un ordenador para registrarlas en un servidor web.
Anuncio:
Incluso es posible programar Arduino de forma inalámbrica a través de Bluetooth, como veremos en una entrada posterior.
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.
Precio
En la actualidad podemos encontrar tanto el HC-05 como el HC-06 por unos 2,75€, en vendedores internacionales de Ebay y Aliexpress.
Antiguamente el precio del HC-05 era bastante superior al del HC-06. Pero, dado que en la actualidad ambos módulos cuestan lo mismo y que el HC-05 es superior en características, lo normal es que siempre querremos comprar el módulo HC-05.
Como advertencia, ambos módulos (HC-05 y HC-06) están formados por dos componentes. El módulo de Bluetooth en sí, y una base a la que va soldado y que contiene el resto de circuitería. Tener cuidado de no comprar sólo la base o el módulo sueltos, que también se venden a un precio inferior.
¿Cómo funcionan los módulos HC-05 y HC-06?
La comunicación Bluetooth es similar al uso del puerto serie normal, que vimos en esta entrada. Por tanto, resulta muy versátil y muy sencillo de usar.
La diferencia principal es que, en lugar de un conectar un cable, tendremos que emparejar el módulo con nuestro 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, podemos usar el propio Serial Monitor del Arduino IDE. También encontraremos en todos los sistemas (Windows, Linux, Mac, o Android) encontraremos aplicaciones para establecer la comunicación por el puerto serie.
Por último, resulta muy sencillo integrar en nuestros programas 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.
Esquema montaje
Utilizar el módulo de Bluetooth requiere el uso de un puerto serie de nuestra placa Arduino. Por tanto, mientras usemos el módulo de Bluetooth no podremos 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.
Si realmente necesitamos ambas comunicaciones podemos emplear 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. Alimentamos mediante Vcc y GND. Posteriormente conectamos 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.
Mientras que el esquema visto desde Arduino queda así.
Ejemplos de código
Como hemos dicho, el uso del módulo Bluetooth es idéntico al uso de puerto serie, que vimos en esta entrada. Por tanto, todos los códigos de uso de puerto serie que vimos en esta y otras entradas de este blog 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); } } } }
Anuncio:
Hola Luis
Este blog es excelente he revisado algunas páginas y son muy claras y fáciles de seguir y entender te felicito, recibiré una versión UNO r3 próximamente, para iniciarme en este, a mi juicio, fascinante mundo Felicitaciones es un material muy estimulante Gracias Manuel
Disculpa a que te refieres con desconectar el bluetooth ? a que no este vinculado o que no este alimentado ? por favor seria de mucha ayuda
El HM10 es un Bluetooth 4.0 Low Energy. Me lo apunto para hacer una próxima entrada.
Hola!
estoy haciendo el trabajo de investigacion y utilizo arduino, exactamente el modulo HC 06, y tengo una duda.
Lo intento configurar, le subo el programa y cuando intento conectar el movil me sale otro nombre, de numeros y letras, pero no el que yo habia puesto en el programa.
Me gustaria y agredeceria mucho una respuesta
gracias
Se ha colado un cero en la línea 8?
Ups, eso parece. Gracias por el aviso!
Hola buenas, gran post de antemano. He estado mirando módulos Bluetooth y he encontrado el HC-08, no sé si sabrá cuál es la diferencia con respecto al HC-05. Si es sí, agradecería su respuesta. Un saludo.
Los HC-05 y HC-06 son Bluetooth 2.0. Los HC-08 y HC-10 son Bluetooth 4.0 (Low Energy). Son dispositivos más modernos.
Próximamente tendremos un tutorial soble Bluetooth BLE en Arduino 😀 . Pero, seguramente, usaremos un HM-10 que es más barato
Hola, querria saber si es posible comunicar dos arduinos por bluetooth, donde el maestro manda una H y el esclavo pinta esa H en su monitor serie. ¿Se puede realizar las dos comunicaciones a la vez, la comunicación bluetooth y la serial?
que precauciones debo tomar en cuenta al conectar el modulo bluetooth con un dispositivo movil
Tengo que admitirlo amigo, gracias a mucha información que e sacado de tus publicaciones e logrado hacer muchas cosas, muchas gracias.
El año pasado con parte de información que saque de ti, logre crear el prototipo de una Estación Agrometeorologica con la cual llegue instancias nacionales en Argentina, siente orgullo por poder ayudar a personas como yo.