lunes, 8 de enero de 2018

Encender y apagar un LED por Bluetooth con el módulo HC-06, Arduino y un teléfono celular



Para este proyecto he utilizado lo siguiente:
  • Un módulo Bluetooth HC-06
  • Un LED 5mm
  • Una placa Arduino REV Uno
  • Una resistencia de 330 Ohmios
  • Una resistencia de 5.600 Ohmios
  • Una resistencia de 10.000 Ohmios
  • Cables protoboard
  • Una placa de pruebas o protoboard, yo utilicé una placa PCB perforada y estaño para soldar.
  • Un teléfono celular con el sistema Android instalado.
  • La app Arduino Bluetooth Controller.
El circuito montado sobre una placa protoboard sería el que se refleja en la imagen.

Hay personas que no usan un divisor de tensión con el módulo Bluetooh HC-06 y dicen que les funciona perfectamente. Yo prefiero usar un divisor de tensión tal como explica la web tecnofilo.es porque el módulo HC-06 tiene un pin RXD que indica que solo puede trabajar con un voltaje de 3,3V pero la placa ARDUINO REV UNO ofrece una tensión de 5V. Para solventar este problema, adjunto el cálculo para hacer un divisor de tensión con la ayuda de 2 resistencias.. Suponiendo un valor para la resistencia R3 de 10.000 Ohmios.

Vo = 3,3 V
Vi  = 5 V
R3= 10000 Ohm
R2 =X

Necesitamos calcular el valor de la resistencia R1

Vo=Vi*R3/(R2+R3)

3,3 = 5 * 10000 / (R2 +10000)

3,3 = 50000 / (R2 + 10000)

3,3 R2 + 33000 = 50000

R2  = 5151 Ohmios. 

Cómo no hay resistencia con ese valor, elegimos un valor lo más próximo al alza para esa resistencia.








Este es el código para encender y apagar LED con el módulo Bluetooth HC-06, Arduino y un teléfono celular con el modo Bluetooth activado:
#include <SoftwareSerial.h>
/*
 * Las conexiones del módulo Bluetooth HC-06 a Arduino * HC-06  | Pines de Arduino 
* TX      |       2 
* RX     |       3
*/
// Aquí, explicamos las interconexiones del módulo Bluetooth HC-06 a ArduinoSoftwareSerial bt (2,3);  //RX, TX (Conectados al Bluetooth - RX -> TX | TX -> RX)
int LEDPin = 13; // Conectamos el LED al pin 13 de Arduinoint btdata; // Los datos que son emitidos desde el computador

void setup() {
  bt.begin(9600); //Abre el puerto serie
  bt.println ("Bluetooth . Presiona 1 or 0 para encender o apagar LED.."); //Escribe
  pinMode (LEDPin, OUTPUT); // Arduino ofrecerá tensión en el pin del LED cuando sea oportuno
}

void loop() {
  if (bt.available()) { //si la comunicación serial está disponible
    btdata = bt.read(); //lee desde la conexión serial    if (btdata == '1') {
      //Si el valor elegido es '1'
      digitalWrite (LEDPin, HIGH); // Hay tensión en el pin del LED y se enciende
      bt.println ("LED ON!");
    }
    if (btdata == '0') { //Si se obtiene como valor '0', se apaga el LED      //if 0
      digitalWrite (LEDPin, LOW); // No hay tensión en el pin del LED y se apaga
      bt.println ("LED OFF!");
    }
  }
  delay (100); //prepara los datos
}

Pueden descargar el código para este proyecto haciendo click en el siguiente enlace: https://drive.google.com/file/d/1gOmng5xyOWMNBwbHlSYYICqNIcwkJ7Aq/view?usp=sharing