Módulo HC-05: Introducción y Uso

El módulo HC-05 es un módulo Bluetooth que permite la comunicación inalámbrica entre dispositivos electrónicos.

Generalidades

El HC-05 es un módulo Bluetooth con capacidad para actuar como maestro o esclavo. Puede establecer conexiones inalámbricas con otros dispositivos habilitados para Bluetooth, como teléfonos móviles y computadoras.

Módulo HC-05

Conexiones

El HC-05 generalmente tiene cuatro pines:

Modos de Uso

El HC-05 puede operar en diferentes modos:

Ejemplo de Uso

Aquí tienes un ejemplo sencillo de cómo interactuar con el HC-05 desde Arduino:

    void setup() {
        Serial.begin(9600);
    }

    void loop() {
        if (Serial.available() > 0) {
            char incomingData = Serial.read();
            Serial.print("Dato recibido: ");
            Serial.println(incomingData);
        }
    }
    
Recepción de Caracteres por Puerto Serie

Recepción de Caracteres por Puerto Serie

Este ejemplo demuestra cómo recibir caracteres por puerto serie en Arduino y mostrarlos en el Monitor Serie.

Configuración

Antes de ejecutar este ejemplo, asegúrate de haber configurado correctamente la comunicación serie en Arduino y en tu dispositivo emisor.

Código Arduino

void setup() {
  Serial.begin(9600); // Iniciar comunicación por USB
}

void loop() {
  if (Serial.available()) {
    char receivedChar = Serial.read(); // Leer el carácter recibido
    Serial.print("Carácter recibido: ");
    Serial.println(receivedChar);
  }
}
    

Ejecución

  1. Carga el código en tu Arduino.
  2. Abre el Monitor Serie en Arduino.
  3. Envía caracteres desde tu dispositivo emisor (por ejemplo, una computadora) a través de la comunicación serie.
  4. Observa cómo los caracteres recibidos se muestran en el Monitor Serie.

Este ejemplo es básico y está diseñado para ilustrar la recepción de caracteres por puerto serie en Arduino. Puedes adaptar y expandir este concepto para proyectos más complejos.

Este código lee datos del módulo HC-05 y los imprime en el Monitor Serie de Arduino.

Recuerda revisar las especificaciones del módulo y consultar la documentación para obtener información detallada sobre los comandos y modos de operación.

Uso de Serial.readString()

Este ejemplo demuestra cómo utilizar la función Serial.readString() para recibir un string por puerto serie en Arduino y mostrarlo en el Monitor Serie.

Configuración

Antes de ejecutar este ejemplo, asegúrate de haber configurado correctamente la comunicación serie en Arduino y en tu dispositivo emisor. Envía un string seguido de un salto de línea.

Código Arduino

void setup() {
  Serial.begin(9600); // Iniciar comunicación por USB
}

void loop() {
  if (Serial.available()) {
    String receivedString = Serial.readString(); // Leer el string completo
    
    // Mostrar el string recibido
    Serial.print("String recibido: ");
    Serial.println(receivedString);
  }
}

Ejecución

  1. Carga el código en tu Arduino.
  2. Abre el Monitor Serie en Arduino.
  3. Envía un string desde tu dispositivo emisor (por ejemplo, una computadora) a través de la comunicación serie, seguido de un salto de línea.
  4. Observa cómo el string recibido se muestra en el Monitor Serie.

Este ejemplo es básico y está diseñado para ilustrar el uso de Serial.readString() en Arduino. Puedes adaptar y expandir este concepto para proyectos más complejos.

La biblioteca SoftwareSerial es una biblioteca estándar en el entorno de programación de Arduino que permite crear puertos serie virtuales en pines digitales que normalmente no están designados para la comunicación serial. Esto es especialmente útil cuando tu Arduino tiene un número limitado de pines de comunicación serie hardware (como los pines RX y TX que generalmente se utilizan para la comunicación con USB o Bluetooth), y deseas comunicarte con varios dispositivos serie a la vez. Aquí hay algunos puntos clave sobre la biblioteca SoftwareSerial: Puertos Serie Virtuales: SoftwareSerial permite crear hasta múltiples puertos serie virtuales en pines digitales específicos de tu elección. Comunicación Half-Duplex: A diferencia de la comunicación serie hardware, que puede ser full-duplex (es decir, enviar y recibir al mismo tiempo), SoftwareSerial generalmente solo admite comunicación half-duplex, lo que significa que solo puede transmitir o recibir a la vez. Inconvenientes: Debido a limitaciones de tiempo y procesamiento, la comunicación serial por software puede ser más lenta y menos confiable que la comunicación serial hardware, especialmente a velocidades de transmisión más altas. Configuración: Para usar la biblioteca SoftwareSerial, necesitas crear una instancia del objeto SoftwareSerial y configurarlo con los pines que deseas usar para la comunicación. Métodos Principales: Los métodos principales que puedes usar con SoftwareSerial son: begin(baudRate): Inicia la comunicación a una velocidad de baudios específica. available(): Devuelve la cantidad de bytes disponibles para ser leídos. read(): Lee el próximo byte disponible. write(byte): Escribe un byte en el puerto serie virtual. Aquí hay un ejemplo sencillo de cómo utilizar SoftwareSerial para comunicarte con un módulo HC-05 en pines digitales no estándar:

Introducción a la biblioteca SoftwareSerial

La biblioteca SoftwareSerial es una biblioteca estándar en el entorno de programación de Arduino que permite crear puertos serie virtuales en pines digitales que normalmente no están designados para la comunicación serial. Esto es especialmente útil cuando tu Arduino tiene un número limitado de pines de comunicación serie hardware (como los pines RX y TX que generalmente se utilizan para la comunicación con USB o Bluetooth), y deseas comunicarte con varios dispositivos serie a la vez.

Puntos Clave sobre SoftwareSerial

Ejemplo de Uso con Módulo HC-05

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  Serial.begin(9600);      // Iniciar comunicación por USB
  mySerial.begin(9600);    // Iniciar comunicación por SoftwareSerial
}

void loop() {
  if (mySerial.available()) {
    char data = mySerial.read();
    Serial.print("Recibido desde HC-05: ");
    Serial.println(data);
  }
  
  if (Serial.available()) {
    char data = Serial.read();
    mySerial.print("Enviado desde USB: ");
    mySerial.println(data);
  }
}
    

En este ejemplo, SoftwareSerial se utiliza para establecer una comunicación serie virtual con un módulo HC-05. La comunicación se inicia tanto a través de USB (con Serial) como a través de SoftwareSerial (con mySerial). Ten en cuenta que este es un ejemplo simple y, dependiendo de tu caso de uso, podrías necesitar ajustar la velocidad de comunicación, los pines utilizados y el manejo de datos.