0% encontró este documento útil (0 votos)
32 vistas4 páginas

Conexión Bluetooth con Arduino HC-06

El documento describe cómo implementar la conectividad Bluetooth entre un PC y Arduino utilizando los módulos HC-05 y HC-06. Explica cómo configurar el módulo HC-06 en modo esclavo y comunicarlo con Arduino a través de un puerto serie emulado usando los pines 10 y 11.

Cargado por

jenriquez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas4 páginas

Conexión Bluetooth con Arduino HC-06

El documento describe cómo implementar la conectividad Bluetooth entre un PC y Arduino utilizando los módulos HC-05 y HC-06. Explica cómo configurar el módulo HC-06 en modo esclavo y comunicarlo con Arduino a través de un puerto serie emulado usando los pines 10 y 11.

Cargado por

jenriquez
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Arquitectura de Computadores - UAO

¿Qué es Bluetooht?... es un protocolo de comunicación


por radiofrecuencia en banda ISM de 2.4 GHz de corto
alcance (típicamente: 5 a 10 m).

Comunicación por Bluetooth


Aplicaciones:
• Teléfonos móviles, auriculares, teclados,
Objetivo: Implementar aplicaciones de mouses, mandos inalámbricos…
ingeniería informática con Conectividad
• Comunicación inalámbrica entre
Bluetooth entre el PC y Arduino.
dispositivos de bajo consumo.

Prof.: Carlos H Cruz V. 1 Prof.: Carlos H Cruz V. 2

Para comunicar el PC con un circuito cualquiera vía Bluetooth, El módulo HC-05 / HC-06 tiene 6 / 4 pines de conexión
por ejemplo Arduino o el ATmega328P, se necesita un módulo
que transmita datos por este medio. • El HC-05 puede operar como Maestro & Esclavo.
• El HC-06 sólo opera como Esclavo.
Comercialmente se dispone de muchos módulos que
realizan esta función. Entre ellos, el HC-05 y HC-06.

1. EN: Habilita/Deshabilita (1/0) el


módulo.

2. VCC: Alimentación.
Los Módulos HC-05 / HC-06:
3. GND: Tierra.
1. Integran la electrónica de Radio Frecuencia (RF) del 4. TXD: Pin de Transmisión (Salida).
Protocolo Bluetooth. 5. RXD: Pin de Recepción (Entrada).

2. Tienen interface de conexión con Entrada y Salida Serial, 6. STATE: Estado Conectado
/Desconectado (1/0).
compatibles con los Módulos Arduino.
El HC-06 no tiene los pines 1 y 6

Se utilizará el HC-06 en el proyecto


Prof.: Carlos H Cruz V. 3 Prof.: Carlos H Cruz V. 4

En Arduino: Se requiere un programa para comunicarlo a través del puerto


Arduino Uno tiene un puerto serial, que por diseño, se utiliza para su
serie virtual con el PC, y a través del módulo Bluetooth con el móvil.
programación y la comunicación por Monitor serial. En consecuencia, el
HC-06 se comunicará con Arduino a través de un puerto serie emulado. https://docs.arduino.cc/learn/built-in-libraries/software-serial

Para emular el puerto serial se usarán dos pines de E/S: #include <SoftwareSerial.h> Programar este código en Arduino. Si todo
Pines 10 / 11 para Rx / Tx en esta conferencia. #define RxPin 10 //Pines para emular está bien, el Monitor Serial mostrará:
ONLINE
#define TxPin 11 //un puerto Serie OK

SoftwareSerial miBT = SoftwareSerial(RxPin, TxPin);


HC-05 HC-06 Arduino
void loop(){
void setup(){
VCC VCC 5V pinMode(RxPin, INPUT);
if(Serial.available()){
Cablear el módulo miBT.write(Serial.read());
GND GND GND pinMode(TxPin, OUTPUT);
HC-06 con Arduino. //Lee PC y Trasmite por miBT
TXD TXD 10 (RxPin) Serial.begin(9600, SERIAL_8N1); }
Serial.println("ONLINE "); if(miBT.available()){
RXD RXD 11 (TxPin) Serial.write(miBT.read());
miBT.begin(9600); //Puerto virtual //Lee miBT y Trasmite al PC
EN -- --
miBT.write("AT"); //Prueba HC-06 }
STATE -- -- }
//Otras tareas aquí
Se supone que el HC-06 está
configurado a 9600 baud }
Prof.: Carlos H Cruz V. 5 6

Prof.: Carlos H Cruz V. 1


Arquitectura de Computadores - UAO

El módulo HC-06 solo opera como modo Esclavo. En este modo


Si Monitor Serial no muestra ONLINE y OK, ajustar su recibe Datos y Comandos AT de configuración.
configuración: Autoscroll, Sin ajuste de Línea, 9600 baudios
Resetear Arduino después de la actualización. Los comandos AT más utilizados son:

Si el monitor serial NO recibe OK:


1. AT Prueba de comunicación
1. Revisar la conexión del Módulo Bluetooth: RxPin (10) a Tx y
TxPin (11) a Rx. 2. AT+VERSION Versión del módulo

2. Igualar la velocidad del Puerto Virtual con la del HC-06. Para 3. AT+BAUDx Vel. de comunicación (bps). x ∈ [1, 9] ⇒ Vel = 600⋅2x
esto: Pruebe otras velocidades en la instrucción: 4. AT+NAMExxx Nombre del dispositivo. xxx representa el nombre
miBT.begin(9600); //Puerto virtual (hasta 20 caracteres)
5. AT+PINxxxx Contraseña o PIN. xxxx representa el PIN (4 dígitos)
Ejemplos: 1.200, 2.400, 4.800, 9.600, 19.200, 38.400, 57.600,
115.200, 230.400, 460.800, 921.600, 1.382.400

Prof.: Carlos H Cruz V. 7 8

Mientras el módulo HC-06 NO esté vinculado con otro dispositivo Bluetooth recibe
Comandos AT de configuración. La siguiente tabla muestra todos los comandos del
firmware HC-06 con su respuesta:
Configurar tu Módulo HC-06: Transmite los siguientes
Comando Respuesta Comentario
AT OK Verifica comunicación
comandos AT desde el Monitor Serial de Arduino:
AT+VERSION OKlinvorV1.8 Versión de firmware
Configuración: Autoscroll, Sin ajuste de Línea, 9600
AT+NAMExyz OKsetname Nombre = “xyz”
AT+PIN1234 OKsetPIN PIN = 1234
AT+BAUD1 OK1200 baud rate = 1200 1. AT El módulo debe responder OK
AT+BAUD2 OK2400 baud rate = 2400
Los comandos AT del
AT+BAUD3 OK4800 baud rate = 4800
módulo HC-05 se 2. AT+NAMEMiBT Bautiza el módulo con MiBT
AT+BAUD4 OK9600 baud rate = 9600 muestran en el Anexo
AT+BAUD5 OK19200 baud rate = 19200
¡Cada grupo debe bautizar su módulo con otro nombre!
AT+BAUD6 OK38400 baud rate = 38400
AT+BAUD7 OK57600 baud rate = 57600 3. AT+PIN2012 Ajusta el PIN 2012
AT+BAUD8 OK115200 baud rate = 115200 ¡Cada grupo debe usar otro PIN!
AT+BAUD9 OK230400 baud rate = 230400
AT+BAUDA OK460800 baud rate = 460800

AT+BAUDB baud rate = 921600


4. AT+BAUD4 Ajusta velocidad en 9600
OK921600
AT+BAUDC OK1382400 baud rate = 1382400

Prof.: Carlos H Cruz V. 9 Prof.: Carlos H Cruz V. 10

En el móvil se debe instalar una Terminal Bluetooth: Esta aplicación


permite Trasmitir y/o Recibir datos a través de bluetooth.

Para comprobar la configuración del módulo HC-06/05, Entre las muchas aplicaciones disponibles,
instalar en tu móvil:
se debe vincular con otro dispositivo bluetooth.
Serial Bluetooth Terminal 1.46
Kai Morich

1. Activar el bluetooth de tu móvil.


2. Sincronizar tu celular con tu módulo HC-06.
Ejercicios:
1. Abrir y conectar Terminal Bluetooth con el HC-06.
2. Enviar un mensaje desde el Terminal Bluetooth.
Observar que se en el Monitor Serial.
3. Enviar un mensaje desde el Monitor Serial. Observar
que se recibe en el Terminal Bluetooth.

Prof.: Carlos H Cruz V. 11 12

Prof.: Carlos H Cruz V. 2


Arquitectura de Computadores - UAO

Ejemplo: Esta aplicación Enciende / Apaga el LED interno, al enviar 1 / 2


desde la Computadora o Móvil.

#include <SoftwareSerial.h>
#define RxPin 10 void loop(){
#define TxPin 11 if(Serial.available()){
#define LED 13 char dato = Serial.read();
miBT.write(dato);
SoftwareSerial miBT = SoftwareSerial(RxPin, TxPin); if(dato == '1'){ digitalWrite(LED, HIGH); }
if(dato == '2'){ digitalWrite(LED, LOW); }
void setup(){ }
pinMode(RxPin, INPUT); if(miBT.available()){
pinMode(TxPin, OUTPUT); char dato = miBT.read();
pinMode(LED, OUTPUT); Serial.write(dato);
if(dato == '1') {digitalWrite(LED, HIGH); }
Serial.begin(9600 , SERIAL_8N1); //*
if(dato == '2') {digitalWrite(LED, LOW); }
Serial.println("ONLINE");
}
miBT.begin(9600); //Vel: 9600 //Aquí otras tareas
} }

//* Datos = 8 bits; N = Sin paridad; 1 = 1 bit de stop

Prof.: Carlos H Cruz V. 13 Prof.: Carlos H Cruz V. 14

Solución void loop() {


if(Serial.available()){
String Cadena =
#include <SoftwareSerial.h>
Serial.readStringUntil('\n');
Ejercicio: Desarrolle una aplicación Arduino para #define RxPin 10 //COM Virtual byte NiLuz = Cadena.toInt(); //Ver:
#define TxPin 11
controlar el Nivel de Luz (NiLuz) de un LED. #define LED 9 //Salida PWM
toFloat()
analogWrite(LED, NiLuz);
SoftwareSerial miBT = SoftwareSerial(RxPin, Serial.print(NiLuz, DEC);
TxPin);
Serial.println(" Monitor Serial");
void setup() { }
Requerimientos de Diseño: pinMode(RxPin, INPUT);
pinMode(TxPin, OUTPUT); if(miBT.available()){
1. NiLuz debe tener 256 niveles: [0, 255] pinMode(LED, OUTPUT); String Cadena = miBT.readStringUntil('\n');
Serial.begin(9600 , SERIAL_8N1); byte NiLuz = Cadena.toInt(); //Ver:
2. NiLuz se pude enviar desde el PC y desde el Móvil. Serial.println("ONLINE"); toFloat()

miBT.begin(4800); //Vel: 4800 analogWrite(LED, NiLuz);


3. Todo NiLuz transmitido, hace eco en el Monitor Serial. Serial.print(NiLuz, DEC);
analogWrite(LED, 100);
} Serial.println(" Móvil");
}
//Aquí otras tareas
}
Prof.: Carlos H Cruz V. 15 Prof.: Carlos H Cruz V. 16

Anexo: El módulo HC-05 tienen dos modos de operación: Comandos AT más utilizados: Módulo HC-05
1. AT Saludo en modo configuración
2. AT+NAME Nombre del dispositivo (20 caracteres)
1. Configuración:
3. AT+PSWD Contraseña o PIN (4 dígitos)
• Permite Configurar y Consultar los parámetros de 4. AT+UART Parámetros de comunicación (Velocidad)
funcionamiento, mediante los Comandos AT. 5. AT+ROLE Rol del dispositivo (1: Master 0: Slave)
• Para poner el HC-05 en Modo Configuración se enciende 6. AT+ORGL Restaura valores de fabrica
el módulo manteniendo oprimido su pulsador por 3 s. 7. AT+RESET Vuelve a modo usuario

Estos comandos tienen dos Propósitos: Consulta y Asignación


2. Usuario: 1. COMANDO? Consulta valor, no lo modifica
2. COMANDO= Asigna/Modifica un valor.
• Realiza la comunicación. Modo por defecto Ejemplos:
AT+NAME? Consulta nombre del módulo
AT+ROLE=0 Lo configura como esclavo

Prof.: Carlos H Cruz V. 17 18

Prof.: Carlos H Cruz V. 3


Arquitectura de Computadores - UAO

Ejercicio: Consultar configuración del HC-05 Ejercicios: Modificar configuración del HC-05
1. Cablear el módulo bluetooth al Arduino.
2. Subir el Programa de Configuración a su Arduino. 1. Bautice el módulo con el nombre de su preferencia:
3. Abrir el Monitor Serial [Configuración: Autoscroll, Ambos NL & CR, 9600 baud] AT+NAME=ArqComp
4. Poner el módulo Bluetooht en modo Configuración: Debe, 2. Configure el PIN de su módulo: AT+PSWD="2012"
apagarlo y encenderlo con el pulsador oprimido por 3 s.
3. Poner el módulo modo esclavo: AT+ROLE=0
5. Pruebe estos Comandos AT y observe las respuestas:
a) AT 4. Configure la velocidad de su módulo bluetooth:
b) AT+NAME? AT+UART=4800,0,0
c) AT+PSWD? 5. Salir del modo Configuración: AT+RESET
d) AT+UART? 6. Confirmar que el módulo está en modo Usuario: AT
e) AT+ROLE? (Observe que NO responde OK)
f) AT+RESET?
Prof.: Carlos H Cruz V. 19 Prof.: Carlos H Cruz V. 20

Prof.: Carlos H Cruz V. 4

También podría gustarte