Control de Servomotor por Bluetooth con Arduino Uno y HC-05
Componentes y Suministros
| Componente | Descripción | Cantidad |
|---|---|---|
| Arduino UNO | 1 | |
| Micro-servomotor SG90 | 1 | |
| Módulo Bluetooth HC-05 | 1 | |
| Protoboard (genérica) | 1 | |
| Cables puente (genéricos) | 1 |
Aplicaciones y Servicios Online
- Arduino IDE
Sobre este Proyecto
En este proyecto te mostraré cómo controlar un servomotor con la ayuda de una aplicación para smartphone a través de Bluetooth.
Para este proyecto usaremos un módulo Bluetooth HC-05 con un Arduino Uno para controlar un servo de 9g.
¿Cómo Funciona este Proyecto?
Este proyecto tiene dos partes:
- La aplicación Android: Esta aplicación enviará varios paquetes de datos a nuestro módulo Bluetooth HC-05. (Haz clic aquí para descargar la aplicación). Nota: Esta app no fue desarrollada por mí.
- El hardware: Consiste en el módulo Bluetooth HC-05, un Arduino Uno y un servomotor.
Funcionamiento Detallado
La app Android envía paquetes de datos al módulo Bluetooth. El módulo envía estos datos al Arduino Uno a través de comunicación serie. El Arduino está programado para generar la señal de control para el servomotor dependiendo del valor del paquete de datos. Aquí hay un diagrama de flujo para mejor comprensión:

Cómo Empezar
- Descarga la aplicación Android. (Haz clic aquí)
- Sube el código al Arduino Uno.
- Realiza las conexiones. Importante: El módulo Bluetooth HC-05 debe conectarse a 3.3V y no a 5V VCC, ya que puede dañar el módulo.
- Conecta el módulo Bluetooth a la app Android: Al alimentar el hardware, el módulo Bluetooth será visible. Abre la aplicación y haz clic en "buscar dispositivos cercanos". Selecciona HC-05. Una vez que muestre "conectado", ¡estás listo!
Puedes usar el deslizador o ingresar el valor manualmente para controlar el brazo del servo.
Código
Bluetooth controlled servo (C/C++)
Este código se sube al Arduino Uno.
#include <SoftwareSerial.h>
#include <Servo.h>
Servo x;
int bttx = 9; // TX del módulo Bluetooth conectado al pin 9 de Arduino
int btrx = 10; // RX del módulo Bluetooth conectado al pin 10 de Arduino
SoftwareSerial bluetooth(bttx, btrx);
void setup() {
x.attach(11); // Servo conectado al pin 11 de Arduino
Serial.begin(9600);
bluetooth.begin(9600);
}
void loop() {
if(bluetooth.available() > 0) { // Si el módulo Bluetooth está transmitiendo datos
int pos = bluetooth.read(); // Almacena el dato en variable pos
Serial.println(pos);
x.write(pos); // Mueve la cabeza del servo a la posición dada
}
}
Esquemáticos
Así es como debe hacerse el circuito:

Proceso de manufactura
- Construya un robot Raspberry Pi controlado por Bluetooth con retroalimentación de audio
- Crea un Impresionante Sistema Ambilight para Monitor con Arduino
- Construya el clásico juego Pong en Arduino UNO con pantalla OLED: Tutorial paso a paso
- Transforma un viejo coche RC en un vehículo controlado por joystick con Arduino
- Detector de frecuencia de audio con Arduino – Mide los picos de sonido más intensos
- Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
- Construye tu Propio Tamagotchi con Arduino: Mascota Digital DIY
- Tres en raya con Arduino, matriz LED MAX7219 y carcasa de cartón
- Construye un robot controlado por voz con Arduino Nano
- Construye un Temporizador Regresivo Fiable con Arduino y Pantalla de 7 Segmentos SparkFun
- Electrodomésticos activados por voz: Control Bluetooth con Google Assistant