Robot móvil con Bluetooth (HC-05 / HC-06)

Guía práctica: componentes, montaje, cableado y código Arduino. Control mediante app Bluetooth o control remoto por comandos.

Donaciones Aquí

1 — Materiales

Ir a la Tienda

2 — Principio de funcionamiento

El módulo HC-05 crea un enlace serial inalámbrico entre el Arduino y un teléfono. El teléfono envía caracteres (por ejemplo: F adelante, B atrás, L izquierda, R derecha, S stop). Arduino lee esos caracteres por Serial (o Serial1 en placas con puerto hardware extra) y activa los pines del driver de motor para mover los motores.

3 — Diagrama de conexiones (resumen)

Conexiones básicas

  • HC-05: VCC -> 5V (o 3.3V según módulo), GND -> GND
  • HC-05 TX -> Arduino RX (pin 0) (opcional usar SoftwareSerial)
  • HC-05 RX -> Arduino TX (pin 1) (si el módulo usa 3.3V RX, usar divisor de tensión)
  • Driver L298N ENA/ENB y entradas IN1..IN4 -> pines digitales de Arduino
  • Motores -> Salidas del driver; Batería externa -> VIN del driver (no alimentar motores desde 5V del Arduino)

Mapa de pines ejemplo (Arduino Uno)

  • IN1 -> D8
  • IN2 -> D9
  • IN3 -> D10
  • IN4 -> D11
  • HC-05 TX -> Arduino D2 (SoftwareSerial RX)
  • HC-05 RX -> Arduino D3 (SoftwareSerial TX) *

*Si prefieres usar el puerto serial hardware (Serial) desconecta HC-05 de los pines 0/1 cuando cargues el sketch y vuelve a conectar para la comunicación por Bluetooth.

Esquema ASCII rápido

  [HC-05]         [Arduino UNO]        [L298N]         [Motor A]   [Motor B]
  VCC  -------+---> 5V
  GND  -------+---> GND   -----------------------> GND
  TX   -----> D2 (RX SoftwareSerial)
  RX   <----- D3 (TX SoftwareSerial)  (con divisor de tensión)

  Arduino D8 ---> IN1 (L298)
  Arduino D9 ---> IN2 (L298)
  Arduino D10 --> IN3 (L298)
  Arduino D11 --> IN4 (L298)

  L298N OUT1/OUT2 -> Motor A
  L298N OUT3/OUT4 -> Motor B
  Batería (7-12V) -> L298N VCC (motores)
Galería de Videos - Tarjetas YouTube

4 — Código Arduino (ejemplo simple)

Este sketch usa la librería SoftwareSerial para comunicar con HC-05. Envía comandos simples: F, B, L, R, S. Ajusta pines si usas otro driver o placa.

// Robot Bluetooth básico - HC-05 (SoftwareSerial)
#include <SoftwareSerial.h>

// Pines motores (L298N ejemplo)
const int in1 = 8;
const int in2 = 9;
const int in3 = 10;
const int in4 = 11;

// Pines SoftwareSerial para HC-05
SoftwareSerial bt(2, 3); // RX, TX

void setup(){
  Serial.begin(9600);
  bt.begin(9600); // HC-05 default

  pinMode(in1, OUTPUT); pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT); pinMode(in4, OUTPUT);

  stopMotors();
}

void loop(){
  if(bt.available()){
    char cmd = bt.read();
    Serial.print("Recibido: "); Serial.println(cmd);
    handleCommand(cmd);
  }
  // opcional: leer sensores, estado batería, etc.
}

void handleCommand(char c){
  switch(c){
    case 'F': forward(); break;
    case 'B': backward(); break;
    case 'L': left(); break;
    case 'R': right(); break;
    case 'S': stopMotors(); break;
    default: stopMotors(); break;
  }
}

void forward(){
  digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
  digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
}
void backward(){
  digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
  digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
}
void left(){
  digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
  digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
}
void right(){
  digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
  digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
}
void stopMotors(){
  digitalWrite(in1, LOW); digitalWrite(in2, LOW);
  digitalWrite(in3, LOW); digitalWrite(in4, LOW);
}

Nota: si tus motores necesitan control de velocidad, conecta ENA/ENB del L298 a pines PWM y usa analogWrite().

5 — Cómo controlar desde el teléfono

  1. Instala una app de terminal Bluetooth como "Bluetooth Terminal HC-05" o "Serial Bluetooth Terminal".
  2. Empareja el HC-05 desde los ajustes Bluetooth (código por defecto: 1234 o 0000).
  3. En la app, conéctate al HC-05 y envía una letra: F para adelante, etc.

Si prefieres botones, muchas apps permiten crear botones que envíen cadenas específicas. También puedes crear tu propia app con MIT App Inventor o un pequeño app Android que envíe comandos por Bluetooth.

6 — Buenas prácticas y seguridad

7 — Extensiones recomendadas

8 — Recursos y plantillas

Puedes copiar este archivo como plantilla HTML para documentar tu proyecto o compartirlo con otras personas. Si quieres, puedo:

Usar este tutorial

Libros y Articulos recomendados

Recursos recomendados:

Catalogo de proyectos

Recursos recomendados: