¿Te imaginas prender y apagar una luz desde tu celular, sin tocar ningún interruptor? Ese es el primer gran "momento maker" de mucha gente, y se logra con dos cosas baratas: una placa Arduino y un módulo Bluetooth HC-06. En este tutorial vas a armar exactamente eso. Mandas un 1 desde una app en tu teléfono y se enciende el LED de la placa; mandas un 0 y se apaga. Al terminar vas a entender cómo viaja un dato por Bluetooth hasta el Arduino y cómo leerlo en tu código, que es la base para controlar motores, relés, luces RGB o lo que se te ocurra después.

Qué es el HC-06 y por qué se usa tanto
El HC-06 es un módulo Bluetooth clásico (SPP, perfil de puerto serie) que convierte una conexión inalámbrica en una comunicación serial común y corriente. Para el Arduino es como hablar por el puerto serie de siempre: no necesita librerías raras, solo Serial.
Tres razones lo hicieron el favorito de los makers:
- Consumo bajísimo: alrededor de 8 mA en transmisión o recepción activa, y todavía menos en espera. Eso lo hace ideal para proyectos a batería que tienen que durar horas.
- Memoria de emparejamiento: una vez que se vincula con tu celular, lo recuerda y no vuelve a pedir validación. La clave por defecto es
1234o0000. - Lógica de 3,3 V: trabaja a la misma tensión que muchos microcontroladores, lo que simplifica el cableado.
Una aclaración técnica importante que conviene tener clara desde el principio: el HC-06 es esclavo (slave). Solo puede aceptar conexiones, no iniciarlas. Por eso el que "busca y se conecta" siempre es tu teléfono. Si más adelante quieres que dos Arduinos hablen entre sí, vas a necesitar un HC-05, que sí puede actuar como maestro.
Materiales
Para este proyecto necesitas poco y nada:
- Módulo Bluetooth HC-06 (el protagonista).
- Arduino (sirve un Uno R3, que es el más común para empezar).
- Cables jumper macho a hembra, para conectar los pines del módulo a la placa.
- Un teléfono Android con Bluetooth y una app de comunicación serial (más abajo te explico cuál).
No necesitas LED externo ni resistencia: vamos a usar el LED que ya viene soldado en la placa, conectado al pin 13. Eso baja la barrera de entrada a cero.
Conexiones: respeta el cruce TX y RX
Esta es la parte donde más gente se equivoca, así que vamos despacio. El módulo tiene cuatro pines que nos interesan: VCC, GND, TX y RX. La conexión al Arduino queda así:
- VCC del HC-06 va a 3,3 V del Arduino.
- GND del HC-06 va a GND del Arduino.
- TX del HC-06 va a RX del Arduino (pin 0).
- RX del HC-06 va a TX del Arduino (pin 1).

El detalle clave es el cruce de TX y RX. En comunicación serial, lo que uno transmite (TX) el otro lo tiene que recibir (RX). Si conectas TX con TX, ambos quedan "hablando" al mismo tiempo y nadie escucha: no funciona. Por eso el TX del módulo siempre va al RX de la placa, y viceversa.
Un punto de cuidado real: el HC-06 trabaja con lógica de 3,3 V en su pin RX, mientras que el Arduino Uno transmite a 5 V por su TX. Para un primer proyecto de prueba suele andar sin problemas, pero si lo vas a dejar funcionando de forma permanente, lo correcto es bajar esos 5 V con un divisor de tensión (por ejemplo, una resistencia de 1 kΩ y otra de 2 kΩ) o un conversor de niveles lógicos, para no estresar la entrada del módulo a largo plazo.
El código: cárgalo ANTES de conectar el módulo
Acá hay una regla de oro que evita el error más típico del HC-06. Los pines TX y RX del Arduino Uno (0 y 1) son los mismos que usa el cable USB para programar la placa. Eso significa que no puedes cargar código y tener el Bluetooth conectado al mismo tiempo: chocan en el mismo canal.
El flujo correcto es:
- Desconecta el módulo HC-06 de los pines 0 y 1.
- Carga el código al Arduino por USB.
- Recién ahí vuelve a conectar el HC-06.
Cada vez que quieras subir un código nuevo, repite el paso de desconectar el módulo primero.
Este es el sketch completo. Cárgalo tal cual a tu Arduino:
/*ElectroCrea.com
Modulo Bluetooth HC-06 Arduino
---------------------------------
VCC 3.3V
GND GND
TX RX
RX TX
*/
int led = 13;
int state = 0;
int flag = 0;
////////////////////////////////////////////////////////////////////VOID SETUP
void setup() {
pinMode(led, OUTPUT);
digitalWrite(led, LOW);//Iniciamos con el led apagado
Serial.begin(9600);
flag=0;
}
////////////////////////////////////////////////////////////////////VOID LOOP
void loop() {
if(Serial.available() > 0){
state = Serial.read();
flag=0;
}
if (state == '1') {//Envíe el el numero uno para encender el led
digitalWrite(led, HIGH);
if(flag==0){
Serial.println("LED: Encendido");
flag=1;
}
}
else if (state == '0') {//Envíe el el numero cero para apagar el led
digitalWrite(led, LOW);
if(flag==0){
Serial.println("LED: Apagado");
flag=1;
}
}
}
//Mas información en ElectroCrea.com
¿Qué hace el programa, en simple? En setup() configura el pin 13 como salida y arranca el puerto serie a 9600 baudios (la velocidad por defecto del HC-06, importante que coincida). En loop() revisa si llegó algún dato con Serial.available(). Si llega el carácter '1', enciende el LED y manda por serial el texto LED: Encendido. Si llega '0', lo apaga y avisa LED: Apagado.
La variable flag es un detalle elegante: evita que el mensaje de texto se repita en bucle mientras mantienes presionado el botón. Solo se imprime una vez por cambio de estado. Ojo con un punto: el código compara contra los caracteres '1' y '0' (con comillas simples), no contra los números 1 y 0. Esto importa porque la app envía texto, no valores numéricos crudos.
La app: ArduinoRC en modo Terminal
Para mandar los datos desde el celular vamos a usar la app ArduinoRC (el nombre puede variar según la tienda de apps). Sirve cualquier app de comunicación serial Bluetooth; esta se recomienda por lo simple y completa que es. Si prefieres otra, funciona igual mientras pueda enviar caracteres.
Con todo conectado, activa el Bluetooth en tu teléfono y empareja el módulo (clave 1234 o 0000). Abre la app, dale a "proceed" y selecciona tu módulo HC-06 desde la lista.

