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

Registrado
25 Feb 2013
Mensajes
2.518
Calificaciones
12.224
Fuente: https://lasmonedasdejudas.blogspot.com.es/2018/01/encender-y-apagar-8-bombillas-led-con.html


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:
 
Smart Robot Car - Arduino - IR Control

He montado un smart Robot Car que funciona con la placa Arduino Uno Rev.3. El código para Smart Robot Car - Arduino - IR Control del youtube Armuino pueden descargarlo aquí


Las piezas venían en un kit que compré a través de Aliexpress. Hoy no volvería a comprar este kit ¿Por qué?. Las instrucciones que no eran muy claras,solo se referían al montaje básico de los motores, ruedas y chasis, sin hacer ninguna referencia a Arduino, tampoco había un CD con ejemplos de código para Arduino y hasta tuve que comprar alguna pieza y también las 3 baterías LIPO 18650 3,7V y 6000mAh que alimentan los motores DC del Smart Robot Car para proteger las 3 baterías LIPO de sobrecargas o descargas y evitar que se dañen, compré un protector de placa para este tipo de baterías con este fin.

El Smart Robot Car utiliza 2 motores DC que necesitan un mínimo de 3V para su funcionamiento. Y un elemento imprescindible: el módulo L298N, del cual dejo una excelente y detallada explicación en este
artículo y que permite el funcionamiento de varios motores DC.

Este módulo L298N tiene elementos de protección como diodos, un regulador de voltaje LM7805. El módulo L298N dispone de un jumper. Sin el jumper admite voltaje entre 12V y 35V pero yo no lo he quitado. De este modo, el módulo permite recibir un voltaje de entrada en torno a un rango de entre 6V y 12V (Yo he usado 3 baterías LIPO que suman un voltaje total de 11,1V).El módulo L298N suministra un voltaje de salida de 5V al microcontrolador Arduino y a los diferentes pines a los que hay conectados elementos del circuito. El resto del votaje alimenta los motores DC.

Cada batería LIPO tenía su portabaterías individual y lo que hice fue soldar las puntas de los cables de las portabaterías entre sí para conectar las baterías en serie y también al protector de placa como muestro en el esquema gráfico que muestra las conexiones de los diferentes elementos del circuito.

La placa de Arduino y el módulo sensor receptor de infrarrojos IR que permite al microcontrolador recibir las instrucciones básicas de parar, avanzar , retroceder, girar a la izquierda y girar a la derecha a través de varios botones de un mando de control remoto IR.

El circuito también dispone de un interruptor de botón que permite encender y apagar el circuito.

Esquema de montaje del circuito del Smart Robot Car con sus conexiones


En este artículo voy a poner el código del Youtuber Armuino para un Smart Robot Car - Arduino - IR Control. Yo he hecho unas pequeñas modificaciones al código para reducir considerablemente las revoluciones por minuto de los motores. De no hacerlo, el coche coge mucha velocidad y después resulta complicado pararlo con la ayuda de un mando a distancia IR porque con el giro, la distancia o algún obstáculo no recibe la señal.

La velocidad de un Smart Robot Car alimentado por 3 baterías LIPO 18650 3,7V y 6000mAh es considerable y he hecho una pequeña molificación al código y elegí una velocidad de 75 revoluciones por minuto en vez de 180 o 255 como he visto en algunos ejemplos para los diferentes movimientos de avanzar, retroceder,girar a la izquierda y a la derecha. Ahora bien, usted puede configurar diferentes valores para estos movimientos sí así lo desea.

Ejemplo de cambio de la velocidad en revoluciones por minuto para los motores DC para la función que permite mover el coche hacia adelante:
void moveForward(int speed) //Función que mueve el coche hacia adelante
{
// Establece una velocidad en rpm con valores de 0 a 255 para los motores DC
speed = 75; // velocidad a 75 rpm
moveStop();

// turn on motor A
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
// turn on motor B
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
// set speed within a possible range 0~255
analogWrite(enA, speed);
analogWrite(enB, speed);
}


Un agradecimiento especial al youtuber Armuino porque sus vídeos en Youtube me han ayudado mucho a la hora de montar este modelo de Smart Robot Car y por el código. Armuino dispone de varios vídeos de este modelo Smart Robot Car que funciona con el módulo de ultrasonidos que evita los obstáculos con control remoto a través de IR, Bluetooth; un joystick y un módulo de RF. Visiten el canal de Youtube Armuino si así lo desean.

Un saludo a todos.

https://lasmonedasdejudas.blogspot.com/2018/08/smart-robot-car-arduino-ir-control.html
 

Temas Similares

2
Respuestas
22
Visitas
641
Back