
Controlar un LED de Arduino Mega desde el móvil mediante Bluetooth HC-05 y Kodular
En este proyecto vamos a conectar un módulo Bluetooth HC-05 a un Arduino Mega para controlar un LED desde un teléfono Android.
Primero comprobaremos que la comunicación Bluetooth funciona utilizando una aplicación de terminal serie Bluetooth. Después crearemos nuestra propia aplicación con Kodular, utilizando dos botones para encender y apagar el LED.
La idea es sencilla:
📱 MÓVIL
↕ Bluetooth
🔵 HC-05
↕ Serie
🤖 ARDUINO MEGA
↓
💡 LED
El proyecto utiliza Serial1 del Arduino Mega, dejando Serial libre para utilizar el Monitor Serie del ordenador. En el Mega, Serial1 corresponde a RX1 = pin 19 y TX1 = pin 18.
🧰 Material necesario
- Arduino Mega 2560
- Módulo Bluetooth HC-05
- LED
- Resistencia de unos 220 Ω
- Protoboard
- Cables Dupont
- Teléfono Android
- Cable USB para Arduino
- PC
- Cuenta en Kodular


🔌 1. Conectar el HC-05 al Arduino Mega
Vamos a utilizar Serial1 en lugar de Serial.
| HC-05 | Arduino Mega |
|---|---|
| VCC | 5V* |
| GND | GND |
| TXD | RX1 → pin 19 |
| RXD | TX1 → pin 18 |
El Mega dispone de varios puertos serie hardware y Serial1 utiliza precisamente 19 (RX) y 18 (TX).
⚠️ Importante: RX del HC-05
El pin RXD del HC-05 trabaja a nivel lógico de 3,3 V. Por ello, para una instalación cuidada, es recomendable colocar un divisor de tensión entre el TX1 del Mega y el RXD del HC-05.
Por ejemplo:
Arduino Mega TX1 (18)
│
1 kΩ
│
├──────── RXD HC-05
│
2 kΩ
│
GND
El TXD del HC-05 → RX1 del Mega puede conectarse directamente.
Nota: muchos HC-05 montados en placas adaptadoras aceptan 5 V en VCC, pero no hay que confundir la alimentación del módulo con el nivel lógico de su entrada RX.
💡 2. Conectar el LED
Para esta primera prueba utilizaremos el pin digital 2.
Pin 2 Arduino
│
220 Ω
│
LED
│
GND
Recuerda que el LED tiene polaridad:
- pata larga → resistencia/pin 2
- pata corta → GND
💻 3. Programar el Arduino Mega
Vamos a utilizar:
Serial→ comunicación con el ordenador.Serial1→ comunicación con el HC-05.
El programa entiende cuatro posibilidades:
| Comando | Acción |
|---|---|
1 | Encender LED |
A / a | Encender LED |
0 | Apagar LED |
B / b | Apagar LED |
Carga este programa en el Arduino:
/*
Control de LED por Bluetooth HC-05
Proyecto MONTESTEAM - IES Monterroso / AIDARAC
*/
const int pinLED = 2;
void setup() {
// LED como salida
pinMode(pinLED, OUTPUT);
digitalWrite(pinLED, LOW);
// Monitor Serie del ordenador
Serial.begin(9600);
// HC-05 conectado a Serial1
// RX1 = pin 19
// TX1 = pin 18
Serial1.begin(9600);
Serial.println("Sistema listo.");
Serial.println("Esperando comandos Bluetooth...");
Serial.println("'1' o 'A' = ON");
Serial.println("'0' o 'B' = OFF");
}
void loop() {
// ¿Ha llegado algún dato desde el móvil?
if (Serial1.available()) {
char orden = Serial1.read();
// Mostrar la orden recibida en el PC
Serial.print("Orden recibida: ");
Serial.println(orden);
// ENCENDER
if (orden == '1' || orden == 'A' || orden == 'a') {
digitalWrite(pinLED, HIGH);
Serial1.println("LED: ENCENDIDO");
Serial.println("-> LED Encendido");
}
// APAGAR
else if (orden == '0' || orden == 'B' || orden == 'b') {
digitalWrite(pinLED, LOW);
Serial1.println("LED: APAGADO");
Serial.println("-> LED Apagado");
}
}
}
🧪 4. Primera prueba: el Monitor Serie
Antes de utilizar el móvil vamos a comprobar que el Arduino funciona.
Conecta el Mega al ordenador mediante USB.
Abre el:
Monitor Serie
y selecciona:
9600 baudios
Deberías ver:
Sistema listo.
Esperando comandos Bluetooth...
'1' o 'A' = ON
'0' o 'B' = OFF
En este momento todavía no necesitamos enviar nada desde el PC.
📱 5. Comprobar el HC-05 con el móvil
Ahora vamos a comprobar el Bluetooth antes de crear nuestra aplicación.
En Android:
Ajustes → Bluetooth
Activa Bluetooth y busca dispositivos.
Debería aparecer:
HC-05
Selecciona el módulo y empareja el teléfono.
Si solicita un PIN, los códigos habituales son:
1234
o
0000
💡 ¿Qué significa el LED del HC-05?
Cuando está esperando una conexión suele parpadear rápidamente.
Cuando se establece la conexión Bluetooth, el patrón del LED cambia.
📲 6. Utilizar una aplicación de terminal Bluetooth
Antes de programar nuestra propia aplicación, utilizaremos una aplicación de terminal Bluetooth serie.
La finalidad es muy sencilla:
Móvil
↓
Bluetooth
↓
HC-05
↓
Serial1
↓
Arduino
↓
LED
Conecta la aplicación al dispositivo HC-05.
Una vez conectada, escribe:
1
y envíalo.
💡 El LED debería:
🟢 ENCENDERSE
Ahora envía:
0
El LED debería:
⚫ APAGARSE
🎉 Si esto funciona…
Tenemos comprobado que:
Arduino → HC-05 → Bluetooth → móvil
funciona correctamente.
Y esto es importante: todavía no hemos utilizado Kodular.
Primero comprobamos el hardware y la comunicación con una herramienta sencilla. Así, si posteriormente nuestra aplicación tiene algún problema, sabemos que no está en el Arduino ni en el HC-05.
🧩 7. Crear nuestra propia aplicación con Kodular
Ahora sí vamos a crear nuestra aplicación.
Entramos en:
Creamos un proyecto nuevo.
Por ejemplo:
ControlBluetoothHC05
Kodular permite crear aplicaciones Android mediante programación visual por bloques. Su componente Bluetooth Client permite conectarse a dispositivos Bluetooth mediante el perfil serie SPP y enviar texto.
🎨 8. Diseñar la interfaz
Nuestra interfaz será muy sencilla.
Necesitamos:
Componentes visibles
ListPicker
- Nombre:
ListPickerBT - Texto:
Conectar Bluetooth
Label
- Nombre:
labelEstado - Texto:
Desconectado
Button
- Nombre:
bOn - Texto:
Encender
Button
- Nombre:
bOff - Texto:
Apagar
Componente no visible
Añadimos:
Bluetooth Client
Kodular lo colocará debajo de la pantalla porque es un componente no visible.
Lo llamaremos:
Bluetooth_Client1
El componente dispone, entre otras funciones, de AddressesAndNames, Connect y SendText, que son precisamente las que necesitamos para este proyecto.
🧱 9. Programar la conexión Bluetooth
Ahora pasamos a Bloques.
Antes de seleccionar un dispositivo
Utilizamos:
when ListPickerBT.BeforePicking
do
set ListPickerBT.Elements
to Bluetooth_Client1.AddressesAndNames
Esto hace que, cuando pulsemos el botón de conexión, aparezca la lista de dispositivos Bluetooth emparejados.
🔗 10. Conectar con el HC-05
Después utilizamos:
when ListPickerBT.AfterPicking
do
if Bluetooth_Client1.Connect
address = selection
then
set labelEstado.Text to "Conectado"
else
set labelEstado.Text to "Error al conectar"
Es exactamente la estructura que aparece en nuestra prueba.
El método Connect devuelve verdadero o falso, dependiendo de si la conexión SPP se ha establecido correctamente.
🟢 11. Botón ENCENDER
Creamos:
when bOn.Click
do
call Bluetooth_Client1.SendText
text = "1"
Cuando el usuario pulse:
ENCENDER
Kodular enviará:
1
El Arduino recibe ese carácter y ejecuta:
digitalWrite(pinLED, HIGH);
💡 LED encendido.
🔴 12. Botón APAGAR
Creamos:
when bOff.Click
do
call Bluetooth_Client1.SendText
text = "0"
Arduino recibe:
0
y ejecuta:
digitalWrite(pinLED, LOW);
💡 LED apagado.
📱 13. Probar la aplicación con Kodular Companion
Una de las ventajas de Kodular es que no necesitamos generar e instalar un APK cada vez que hacemos un pequeño cambio.
Podemos utilizar:
Kodular Companion
La documentación de Kodular explica que Companion permite ver en el teléfono los cambios realizados en el proyecto prácticamente en tiempo real.
Descargamos Kodular Companion en el móvil y, desde Kodular Creator, utilizamos:
Test → Companion
Podemos conectarlo mediante Wi-Fi escaneando el código QR que muestra Kodular Creator.
⚠️ 14. Permiso Bluetooth en Android
Al ejecutar la aplicación por primera vez, Android puede solicitar permiso para acceder a dispositivos Bluetooth.
Debemos permitir:
Dispositivos cercanos
Esto es normal.
Las versiones actuales del componente Bluetooth Client de Kodular utilizan permisos como BLUETOOTH_SCAN y BLUETOOTH_CONNECT en Android moderno.
Si el permiso se rechaza, podemos volver a activarlo desde:
Ajustes → Aplicaciones → nuestra aplicación → Permisos → Dispositivos cercanos
🧪 15. Nuestra prueba final
Con todo conectado:
① Encendemos el Arduino
El HC-05 comienza a funcionar.
② Abrimos nuestra aplicación
Pulsamos:
Conectar Bluetooth
③ Seleccionamos:
HC-05
El estado debería cambiar a:
🟢 Conectado
④ Pulsamos:
Encender
💡 El LED se enciende.
⑤ Pulsamos:
Apagar
💡 El LED se apaga.
🎯 ¿Qué hemos aprendido?
Aunque el proyecto es sencillo, aquí hemos utilizado varias tecnologías diferentes:
Arduino Mega
→ programación y control de entradas/salidas.
Serial1
→ comunicación serie hardware.
HC-05
→ comunicación Bluetooth clásica.
Android
→ conexión Bluetooth con el dispositivo.
Kodular
→ creación de una aplicación móvil mediante programación por bloques.
Y hemos construido una pequeña cadena de comunicación:
┌──────────────┐
│ KODULAR │
│ 📱 │
└──────┬───────┘
│
│ Bluetooth
▼
┌──────────────┐
│ HC-05 │
│ 🔵 │
└──────┬───────┘
│
│ Serial1
▼
┌──────────────┐
│ ARDUINO MEGA │
│ 🤖 │
└──────┬───────┘
│
│ Pin 2
▼
💡
Y lo mejor es que a partir de aquí podemos complicarlo todo lo que queramos: sensores, temperatura, motores, servos, pantallas, órdenes, recepción de datos, etc.
🚀 Siguiente paso
Una evolución muy interesante sería hacer el proyecto bidireccional.
Hasta ahora:
📱 → Arduino
El móvil manda órdenes.
El siguiente proyecto sería:
📱 ↔ Arduino
Por ejemplo, que Arduino envíe:
Temperatura: 24.6 ºC
Humedad: 58 %
Luz: 734
y que Kodular lo muestre en tiempo real en la pantalla del móvil.
Ahí ya tendríamos una pequeña estación de monitorización Bluetooth.
📚 Recursos
- Kodular Creator
- Documentación oficial de Bluetooth Client de Kodular
- Kodular Companion y desarrollo en directo
- Documentación de conexión de Kodular Companion por Wi-Fi
- Documentación oficial de Arduino sobre Serial

Etiqueta:AIDARAC, aplicación Android Arduino, aplicación móvil Arduino, Arduino Android, Arduino Bluetooth, Arduino Mega, Arduino Mega Bluetooth, Bluetooth Arduino, BluetoothClient Kodular, control LED Bluetooth, controlar Arduino desde móvil, HC-05, HC-05 Android, ies monterroso, iesmonterroso, Kodular, Kodular Bluetooth, LED Arduino, montesteam, pin 18 Arduino Mega, pin 19 Arduino Mega, programación educativa, programación por bloques, Robótica educativa, RX1 TX1 Arduino Mega, Serial1 Arduino Mega, stem, tecnología educativa