ArduinoRC trae varios modos para enviar datos. Para este proyecto el que nos sirve es Terminal Mode, que te deja escribir y enviar caracteres a mano. Ahí mandas un 1 para encender el LED y un 0 para apagarlo.

Si quieres comprobar que el Arduino está recibiendo bien, la propia app (o el monitor serial cuando lo tengas conectado por USB sin el módulo) te va a mostrar las respuestas LED: Encendido y LED: Apagado. Ese eco es la confirmación de que el dato cruzó por Bluetooth y el código lo interpretó.
Variantes y mejoras
Una vez que tengas el LED respondiendo, este proyecto es un trampolín. Algunas ideas para llevarlo más lejos:
- Controla algo de verdad: cambia el LED del pin 13 por un módulo relé. Con eso enciendes una ampolleta de 220 V, un ventilador o una bomba de agua desde el celular. El código casi no cambia: el relé se maneja con el mismo
digitalWrite. - Libera los pines 0 y 1 con SoftwareSerial: para no pelear con el USB cada vez que programas, conecta el HC-06 a otros dos pines digitales (por ejemplo D10 y D11) y usa la librería
SoftwareSerial. Así puedes dejar el módulo enchufado y seguir subiendo código sin desconectar nada. - Manda comandos en vez de un solo carácter: en lugar de
1y0, puedes leer palabras completas (ON,OFF,ROJO,VERDE) conSerial.readStringUntil('\n')y controlar varios dispositivos o una tira de LEDs RGB con la misma conexión. - Recibe datos de vuelta: como la comunicación es bidireccional, puedes leer un sensor (temperatura, humedad) y enviar el valor al teléfono para mostrarlo en pantalla. Tendrías un mini panel de monitoreo inalámbrico.
Personalización para Chile
Lo bueno de este proyecto es que todo se consigue en stock local, sin esperar importaciones. En MechatronicStore tienes los componentes principales:
- Módulo Bluetooth HC-06 (SKU GR3-2) por $7.990 CLP. Es exactamente el del tutorial, con sus pines VCC, GND, TX y RX.
- Arduino Uno R3 (SKU X4-8) por $9.990 CLP. La placa estándar para arrancar, con su LED integrado en el pin 13 ya listo para usar.
Para el cableado vas a necesitar cables jumper macho a hembra (el extremo macho entra en los pines del módulo y el hembra calza en los headers del Arduino). Si en algún tutorial en inglés ves que recomiendan un "Arduino Genuino" o una placa de otra marca, el Arduino Uno R3 compatible cumple la misma función para este proyecto y es la opción más económica para partir.
Recursos
- Tutorial original: Módulo Bluetooth HC-06 por Alberto Cárdenas en ElectroCrea.
- Código del proyecto (.ino): Modulo_Bluetooth_HC06.ino
- App recomendada: ArduinoRC (búscala en la tienda de apps de Android).
Tutorial basado en el trabajo original de ElectroCrea, reescrito y ampliado con contexto técnico y componentes en stock local en MechatronicStore.



