Guía paso a paso: Emparejar módulos HC‑05 Bluetooth como Maestro y Esclavo usando comandos AT
En este tutorial de Arduino aprenderemos a configurar y emparejar dos Módulos Bluetooth HC-05 como dispositivos Maestro y Esclavo. Puedes ver el siguiente vídeo o leer el tutorial escrito a continuación. En mis dos tutoriales anteriores ya aprendimos a conectar el Módulo Bluetooth HC-05 al Arduino y hacer una comunicación entre un smartphone Android y el Arduino. En esos tutoriales usamos el módulo Bluetooth HC-05 con su configuración por defecto, como dispositivo esclavo. Para este tutorial necesitamos configurar ambos módulos. Para hacer eso, necesitamos cambiar al Modo Comando AT y aquí está cómo lo haremos. Primero necesitamos conectar el módulo Bluetooth al Arduino como explicó el esquema del circuito en los tutoriales previos. Lo que necesitamos hacer adicionalmente es conectar el pin "EN" del módulo Bluetooth a 5 voltios y también intercambiar los pines TX y RX en la placa Arduino. Así que el pin RX del Arduino necesita conectarse al pin RX del módulo Bluetooth, a través del divisor de voltaje, y el pin TX del Arduino al pin TX del módulo Bluetooth. Ahora, mientras mantenemos presionado el pequeño botón sobre el pin "EN", necesitamos alimentar el módulo y así entraremos en el modo comando. Si el LED del módulo Bluetooth parpadea cada 2 segundos, eso significa que hemos entrado exitosamente en el modo comando AT. Después de esto, necesitamos subir un sketch vacío al Arduino pero no olvides desconectar las líneas RX y TX mientras subimos. Luego necesitamos ejecutar el Monitor Serial y allí seleccionar "Both NL and CR", así como "38400 baud" que es la velocidad en baudios por defecto del módulo Bluetooth. Ahora estamos listos para enviar comandos y su formato es el siguiente. Todos los comandos empiezan con "AT", seguidos del signo "+", luego un Así que, por ejemplo, si escribimos solo "AT" que es un comando de prueba, deberíamos recibir de vuelta el mensaje "OK". Luego, si escribimos "AT+UART?" deberíamos recibir el mensaje que muestra la velocidad en baudios por defecto que es 38400. Luego, si escribimos "AT+ROLE?" recibiremos un mensaje "+ROLE=0" lo que significa que el dispositivo Bluetooth está en modo esclavo. Si escribimos "AT+ADDR?" obtendremos la dirección del módulo Bluetooth y debería verse algo como esto: 98d3:34:905d3f. Ahora necesitamos anotar esta dirección ya que la necesitaremos al configurar el dispositivo maestro. En realidad, eso es todo lo que necesitamos al configurar el dispositivo esclavo, obtener su dirección, aunque podemos cambiar muchos parámetros diferentes como su nombre, velocidad en baudios, contraseña de emparejamiento, etc., pero no lo haremos para este ejemplo. Bien, ahora pasemos a configurar el otro módulo Bluetooth como dispositivo maestro. Primero comprobaremos la velocidad en baudios para asegurarnos de que es la misma 38400 que el dispositivo esclavo. Luego, escribiendo "AT+ROLE=1" estableceremos el módulo Bluetooth como dispositivo maestro. Después, usando "AT+CMODE=0" estableceremos el modo de conexión a "dirección fija" y usando el comando "AT+BIND=" estableceremos la dirección del dispositivo esclavo que anotamos anteriormente. Ten en cuenta aquí que al escribir la dirección necesitamos usar comas en lugar de dos puntos. También ten en cuenta que podríamos haber saltado el paso anterior si hubiéramos introducido "1" en lugar de "0" en el comando "AT+CMODE", lo que hace que el maestro se conecte a cualquier dispositivo en su rango de transmisión, pero esa es una configuración menos segura. Aquí puedes encontrar una lista completa de comandos y parámetros: Lista de Comandos AT HC-05 Sin embargo, eso es todo lo que necesitamos para una configuración básica de los módulos Bluetooth para que funcionen como dispositivos maestro y esclavo y ahora, si los reconectamos en modo normal, de datos, y volvemos a alimentar los módulos, en cuestión de segundos el maestro se conectará al esclavo. Ambos módulos comenzarán a parpadear cada 2 segundos indicando una conexión exitosa. Bien, ahora estamos listos para hacer el ejemplo práctico de este tutorial. Aquí está el esquema del circuito. Usaremos un potenciómetro, en el maestro, para controlar un servomotor en el esclavo. Y viceversa, usaremos un pulsador, en el esclavo, para controlar un LED en el maestro. Puedes conseguir los componentes necesarios para este tutorial de Arduino en cualquiera de los sitios a continuación: Descripción: Primero necesitamos definir los pines y algunas variables necesarias para el programa. En la sección setup, en el maestro, ponemos el pin del LED como salida y lo ponemos en bajo de inmediato, así como, iniciamos la comunicación serial a 38400 baudios. Similar, en el esclavo, ponemos el pin del botón como entrada, definimos el servo a qué pin está conectado e iniciamos la comunicación serial con la misma velocidad en baudios. En la sección loop, en ambos códigos, con la función Serial.available() comprobaremos si hay datos disponibles en el puerto serial para ser leídos y usando la función Serial.read() leeremos y almacenaremos los datos en la variable "state". Así que si el maestro recibe el carácter '1' que se envía desde el esclavo cuando el estado del botón es alto, o el botón está presionado, el LED se encenderá. Sino, si el carácter es '0', el LED se apagará. En cuanto al control del servomotor, primero en el maestro, leemos el valor del potenciómetro y lo mapeamos a un rango adecuado para el servo de 0 a 255. Este valor se envía al esclavo que lo usa para girar el servomotor en consecuencia. Eso es todo lo que necesitamos y aquí está la demostración del ejemplo. Código Maestro: Código Esclavo: Eso es todo y si tienes algún problema, siéntete libre de pedir ayuda en la sección de comentarios a continuación.Resumen
Configuración del Módulo Bluetooth HC-05 – Comandos AT


