En este proyecto construiremos un robot controlado por Bluetooth utilizando un Arduino Nano V3, el driver TB6612FNG para controlar los motores, y el módulo Bluetooth HC-05 para recibir comandos inalámbricos desde un smartphone con la aplicación Serial Bluetooth Terminal
La App la puedes descargar desde aquí
https://play.google.com/store/apps/details?id=de.kai_morich.serial_bluetooth_terminal&pli=1
Este montaje permite manejar el robot en dirección y velocidad con rampas suaves, ideal para movimientos más realistas y seguros.
Materiales necesarios
- Arduino Nano V3 – Microcontrolador principal que ejecuta el programa.
- Driver TB6612FNG – Controla los motores de manera independiente y eficiente.
- Módulo Bluetooth HC-05 (V2 LE 4.0) – Permite la comunicación inalámbrica con el robot.
- 4 Motores DC (dos pares en paralelo para mayor potencia).
- Batería LiPo o pack de pilas de 7.4 V – Alimentación de los motores.
- Protoboard o Protoshield Nano para facilitar las conexiones.
- Cables Dupont y chasis de robot.
Módulo Bluetooth HC-05
El HC-05 es ampliamente utilizado en proyectos de mecatrónica y electrónica para comunicación inalámbrica entre microcontroladores, PC o dispositivos móviles.
Puede funcionar en modo maestro o esclavo, emulando un puerto serie.
Características principales:
- Voltaje de funcionamiento: 3.3 ~ 5 VDC
- Versión Bluetooth: V2.0 + EDR
- Velocidad de transmisión (Baud Rate): 9600, 8, 1
- Rango de señal: hasta 10 m
- Modos: Esclavo / Maestro
Comandos AT más usados:
AT
→ Testear comunicación.AT+NAME?
/AT+NAME=
→ Ver o cambiar el nombre del dispositivo.AT+PSWD?
/AT+PSWD=
→ Modificar contraseña (requiere 6 dígitos en V2).AT+UART?
/AT+UART=
→ Cambiar baudrate.AT+ROLE?
/AT+ROLE=
→ Definir rol (0=Esclavo, 1=Maestro).AT+RESET
→ Reiniciar el módulo.
Diagrama de conexiones para configurar el HC-05
Código de Ejemplo para configurar el HC-05 con Arduino
En la versión V2 del Módulo HC-05 BLE no es necesario trabajar en modo AT2, el módulo inicia en modo de configuración por un momento breve. Puedes conectarlo y empezar a enviar comandos. (Abre la Terminal, Selecciona “Desplazamiento automático” y “Ambos NL & CR” y 38400 para modo AT2 o 9600 para modo AT1 en módulos V2 BLE) Para otras versiones anteriores es necesario mantener presionado el botón de configuración en el módulo o colocar el pin de EN a positivo antes de energizar el modulo para acceder a modo AT2 y en el sketch cambiar la velocidad del objeto “miBT” a 38400 bps.
En nuestro caso validaremos el nombre, velocidad de operación, contraseña y rol, el cual será (0=Esclavo).
AT Testear comunicación.
RESPUESTA: OK
AT+NAME?
RESPUESTA: HC-05
AT+NAME= cambiar el nombre del dispositivo.
AT+PSWD?
RESPUESTA: 1234 (si el módulo es V2 no tiene clave establecida)
AT+PSWD= Modificar contraseña (requiere 6 dígitos en V2).
AT+UART?
RESPUESTA: 9600,0,0
AT+UART= Cambiar baudrate. (4800, 9600, 19200, 38400, 57600, 115200)
AT+ROLE= Definir rol (0=Esclavo, 1=Maestro).
AT+RESET Reiniciar el módulo.
Importante: Existen versiones HC-05 V2.3_LE que utilizan Bluetooth 4.0 BLE en lugar de 2.0 SPP, lo que puede generar incompatibilidades con algunas apps clásicas.
Pinout de los módulos
Arduino Nano V3
El Arduino Nano utiliza el microcontrolador ATmega328p y ofrece pines digitales y analógicos en un formato compacto. (Algunas placas genéricas utilizan una versión antigua del gestor de arranque, si tienes problemas para subir el sketch considera cambiarla antes de subirlo a la placa)
- Alimentación: 5 V (USB o pin VIN).
- Pines de control: D2-D13, A0-A7.
- Comunicación serie: D0 (RX) y D1 (TX).
Driver TB6612FNG
Permite controlar dos canales de motor DC de forma independiente.
- AIN1 / AIN2 / PWMA: Control canal A.
- BIN1 / BIN2 / PWMB: Control canal B.
- STBY: Habilita el chip.
- VM: Alimentación motores (hasta 13.5 V).
- VCC: Lógica (5 V).
- GND: Tierra común.
Librería necesaria
https://github.com/sparkfun/SparkFun_TB6612FNG_Arduino_Library
Conexiones utilizadas en este proyecto
Componente | Pin Arduino |
---|---|
TB6612 AIN1 | D2 |
TB6612 AIN2 | D4 |
TB6612 PWMA | D5 |
TB6612 BIN1 | D7 |
TB6612 BIN2 | D8 |
TB6612 PWMB | D6 |
TB6612 STBY | D9 |
Bluetooth RX | D10 |
Bluetooth TX | D11 |
Motores | Salidas A y B (pares en paralelo) |
Diagrama de conexiones
Funcionamiento del código
El programa recibe comandos de un carácter desde la aplicación Bluetooth:
F
→ Avanzar.B
→ Retroceder.L
→ Girar a la izquierda.R
→ Girar a la derecha.S
→ Detener.
Se implementa una rampa de aceleración para aumentar o disminuir la velocidad gradualmente, evitando movimientos bruscos que puedan dañar los motores.