Módulo Bluetooth HC-06

Estamos ante un pequeño módulo que convierte la información que le llega por Bluetooth al puerto serie y viceversa. Su bajo precio y facilidad de integración lo han hecho muy populares en proyectos y dispositivos domésticos inalámbricos.

Este módulo HC-06 sólo puede trabajar como esclavo, existe un modelo similar, el HC-05, puede trabajar como esclavo y también como maestro. En la práctica el funcionamiento de ambos es muy similar, se diferencian en el número de pines y la forma de configurarlos. En las aplicaciones más comunes usaremos nuestro teléfono móvil o tablet como dispositivo bluetooth maestro para transmitir ordenes a nuestra placa.

Si se observa la imagen con detenimiento veremos que este módulo está formado por dos placas superpuestas, una placa es el transceptor que funciona a 3.3v, que a su vez está soldada sobre otra que incorpora un regulador de tensión que le permite trabajar en un rango de voltaje de 3.6v a 6V y además le proporciona los 4 pines de conexión y así es posible trabajar con ella cómodamente.

Sus principales características son:

Frecuencia de trabajo: 2.4 GHz
Memoria Flash: 8 Mbit
Sensibilidad: -80 dBm
Voltaje: 3.6V a 6V
Consumo: 8 mA (30 ~40mA cuando se empareja)

La información detallada podemos encontrarla en el datasheet del fabricante.

Antes de usar este dispositivo, lo primero que debemos hacer es configurarlo adecuadamente, es decir, definir sus datos básicos: nombre de dispositivo, velocidad de transmisión y contraseña de acceso.

Configuración

El módulo viene de fábrica por defecto a 9600 baudios y con el PIN 1234 pero podemos modificarlo mediante comandos AT, que se envían por el puerto serie Rx Tx. Hay varias formas de hacerlo, veamos algunas:

ATENCION: En todos los casos hay que tener en cuenta que la conexión es cruzada, es decir, el pin Rx del módulo BT se conecta al Tx del Arduino y viceversa.

1- Adaptador USB a serial TTL. (también adaptador FTDI o TTL UART). Si disponemos de un cable de este tipo esta es la forma más simple de configurar el módulo BT, al conectarlo veremos como parpadea el LED del módulo indicando que está a la espera de recibir instrucciones.

Ahora desde el PC podemos usar el monitor serie del IDE: Cargamos el IDE, seleccionamos COM4  y abrimos el monitor serie. Tenemos que mandar sólo el comando AT, sin “nueva linea” (LF) ni “retorno de carro” (CR) por tanto seleccionamos en el desplegable 9600 baudios (velocidad por defecto) y “sin ajuste de linea“.

Escribimos “AT” y debe contestarnos “OK”, significa que la comunicación es correcta, si no funciona así es posible que el módulo BT esté configurado a otra velocidad, deberemos probar con otros valores.

Comando AT
Descripción
Respuesta
AT
Test de comunicación
OK
AT+VERSION
Versión del firmware
OKlinvorV1.5
AT+BAUDx Velocidad de trasmisión del modulo según el valor de “x

1 = 1200 bps
2 = 2400 bps
3 = 4800 bps
4 = 9600 bps (default)
5 = 19200 bps
6 = 38400 bps
7 = 57600 bps
8 = 115200 bps
9 = 230400 bps
A = 460800 bps
B = 921600 bps
C = 1382400 bps
OK9600
AT+NAMExxxx
Nombre con el que se visualizara el modulo

Soporta hasta 20 caracteres

OKsetname
AT+PINxxxx
 PIN de acceso (password).

1234 por defecto.

OKsetPIN

Estos son los comandos básicos hay muchos más, algunos exclusivos para módulos maestro HC-05: Comandos_AT

2.- Configuración desde Arduino: usando un puerto serie, ya sea el que tiene por defecto (pin 0->Rx, pin 1->Tx) o cualquiera de los otros pines digitales.

2.1-En el primer caso, hay que tener en cuenta que los pines 0 y 1 los usa Arduino para comunicarse con el PC, por tanto no podemos tener conectado el modulo BT cuando carga el sketch, y tampoco podemos usar el serial monitor. Hay varios “trucos”, ilustrados en estos vídeos:

2.1.1.- Cargar el sketch de configuración, que ya incluye una espera (delay) de varios segundos que nos da tiempo para conectar los pines: https://www.youtube.com/watch?v=q0bV6Q0gh0s

2.1.2.- Aprovechando que el módulo BT tiene un consumo inferior a 30 mA, es factible usar uno de los pines digitales para alimentarlo. El mismo sketch se encarga de activar el módulo cuando está libre el puerto serie:  https://www.youtube.com/watch?v=M7DTEcdzDTI

2.2 En el caso en que queramos usar otros pines para tener conectado el módulo BT hay que usar la librería “SoftwareSerial.h”. Esta es la conexión que recomiendo siempre que dispongamos de 2 pines libres y memoria suficiente, así lo hacemos en el programa de ejemplo:

 

Recordemos que los comandos AT deben estar separados entre ellos al menos 1 segundo de tiempo para que sean reconocidos, para eso usamos la función delay(1000) en el sketch

Emparejamiento

Una vez configurado el módulo ya podemos conectarnos a un dispositivo maestro como nuestro móvil, cuando se empareja, el led queda fijo y está listo para transmitir información.

Ejemplo1

Vamos a hacer una prueba de la transmisión de texto bidireccional, funcionaría como un chat, escribiendo desde el móvil y desde el serial monitor. Necesitamos instalar un terminal Bluetooth en nuestro móvil que permita enviar y recibir texto, para ello instalamos una “app” de android llamada BTduino2 que se puede descargar desde Google Play y que también nos puede servir para definir botones para otros aplicaciones.

Ejemplo2

.

También te podría gustar...