martes, 30 de enero de 2018

Encender y apagar 8 bombillas LED con un módulo de 8 relés, Arduino, el módulo Bluetooth HC-06 y un teléfono celular

Me he animado a realizar un proyecto con Arduino que consistía encender y apagar 8 bombillas LED con un módulo de 8 relés, Arduino, Bluetooth y un teléfono celular.



El propósito que tenía en mente era escribir un código que encendiese bombillas LED de una en una u 8 bombillas LED a la vez si estaban apagadas, o encendiesen las bombillas que estaban apagadas si algunas estaban encendidas,  o las apagase todas si estaban encendidas escribiendo los números de 0 a 9 en el terminal de la app "Arduino Bluetooth Controller" diseñado para el sistema operativo Android en un teléfono celular con Android instalado.

Componentes para este proyecto
  • 8 bombillas LED E27
  • 8 bases con casquillo para bombillas LED E27, 250 V, 6 A
  • 1 adaptador o conector de enchufe
  • 1 módulo de 8 relés
  • 1 placa de Arduino Rev Uno
  • 1 placa protoboard
  • cables prototipo
  • 1 conector clip para batería de 9V
  • 1 pila de 9 V
  • cables rojo y negro protoboard
  • 1 soldador tipo lápiz
  • 1 bobina de estaño
  • un teléfono celular con Android instalado
  • app Arduino Bluetooh Controller para Android





Hay que soldar un cable rojo y un cable negro a los 2 terminales metálicos del conector eléctrico de enchufe. Hay que destornillar el conector eléctrico de enchufe para quitar la carcasa de plástico y mediante un soldador tipo lápiz y estaño hice las soldaduras correspondientes. 

Hay que cortar varios trozos de cable negro y a continuación soldarlos entre sí. Las puntas deben introducirse en uno de los 2 conectores interiores que tienen la base con casquillo para bombillas LED, para ello hay que aflojar los tornillos de los conectores interiores, y una vez introducidas las puntas soldadas, apretar dichos tornillos para que las puntas soldadas hagan contacto. Esta operación hay que hacerla con cada base con casquillo para bombillas LED.

Hay que conectar con cable rojo a cada conector del interior de cada base con casquillo para bombillas LED de las 8 que se ven en  el ejemplo.

También hay que soldar diferentes trozos de cable  rojo. Las puntas soldadas que unen los diferentes trozos de cable rojo hay que introducirlas sucesivamente en los agujeros de los contactos de los relés y apretar los tornillos para que hagan contacto y no se suelten.

El modulo de 8 relés tiene varios conectores de entrada (IN1, IN2, IN3, IN4, IN5, IN6, IN7, IN8), GROUND (negativo) y VCC (positivo), 8 LEDS que indican el estado de las entradas, un jumper selecto para alimentación de los relés, 8 optoacopladores, 8 diodos de protección, 8 relés marca SONGLE con bobinas de 5V y contactos capaces de controlar hasta 10 Amperios en una tensión de 250V y 8 borneras con 3 contactos cada uno (Común, normal abierto y normal cerrado) para las salidas de relés.

Un relé tienen 3 contactos, 2 de los contactos funcionan  como "normal cerrado" y el otro funciona como "normal abierto". Para sabe que tipo de relé posee, puede usar un polímetro y medir continuidad, con el relé desconectado puedes comprobar porque par de salidas circula la corriente, esas dos serán las salidas normalmente cerradas. El contacto normalmente cerrado está activo hasta que se activa la bobina de relé mediante la entrada IN cambiando de estado a LOW. El contacto normalmente abierto (está desactivado hasta que se activa la bobina relé mediante la entrada IN y permanece activado hasta que ponga a HIGH dicha entrada.

En este proyecto, he usado 2 fuentes de alimentación:
  1. La fuente de alimentación de 12V que procede de la toma de corriente a la que se conecta un conector de enchufe con un cable negro que une las 8 bombillas LED y el módulo de relés.
  2. Una pila de 9V para alimentar la placa Arduino y el módulo Bluetooth y que permite controlar el módulo de 8 relés.

He usado el módulo Bluetooth HC-06 para Arduino que me permite controlar el encendido y apagado de bombillas LED con un teléfono celular con el sistema operativo Android mediante la app Arduino Bluetooth Controller que se puede descargar desde Google Play Store.

Una vez dentro de la aplicación, hay que emparejar el módulo Bluetooth HC-06 y una vez emparejado, hay que elegir la opción terminal para conectar el módulo Bluetooth HC-06 al teléfono celular. Una vez conectado, ya podemos escribir en el terminal los dígitos de 0 a 9

Si escribe 0, todas las bombillas se apagarán si alguna o todas están encendidas.
Si escribe 1, la bombilla conectada al relé 1 se encenderá y el resto seguirán apagadas.
Si escribe 2, la bombilla conectada al relé 2 se encenderá y el resto seguirán apagadas.
Si escribe 3, la bombilla conectada al relé 3 se encenderá y el resto seguirán apagadas.
Si escribe 4, la bombilla conectada al relé 4 se encenderá y el resto seguirán apagadas.
Si escribe 5, la bombilla conectada al relé 5 se encenderá y el resto seguirán apagadas.
Si escribe 6, la bombilla conectada al relé 6 se encenderá y el resto seguirán apagadas.
Si escribe 7, la bombilla conectada al relé 7 se encenderá y el resto seguirán apagadas.
Si escribe 8, la bombilla conectada al relé 8 se encenderá y el resto seguirán apagadas.
Si escribe 9, todas bombillas se encenderán si están apagadas o se encenderán las que lo estén apagadas.

Código:

/* Este sketch muestra como Encender y apagar 8 bombillas LED
*  conectadas en serie con un módulo de 8 relés y Arduino
*  y un teléfono celular y el módulo Bluetooth HC-06
*  utilizando la app para Android "Arduino Bluetooth Controller"
*/

#include <SoftwareSerial.h> // Librería Serial

/*
 * Muestro la conexion de los pines
 * del módulo Bluetooth HC-06 con los pines de Arduino
 *
 * HC-06  | Arduino
 * TX     | 2
 * RX     | 3
*/
// Aquí, los intercambiamos
SoftwareSerial bt (2,3);  //RX, TX (Conectados a Bluetooth de esta forma RX -> TX | TX -> RX)
// Conecta los pines de Arduino a los 8 relés
int RELAY1  = 4;
int RELAY2  = 5;
int RELAY3  = 6;
int RELAY4  = 7;
int RELAY5  = 8;
int RELAY6  = 9;
int RELAY7  = 10;
int RELAY8  = 11;
int btdata; // Los datos son transmitidos desde el teléfono celular

void setup() {
  bt.begin(9600); // Se abre el puerto de serie
  bt.println ("Bluetooth encendido"); //
  pinMode (RELAY1, OUTPUT);
  pinMode (RELAY2, OUTPUT);
  pinMode (RELAY3, OUTPUT);
  pinMode (RELAY4, OUTPUT);
  pinMode (RELAY5, OUTPUT);
  pinMode (RELAY6, OUTPUT);
  pinMode (RELAY7, OUTPUT);
  pinMode (RELAY8, OUTPUT);
}

void loop() {
 digitalWrite (RELAY1, HIGH);
 digitalWrite (RELAY2, HIGH);
 digitalWrite (RELAY3, HIGH);
 digitalWrite (RELAY4, HIGH);
 digitalWrite (RELAY5, HIGH);
 digitalWrite (RELAY6, HIGH);
 digitalWrite (RELAY7, HIGH);
 digitalWrite (RELAY8, HIGH);     
  if (bt.available()) { // Si la comunicacion serial esta disponible
    btdata = bt.read(); // Escribe desde la conexión serie
    /* Si escribe 0 en el terminal de la app Arduino Bluetooth Controller,
     * se apagarán todas las bombillas
     */
     if (btdata == '0') {
         digitalWrite (RELAY1, HIGH); // El estado HIGH del relé indica que la bombilla está apagada
         digitalWrite (RELAY2, HIGH);
         digitalWrite (RELAY3, HIGH);
         digitalWrite (RELAY4, HIGH);
         digitalWrite (RELAY5, HIGH);
         digitalWrite (RELAY6, HIGH);
         digitalWrite (RELAY7, HIGH);
         digitalWrite (RELAY8, HIGH);
    }
    /* Si escribe 1 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderá la bombilla 1
    */
    if (btdata == '1') {
         digitalWrite (RELAY1, LOW); // El estado LOW del relé indica que la bombilla está encendida
    }
    /* Si escribe 2 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderá la bombilla 2
     */
    if (btdata == '2') {
         digitalWrite (RELAY1, LOW);
    }
    /* Si escribe 3 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderá la bombilla 3
     */
    if (btdata == '3') {
         digitalWrite (RELAY3, LOW);
    }
    /* Si escribe 4 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderá la bombilla 4
     */
    if (btdata == '4') {
         digitalWrite (RELAY4, LOW);
    }
    /* Si escribe 5 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderá la bombilla 5
     */
    if (btdata == '5') {
         digitalWrite (RELAY5, LOW);
    }
    /* Si escribe 6 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderá la bombilla 6
     */
    if (btdata == '6') {
         digitalWrite (RELAY6, LOW);
    }
    /* Si escribe 7 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderá la bombilla 7
     */
    if (btdata == '7') {
         digitalWrite (RELAY7, LOW);
    }
    /* Si escribe 8 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderá la bombilla 8
     */
    if (btdata == '8') {
         digitalWrite (RELAY8, LOW);
    }
    /* Si escribe 9 en el terminal de la app Arduino Bluetooth Controller,
     * se encenderán todas las bombillas
     */
    if (btdata == '9') {
         digitalWrite (RELAY1, LOW);
         digitalWrite (RELAY2, LOW);
         digitalWrite (RELAY3, LOW);
         digitalWrite (RELAY4, LOW);
         digitalWrite (RELAY5, LOW);
         digitalWrite (RELAY6, LOW);
         digitalWrite (RELAY7, LOW);
         digitalWrite (RELAY8, LOW);
    }
  }
  delay (100); // preparandose para los datos
}

Código para descargar:  https://drive.google.com/file/d/1StlUBgmz3kIr_jt2WhMg2ANklzrY9_WM/view