3/2/2022 Módulo bluetooth
Módulo bluetooth HC-05
Encender LEDs desde el móvil
1. Configurar el módulo bluetooth
Para poder configurar el dispositivo es necesario pasarlo primero a modo configuración, para lo que hay que mantener pulsado el botón de este durante 5 segundos tras ser conectado. Una vez realizada esta acción, el LED empieza a parpadear lentamente. Está listo para ser configurado.
Mediante un programa básico como el siguiente, podemos acceder y modificar las características del dispositivo usando comandos precedidos de AT+ (si el comando acaba en '?' devuelve el valor actual de la variable, mientras que si acaba en = y un número, modifica la característica):
- AT+NAME: Nombre del dispositivo
- AT+PSED: Contraseña del dispositivo
- AT+UART: Cambia parámetros de comunicación (en baudios)
- AT+ROLE: Cambia el rol (0=esclavo, 1=maestro)
- AT+ORGL: Reinicia de fábrica
- AT+RESET: Retorna al modo usuario
2. Conectar la aplicación
En este montaje se ha utilizado la aplicación de BlueTooth Serial Controller.
Se instala desde la App/Play Store y nos va a permitir comunicarnos con el módulo bluetooth. Configuramos los botones en el icono de la llave (preferences) y le asignamos a cada botón, por un lado el nombre de acuerdo a su función y su comando, es decir, qué va a enviar cuando lo pulsemos.
Una vez configurado, emparejamos el dispositivo bluetooth (aparecerá con el nombre introducido anteriormente).
3. Encender los LEDs
Se realiza un montaje sencillo para conectar dos LEDs al circuito en sus respectivos pines. En cuanto al programa, la estructura es muy sencilla mediante 'ifs' que se activan cuando se recibe un valor por bluetooth (1,2 o 3) (los valores que le habíamos asignado antes a cada botón).
#include <SoftwareSerial.h>
SoftwareSerial miBT (10, 11);
char DATO = 0;
int LEDROJO = 2;
int LEDVERDE = 3;
int BRILLO = 0;
void setup() {
Serial.begin (9600);
miBT.begin (9600);
pinMode (LEDROJO, OUTPUT);
pinMode (LEDVERDE, OUTPUT);
}
void loop() {
if (miBT.available()) {
DATO = miBT.read();
Serial.println(DATO);
if (DATO =='1') digitalWrite (LEDROJO, !digitalRead(LEDROJO));
if (DATO =='2') {
BRILLO=BRILLO+10;
if (BRILLO>255)
BRILLO=255;
analogWrite (LEDVERDE, BRILLO);
}
if (DATO =='3') {
BRILLO=BRILLO-10;
if (BRILLO<0)
BRILLO=0;
analogWrite (LEDVERDE, BRILLO);
}
}
}
4. Mejoras
En el programa inicial, se utilizaban 4 botones. Dos para encender el LED rojo y dos para el verde. Mediante la intrucción '!' delante del digitalRead, podemos pedirle que lea el valor y lo cambie, ahorrándonos dos botones.
La segunda mejora consiste en variar la intensidad del LED verde con un tercer botón, puesto que este está conectado a un PIN PWM y podemos controlarlo.
Comentarios
Publicar un comentario