Artículos recientes

Promociones especiales

Novedades

Tutorial Básico de Uso del Módulo Bluetooth HC-06 y HC-05

Tutorial Básico de Uso del Módulo Bluetooth HC-06 y HC-05

Este tutorial tiene el objetivo principal de dar a nuestros lectores los conocimientos necesarios para poder añadir a nuestro Arduino la función de poder comunicarse sin cables con otros dispositivos mediante módulos Bluetooth y poder empezar a incorporarlos en nuestros proyectos  de electrónica y robótica, además de utilizarlos más adelante en la serie de tutoriales que NAYLAMP MECHATRONICS ha preparado para su público aficionado.

Es necesario saber que existen diferentes modelos de módulos Bluetooth entre los más populares se encuentran HC-06 y el HC05, y entre ellos diferentes modelos.

Un módulo Bluetooth HC-06 se comporta como esclavo, esperando peticiones de conexión, Si algún dispositivo se conecta, el HC-06 transmite a este todos los datos que recibe del Arduino y viceversa.

  

Entonces, ¿cuáles son sus diferencias entre el modulo Bluetooth HC-06 y el HC-05?

El módulo HC-06 es prácticamente idéntico a simple vista con los demás módulos que existen en el mercado.

Una simple diferencia es que el módulo HC-06 funciona como Slave y el HC-05 como Master y Slave (lo que podría confundir a algunos).

Físicamente se diferencian por el número de pines. En el HC-06 tiene un conector de 4 pines mientras que el HC-05 trae uno de 6 pines 

     

Módulo HC-06

HC-06  (arriba) y HC-05(abajo)    Módulo HC-05

  

Para este tutorial trabajaremos un módulo HC06 pero también es válido para un módulo HC-05 en modo Esclavo, que es su configuración que viene por defecto.         

EL HC-06 tiene 4 pines:

- Vcc, Voltaje positivo de alimentación, aquí hay  tener cuidado porque hay módulos que solo soportan voltajes de 3.3V, pero en su mayoría ya vienen acondicionados para q trabajen en el rango de 3.3V a 6V pero es bueno revisar los dato técnicos de nuestro modulo antes de hacer las conexiones

- GND, Voltaje negativo de alimentación, se tienen que conectar al GND del Arduino o al GND de la placa que se esté usando.

- TX, Pin de Transmisión de datos, por este pin el HC-06 transmite los datos que le llegan desde la PC o Móvil mediante bluetooth, este pin debe ir conectado al pin RX del Arduino

RX, pin de Recepción, a través de este pin el HC-06 recibirá los datos del Arduino los cuales se transmitirán por Bluetooth, este pin va conectado al Pin TX del Arduino

Explicado esto, para comenzar a hacer pruebas y comprobar que nuestro HC-06 nos funciona correctamente, usando cables Dupont macho-hembra procedemos a realizar las siguientes conexiones entre nuestro modulo Bluetooth y  nuestro Arduino UNO R3(se pueden realizar las mismas conexiones con el Arduino Mega, Arduino Nano, etc. e iría perfectamente).

  


  
Para cargar el programa al Arduino, desconectaremos los pines RX0 y TX0 del Arduino, pues internamente el Arduino trabaja con los mismos pines para cargar el programa y si están conectados al módulo Bluetooth, no nos dejara cargar (para evitar este inconveniente se puede usar el software serial y usar otros pines).

Ahora en el IDE de Arduino copiamos el siguiente código y luego lo cargamos a nuestro Arduino.

void setup()  
{
  Serial.begin(9600);
}

void loop() 
{
  if (Serial.available())
  {
    char dato=Serial.read();
    Serial.print("Dato recibido: ");
    Serial.println(dato);
  }
}

Después de terminar de cargar, nuevamente volvemos a conectar los pines RX y TX.

El programa que hemos cargado al Arduino básicamente devolverá por el Bluetooth cualquier dato que se reciba a través de él.


Ahora revisaremos como  conectarnos desde la PC mediante bluetooth:


Para nuestro ejemplo utilizaremos Windows 8, (pero el procedimiento es similar para W7 y XP)

Si es la primera vez que el modulo bluetooth se va conectar a la PC es necesario primero vincularlo, para esto en  la PC hacemos una búsqueda de los dispositivos Bluetooth

 

Agregar dispositivo Buetooth

 

Buscar dispositivo bluetooth

  


En la búsqueda debería de Aparecer nuestro módulo Bluetooth con el nombre HC-06 o Linvor, Para vincularlo nos pedirá una clave o código de emparejamiento, generalmente es 1234.

  

Código de Vinculación

  


 El nombre y código de vinculación que mencionamos son los que vienen por defecto al igual que la velocidad de transmisión que viene por defecto de 9600, todos estos parámetro se pueden configurar con comandos AT, esto se explica en este otro tutorial(Comandos AT para el HC-06)
 

Una vez Vinculado, tenemos que averiguar que puerto COM se le ha asignado al módulo Bluetooth, para esto hacemos clic en el icono del bluetooth y entramos a abrir configuración, generalmente se encuentran dos puertos relacionados al módulo, uno entrante y otro saliente, el saliente es el que inicia la conexión, por lo que es el puerto que usaremos , en nuestro ejemplo es el COM6.

  

Abrir configuracón del bluetooth           Puertos COM del Bluetooth 

  

Para conectarse al Módulo Bluetooth desde la PC usaremos el Hyperterminal (Link de descarga al final)

Abrimos y le asignamos cualquier nombre a la conexión y lego elegimos el puerto COM perteneciente al bluetooth que en nuestro caso es el COM6

  
 
Nombre coexión Hyperterminal           COM hyperterminal

  

Al darle en aceptar Hyperterminal hará la conexión al HC-06, cuando se establezca la conexión el HC-06 dejara de parpadear y en la parte inferior del Hyperterminal indicara CONECTADO, ahora podemos enviar por teclado cualquier carácter y el Arduino nos devolverá el carácter enviado

  

Hyperterminal y Bluetooth

  

También podemos hacer la conexión desde Proteus, Proton, Micro Code Studio, Java, Labview, entre otros.

  

   
 Bluetooth y Proteus

   

  

Ahora conectaremos el modulo Bluetooth hc-06 desde un Celular u otro dispositivo móvil:

Primero tenemos que instalar una aplicación que haga la función de un Terminal Serial, para el caso de Android se puede utilizar Blue Term (Link de descarga al final), existen otras aplicaciones, pero con ésta aplicación se realizará  ejemplo.
 
Antes de empezar a usar la aplicación, debemos vincular nuestro celular con el HC-06, esto al igual que en la PC solo se hace una sola vez, para esto vamos a Ajustes->Bluetooth y Buscar dispositivos, en la búsqueda nos debería aparecer nuestro HC06, al seleccionarlo nos pedirá el código de vinculación, que como recordamos lo explicado al inicio generalmente es 1234.

  

 Vincular celular y HC-06

  

Una vez vinculado abrimos la aplicación Blue Term, antes de hacer la conexión, con el botón menú entramos a preferencias y activamos la opción de Echo Local para que se muestre en pantalla los caracteres que  se ingresan por teclado, que son los que se envían.

   

Menu blue Term              Preferencias Blue Term

  

También si queremos podemos cambiar el tamaño de fuente y color.

Una vez echo las configuraciones, volvemos  y entramos a menú ->conectarse a un dispositivo

  

Blue Term Conectar

  

En la lista muestra todos los dispositivos vinculados en nuestro celular, escogemos el HC-06, La aplicación intentará conectar con el HC-06, si logra la conexión en  la parte superior debe salir el estado de conectado.

  

COnectar con HC-06          Blue Term y HC-06 Conectado

     


Una vez conectado, podemos empezar a enviar los datos, es bueno mencionar que la aplicación envía el carácter tan pronto se presione la tecla.

Como el programa en nuestro Arduino devuelve el dato recibido, si todo anda bien, en nuestra aplicación se debería mostrar las teclas presionadas.

Comunicacion Blue Term y HC-06

Esperamos les haya ayudado el tutorial a los que recién empiezan a usar el modulo bluetooth, cualquier duda o consulta no olviden dejar sus comentarios.

  

Links de descargas

 -  Descargar Hyperterminal 

 -  Blue Term Play Store

Comprar Materiales

 - Módulo Bluetooth HC-06

 - Módulo Bluetooth HC-05

 - Arduino UNO R3

 - Cables Dupont Macho-Hembra

Tutoriales relacionados:

Configuración del módulo bluetooth HC-06 usando comandos AT

Configuración del módulo bluetooth HC-05 usando comandos AT

Tags: Bluetooth

