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
(El parámetro de comunicación debe coincidir con el introducido en el IDE, ya sea 9600 o 38400)

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