Configuración Esclavo

Configuración Maestro

Ejemplo de Comunicación Entre Dos Módulos Bluetooth HC-05

Códigos Fuente Arduino
/*
* Cómo configurar y emparejar dos Módulos Bluetooth HC-05
* by Dejan Nedelkovski, www.HowToMechatronics.com
* == CÓDIGO MAESTRO ==
*/
#define ledPin 9
int state = 0;
int potValue = 0;
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.begin(38400); // Velocidad de comunicación por defecto del módulo Bluetooth
}
void loop() {
if (Serial.available() > 0) {
state = Serial.read();
}
// Controlando el LED
if (state == '1') {
digitalWrite(ledPin, HIGH); // LED ON
state = 0;
} else if (state == '0') {
digitalWrite(ledPin, LOW); // LED OFF
state = 0;
}
// Leyendo el potenciómetro
potValue = analogRead(A0);
int potValueMapped = map(potValue, 0, 1023, 0, 255);
Serial.write(potValueMapped); // Envía potValue al servomotor
delay(10);
}Lenguaje: Arduino (arduino)/*
* Cómo configurar y emparejar dos Módulos Bluetooth HC-05
* by Dejan Nedelkovski, www.HowToMechatronics.com
* == CÓDIGO ESCLAVO ==
*/
#include <Servo.h>
#define button 8
Servo myServo;
int state = 20;
int buttonState = 0;
void setup() {
pinMode(button, INPUT);
myServo.attach(9);
Serial.begin(38400); // Velocidad de comunicación por defecto del módulo Bluetooth
}
void loop() {
if (Serial.available() > 0) {
state = Serial.read();
}
// Controlando el servomotor
myServo.write(state);
delay(10);
// Leyendo el botón
buttonState = digitalRead(button);
if (buttonState == HIGH) {
Serial.write('1'); // Envía '1' al maestro para encender LED
} else {
Serial.write('0');
}
}Lenguaje: Arduino (arduino)
Proceso de manufactura
- Verifica y calibra tu sensor de humedad para mediciones precisas
- Construye un Coche Bluetooth Controlado con Arduino Nano: Guía DIY Completa
- Cafetera inteligente con Arduino, control por Bluetooth y monitorización de temperatura
- Kit Robot Pick-and-Place Controlado por Bluetooth: Arduino UNO + Brazo 2-DOF y Chasis Smart Car
- Configurar NeoPixels con Vixen Lights y Arduino: Guía Paso a Paso
- Rastreo de orientación con Arduino y acelerómetro ADXL345: Guía paso a paso
- Control Inalámbrico de Coche Robot Arduino con HC-05, NRF24L01 y HC-12
- Acero para Herramientas Desmitificado: Composición, Fabricación y Aplicaciones Industriales
- Sierra de Cinta vs. Sierra Circular: Diferencias Clave Explicadas
- Bluetooth LE vs. XLE: La Próxima Generación en Seguimiento y Monitoreo de Activos
- Combinando Bluetooth y Ultrasound para Seguimiento de Ubicación en Tiempo Real Preciso y Rentable