22 Comments

    • Avatar
      gabriel pineda
      may 6, 2017

      saludos..Tengo una inquietud, estoy queriendo hacer un proyecto de domotica pero quiero controlar cada bombilla de mi casa con arduinos independientes y controlarlos por bluetooth. quiero saber si es posible utilizar un arduno con hc - 05 de maestro y 5 arduinos independientes con hc - 05 en modo esclavos.

      • Avatar
        Naylamp
        may 11, 2017

        Hola Gabriela, Un HC-05 como maestro puede estar conectado o emparejado solo con un esclavo a la vez, lo que puedes hacer es usando comandos AT configurar el modulo para que pueda conectarse con determinado esclavo, tendrías que hacer esto cada vez que quieras conectar con un diferente esclavo, la configuración tendría que ser en tiempo real, lo que tomaría un tiempo antes de poder enviar información al esclavo. Lo recomendable es usar un maestro por cada esclavo si la comunicación va a ser continua.

    • Avatar
      Miguel
      may 29, 2017

      Buen Día . Amigo disculpe tengo una pregunta. Una vez conectado el dispositivo hc al arduino y emparejado al teléfono como puedo ver los valores enviados en el monitor serie para usarlos en la programación? Lo pregunto porque sólo me da un patrón codificado en cuadros y figuras , no se como llevarlo a un valor numérico que pueda ser usado en el Sketch

      • Avatar
        Naylamp
        jun 18, 2017

        Hola Miguel, el Arduino y la PC se comunican por los pines RX0 y TX0, si usas el monitor serial ya no podrás usar esos pines para el modulo Bluetooth, tienes que implementar un SoftwareSerial en otros pines para el bluetooth. Puede usar el sketch que usamos en nuestro tutorial: Configuración del módulo bluetooth HC-06 usando comandos AT

    • Avatar
      Damian
      jun 2, 2017

      Una pregunta similar a la primera. Tengo de proyecto encender una carga (tengo mi módulo relevador para arduino) digamos un foco. Pero quiero que cuando yo conecte mi smartphone al módulo HC 06 esclavo éste sin yo tener que presionar más botones encienda dicho foco. ¿Hay alguna forma o código para añadir que además de que el módulo conecte al teléfono, encienda el foco sin presionar más botones? Gracias

      • Avatar
        Naylamp
        jun 18, 2017

        Hola, Damián, puedes usar el pin STATE de un HC-05, el estado de ese pin cambia cuando el bluetooth está conectado.

    • Avatar
      Sebastian Vanegas
      sep 15, 2017

      Hola Uso la aplicacion, pero cuando el conecto la aplicacion, el deja de parapadear pero se apaga y empeiza a parapadear cada 5 seg. ¿Por que sucede eso, y como se puede solucionar?

      • Avatar
        Naylamp
        sep 19, 2017

        Hola Sebastián, la forma en que parpadea el led va a depender si es un HC-06 o un HC-05, si es un HC06 sin conexión parpadea y cuando se conecta se queda encendido, y si es un HC05 sin conexión parpadea rápido y cuando se conecta hace un doble parpadeo.

      • Avatar
        Joseph Araujo
        jun 12, 2018

        Amigo, estoy teniendo el mismo problema que tú, quisiera saber si pudiste solucionar tu problema y como lo hiciste, espero tu respuesta, gracias.

    • Avatar
      Lobaina
      oct 2, 2017

      Hola, trato de simular dos arduinos con dos dispositivos bluetooth, donde uno transmite y el otro recibe, lo conecte al Virtual Terminal en proteus, pero no hallo manera de que el otro lo reciba, y no se lo que debo configurar en el proteus para ello. Que puedo hacer. Lo que quiero es una manera de simular el modulo bluetooth en proteus con el arduino y si puedo comunicarlo con el cell mejor, antes de montar el arduino con el modulo. Otra pregunta, yo estoy simulando con HC-05, pero lo que tenmgo fisicamente es un ftb-06, sera lo mismo.

    • Avatar
      Deybi Jimenez
      nov 21, 2017

      Buen dia, estoy ensayando el modulo blouthoo le cargue el programa, dice subido, conecto con la app, dice conectado, sale la pantalla azul, le doy cualquier letra enter pero no me devuelve nada. que podria se. Gracias

    • Avatar
      Deybi Jimenez
      nov 21, 2017

      Buen dia, estoy ensayando el modulo blouthoo le cargue el programa, dice subido, conecto con la app, dice conectado, sale la pantalla azul, le doy cualquier letra enter pero no me devuelve nada. que podria se. Gracias

      • Avatar
        Jorge David
        may 24, 2019

        Mi problema es similar, el movil se conecta al modulo HC-06 pero no recepciona y no transmite nada, porfavor comentar si solucionaste esto

    • Avatar
      Sergio
      nov 23, 2017

      Hola tengo un modulo blutooth n-05 y no responde cuando lo conecto a mi telefono los comandos y no se que puede ser

    • Avatar
      dapobe
      feb 7, 2018

      os escribo para comentaros que tengo algunos problemas para conseguir la correcta comunicación entre el módulo Bluetooth HC-06 y el dispositivo Android (móvil alcatel idol 5; tablet samsung note 8). Os expongo el problema para que me orientéis, si es posible. symbol varA = w0 symbol varB = w1 symbol varC = w2 symbol varD = w3 symbol varE = w4 symbol varF = w5 symbol varG = w6 symbol varH = w7main: setfreq m16 do serin C.7, N4800_16, varA pause 50 debug if varA = 1 then servo B.6, 75 endif loop stop El de arriba es el programa realizado con Blockly for Picaxe (aplicación disponible en Google Play. Esta aplicación es para microprocesadores Picaxe. No sé si la conocéis, pero me parece que el problema puede no estar en ella, ahora veréis porqué lo digo. En cualquier caso, y por dar todos los datos, yo estoy trabajando con una placa AXE 020, y un micro Picaxe 28x2). Esta pequeño programa configura un movimiento para la variable A=1 , que es la que en teoría manda la señal que transmite el Bluetooth del Android al módulo Bluetooth HC06. Tan sólo he conseguido que haga algo (un movimiento a duras penas) en estas configuraciones en Blockly del bloque entrada serie,(en las demás nada) a pesar de que la configuración del Bluetooth es la que trae por defecto de fábrica, es decir 9600 baudios:N2400 a frecuencia valor por defecto N1200_4 a frecuencia valor por defecto(hace ruidos,nada más) N4800_16 a frecuencia valor por defectoAunque sólo tiene configurado un movimiento para varA=1, cuando pulsaba 2 ó 3 ocurría lo mismo (mover el servo B6 a 75º) la primera vez. Luego ya no hace nada más. En otros programas, configuraba tres teclas con movimientos distintos en Blockly, pero al enviar la señal a través del móvil, sólo respondía una, la primera vez. Os mando un vídeo de cómo está configurada la aplicación Bluetooth Electronics a través de wetransfer, con el asunto "Problemas de conexión módulo Bluetooth HC-06 Android Daniel Pozo" Creo, que el problema está en cómo he configurado Bluetooth Electronics, y posiblemente también en el primer bloque azul de la foto de arriba(que lo puse así porque era el único que conseguía algún movimiento). Los android se emparejan bien con el módulo HC06, el problema es la comunicación de los datos. Agradecería cualquier ayuda.

    • Avatar
      Marcelo Iovaldi
      jun 5, 2018

      el archivo del Hyperterminal en Mega ya no está disponible. Podrías actualizarlo o enviarmelo por mail. Muchas gracias

    • Avatar
      JAVIER LUJA HERNÁNDEZ
      jul 30, 2018

      Hola, tengo un teclado inalámbrico y quiero convertirlo a Bluetooth. Es posible hacerlo solo sustituyendo el modulo de transmision / recepción por el módulo HC-06? Gracias!

    • Avatar
      Ana Juárez Martínez
      ago 26, 2018

      Hola buenas tardes, en primer lugar agradecer todo el material expuesto en esta pagina porque me ha servido de mucha ayuda, pero no ha terminado de solventarlas. La problemática con la que me encuentro es la siguiente: quiero poder controlar el encensido y apagado de unos leds que se encontrarían en una camiseta, a través del móvil por buettoth

    • Avatar
      Donato Esparta Vargas
      oct 23, 2018

      Buenas noches. Tengo un HC 05 configurado como Maestro. Tengo una impresora bluetooth POS58 con su direccion bluetooth. Como podria emparejarlo para que se conecte directamente el HC 05 a la impresora si es que esta impresora (o cualquier otro dispositivo) tiene una clave de emparejamiento. Muchas gracias

    • Avatar
      reinaldo
      ago 23, 2019

      por favor necesito alguien me indique que hacer, el modulo HC06 cuando no interactuo con el a los 30 segundos se desconecta.. habra alguna solucion,, ya he probado con varios y todo igual, mientras estoy enviandole datos todo ok,, muchas gracias reinaldo..

    • Avatar
      Gustavo
      sep 29, 2019

      Buenos días Naylamp, tengo un arduino que toma 2 tipos de medición (distancia (HC-SR04) y temperatura (LM35)), cuando el arduino esta conectado a la raspberry pi por el cable USB la transmisión de datos por el puerto serial es buena, eso datos transmitidos por arduino los leo por la parte de raspberry pi con un script python el cual se encarga de mostrarme los datos en su respectiva consola. Cuando desconecto el arduino de la raspberry y lo coloco a una distancia de 10mts. aprox. me da un error de puerto serial, es obvio ya no esta conectado, ahora el arduino necesita enlazarse vía inalambrica (módulo bluetrooth HC-05), creo que aparte de conectarlo a teléfonos que me parece genial la idea, el alma de este módulo es poder hacer el tipo de conexión que propongo y que un script python lea los datos que se estan transmitiendo por el HC-05, y me gustaría saber como hacerlo, espero puedan ayudarme con mi tema sin resolver. Desde ya les agradezco su atención. Saludos cordiales.

Leave a Reply

* Name:
* E-mail: (Not Published)
   Website: (Site url withhttp://)
* Comment: