Módulo HC-06

Vamos a utilizar en estos ejemplos un módulo esclavo de bluetooth JY-MCU o también HC-06 muy común y económico. Es posible usar otros módulos ya que existe un mercado de desarrollo continuo, en cualquier caso el funcionamiento básico es el mismo. Dicho módulo por tratarse de un módulo esclavo, está configurado para conectarse a un maestro y recibir órdenes de él.  

Inicialmente no necesitas configurarlo, sino que al cargar el código desde el ordenador, conectarás el módulo y este empezará a parpadear indicando que está buscando un master al que conectarse, (por ejemplo tu teléfono o una llave bluetooth usb conectado a un pc... ).

Como ya sabrás los dispositivos de este tipo tienen que “emparejarse” y tienen que compartir una contraseña para que los datos puedan intercambiarse. Por defecto, estos módulos tienen la contraseña 1234, aunque tanto esto como el nombre, pueden ser actualizados mediante unos comandos especiales, llamados AT y que veremos un poco más adelante.

Arduino tiene 2 pines que permiten enviar y transmitir datos serie (uno datos tras otro). Lo usamos continuamente cuando enviamos un programa desde nuestro ordenador a Arduino o cuando hacemos una lectura desde el monitor serie (con un Serial.print();**).

Arduino tiene definidos estos pines como:

El módulo bluetooth tiene 4 patillas. 2 para la alimentación y 2 para la comunicación.

Es MUY IMPORTANTE conectar de manera correcta estos pines con Arduino para la correcta comunicación. La patilla que emite los datos (TX) en el bluetooth debe estar conectada a la que recibe los datos (RX) en Arduino, y viceversa. 

Aunque el módulo funciona a 3.3v, normalmente las placas comerciales, (como la que estamos usando), llevan un regulador y las podemos conectar directamente a los 5v de Arduino.

Conexión en la shield Edubásica

La conexión es muy fácil, ya tiene JP6 para conectarlo diréctamente, con la luz led mirando hacia dentro de la placa:

Conexión sin la shield Edubásica

Es también simple, utilizando una placa Protoboard pero intercambiando Rx y Tx es decir Rx del HC-06 con Tx del Arduino y Tx del HC-06 con Rx del Arduino.

Nota; No necesariamente hay que conectar Rx y Tx a D0 y D1, pues esto tiene una fuerte desventaja: Ocupas el puerto serie cuando conectas el Bluetooth.
Hay que quitar el HC-06 cada vez que te conectes por el puerto serie (es decir cuando te conectas por USB para cargar un programa) 
la ventaja que tiene es que no ocupas otros pines de datos.
Yo personalmente sin la shield, prefiero conectar HC_06 en otros pines D0 y D1 y así no tengo que ir quitando y poniendo el módulo HC-06. Mira el curso DOMOTICA CON ARDUINO para ver un ejemplo del HC-06 no conectado al D0 D1
https://libros.catedu.es/books/domotica-con-arduino/page/bluetooth
https://libros.catedu.es/books/domotica-con-arduino/page/bluetooth-2

Ordenes

Si la luz está intermitente, el módulo no está vinculado, si está encendido permanente, ya está vinculado.

Una vez vinculado, la orden es sencilla:  dato = Serial.read();

donde dato es tipo byte : byte dato;

Recuerda, si estas usando los 2 mismos pines que Arduino usa para la comunicación USB con el ordenador (D0, D1), no puedes usar el monitor serie ni para cargar un programa ni para visualizar los datos utilizando el Bluetooth. Igualmente la velocidad tiene que ser igual para entenderse, no pueden ser diferentes.


Revision #9
Created 22 September 2022 11:16:35 by Javier Quintana
Updated 11 February 2024 22:38:00 by Javier Quintana