10
jul
12

Relés y Arduino: Encendiendo una bombilla desde tu arduino.


En este nuevo post vamos a hablar de como hacer funcionar un relé con Arduino, en primer lugar necesitamos saber que un relé es un dispositivo que funciona como un interruptor, permitiendo la activación o des-activación de un circuito eléctrico independiente, es decir, podemos activar aparatos electrónicos de mayor voltaje y gran consumo a través de nuestros microcontroladores (como por ejemplo encender una bombilla que funciona a 220V a través de nuestro microcontrolador).

Yo para este tutorial he empleado unos relés de la casa HUI KE que funcionan a 5V y comprados por ebay a un precio muy reducido, en concreto HUI KE HK4100F-DC5V-SHG, os pongo unas imagenes y las conexiones interiores:

Como podéis ver estos relés son de muy reducido tamaño y perfectos para trabajar con nuestro microcontroladores, ya que funcionan a 5V, sin necesidad de disponer de fuentes externas para activar su bobina. Os dejo el esquema de conexión realizado en Fritzing y un esquemático realizado en Eagle:

Como podéis ver los componentes que necesitamos para realizar el circuito de control son muy pocos:

* Relé de 5V (En este caso de la casa HUI KE, vale cualquier otro).
* Transistor BC547.
* Resistencia de 10k.
* Diodo 1N4001.

Como siempre os dejo una foto del montaje del mismo y un vídeo del funcionamiento del circuito, en esta caso la bombilla se enciendo durante un segundo y permanece apagada durante diez segundos:

Y por último os dejo el código (aunque es muy sencillo):

/*Programa realizado por Javier Couto Rego "Regata" para
www.tallerarduino.wordpress.com

Encendiendo una bombilla a 220V con un Arduino y un relé
a 5V*/

int rele=8;

void setup()
{
  pinMode(rele,OUTPUT);
}

void loop()
{
  //Nota tenemos el relé conectado como Normalmente Abierto
  //así solo se activará la carga cuando activemos la bobina
  //del relé, para que funcione al revés cambiaremos el cable
  //a la posición Normalmente Cerrado
  digitalWrite(rele,HIGH);  //Activamos la bobina del relé y encendemos la bombilla
  delay(1000);              //durante 1 segundo
  digitalWrite(rele,LOW);   //Desactivamos la bobina del relé y apagamos la bombilla
  delay(10000);             //durante 10 segundos
}

Espero que os guste y que os sirva de ayuda!!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal


39 Responses to “Relés y Arduino: Encendiendo una bombilla desde tu arduino.”


  1. 12/07/2012 en 23:15

    hola, me gustó mucho este blog!
    con respecto a esta entrada, tengo una duda al respecto
    el hecho de que se prenda durante 1 segundo y se apague durante 10 es porque el sistema no aguanta más tiempo prendido???
    verás, me gustaría poder controlar ciertas luces de mi hogar con el arduino, pero no se si este puede estar conectado constantemente a 220v…
    muchas gracias :D

  2. 12/07/2012 en 23:22

    Hola Felipe!! No, el hecho de que este encendido durante 1 segundo es sólo cuestion del programa para el ejemplo, puedes tener conectado constantemente a 220V. Esto es sólo un ejemplo que hice para que la gente viera como se encendía con una temporización determinada. Así que sin ningún problema vas a poder conectar las luces de tu casa!! Cualquier duda ya sabes puedes preguntar e intentaremos resolverla.

    Nos gusta que a la gente le sirva este blog, Un saludo y gracias por visitarnos!!!!

  3. 3 Vero
    20/09/2012 en 12:08

    Hola! Gracias por el aporte

    Estoy intentando hacer algo parecido pero no tengo idea alguna sobre arduino.
    Mas o menos entiendo el ruteo de todo con el Fritzing, pero si no te importaria explicarlo, seria de gran ayuda.
    Hay muchas cosas que no se como conectar.

    Gracias!!

  4. 25/09/2012 en 16:29

    Hola Vero!!

    Pues mira te comento: Conectado al pin del micro con el que activaremos el relé vamos a tener una resistencia de 1k, que a su vez va conectada a la base de un transistor (el cual nos va a permitir proporcionar más corriente para poder activar nuestro relé desde el pin de arduino, ya que este suministra sobre unos 40mA, en ocasiones insuficientes para activar relés, motores, etc…), el emisor va a masa (GND de la placa arduino) y al colector vamos a tener conectado un diodo rectificador (la función del diodo lo que hace es evitar que circulen corrientes en sentido inverso que puedan dañar nuestro microcontrolador) y en paralelo el relé, es decir, las patillas de control de la bobina del relé que será la que active o desactive las correspondientes salidas del relé (En este caso tiene una normalmente abierta (NA), que estará sin alimentar hasta que se active la bobina del relé, y en ese momento pasará a alimentar la salida, la otra salida es normalmente cerrada (NC), que funcionará de manera opuesta a la anterior), además tenemos una patilla común que sirve para conectar el cable del dispositivo que vamos a activar o desactivar. Esto es, conectamos una punta del cable del dispositivo y la otra punta a una de las salidas NA o NC.

    No sé si es esto lo que quieres que te explique, si no es así no dudes en preguntar más!! Un saludo

  5. 5 Vero
    11/10/2012 en 11:49

    Hola Regata!

    Si…muchas gracias! ahora entiendo más como debo conectar todo. Es que no sabia exactamente como conectar cada cosa, pero ya me va quedando mas claro. Me gustaría comentarte el proyecto que estoy haciendo, a lo mejor me puedes echar una mano. Si me puedes dar tu email para contactar contigo estaría genial.

    Muchas Gracias!!!

  6. 11/10/2012 en 17:01

    Hola Vero!

    Claro que sí, mi mail es javiregata@gmail.com, en lo que pueda te intentaré ayudar. Un saludo!!

  7. 7 Carlos
    13/01/2013 en 18:55

    Hola Javier.
    Estoy empezando a utilizar arduino y tu ejemplo de uso del relé y la explicación que le has dado a Vero, me parecen excepcionales.

    Muchisimas gracias.

  8. 8 Javi
    30/03/2013 en 0:56

    Hola Javier,

    Muy bueno el artículo, hace poco que me enteré de arduino (si, voy un poco tarde jeje) y quiero empezar a trastear con el y me gustaria hacer lo que haces arriba.

    Leyendo veo que muchos dicen que el mejor para empezar es arduino uno, me recomendarias algun otro o este esta bien? otra duda seria si sabes de algún pack que venga arduino con protoboard y cables o donde comprarlos por internet por separado.

    Muchas graciasss tu blog esta muy bien :)

  9. 01/04/2013 en 9:55

    Hola Javi!!

    Pues te comento, para empezar está bien cualquier arduino, tanto el uno, como el mega o el nano, dependiendo del número de salidas que necesites te vas a uno u otro. No se si has mirado algo por internet sobre precios y demás, el tiempo que quieres esperar en recibir el paquete, etc.

    Dependiendo de lo anterior puedes hechar un vistazo por tiendas españolas (te cuesta más dinero pero llega más rápido) o bien tirar de un arduino clónico (que funciona exactamente igual y son muchisimo más baratos, pero tardan algo más de tiempo en llegar).

    Yo quizás buscaría algún kit por ebay (pones busqueda todo el mundo y envío gratuito), vas a ver un montón. Un ejemplo sería este (es un kit que trae algo de todo para ir poniéndose con los ejemplos básicos e ir avanzando):

    http://www.ebay.es/itm/Robot-DIY-Starter-Kit-1602-LCD-Relay-Stepper-Infrared-For-Arduino-NEW-/290816168320?pt=LH_DefaultDomain_0&hash=item43b5fe9180#ht_4257wt_1369

    y por otro lado me pillaría el arduino por separado, así te saldría más económico:

    El arduino Uno:

    http://www.ebay.es/itm/R3-development-board-2012-MEGA328P-ATMEGA16U2-Funduino-Arduino-Compatible-/400451100528?pt=LH_DefaultDomain_0&hash=item5d3cbedf70#ht_1530wt_954

    El arduino Mega:

    http://www.ebay.es/itm/ATmega2560-Board-with-USB-Cable-for-ARDUINOs-IDE-MEGA-2560-with-USB-cable-/321085468466?pt=US_Security_Cameras&hash=item4ac22f6f32#ht_2034wt_1188

    Y según vayas avanzando puedes ir encontrando cosas para los montajes por ebay o tiendas nacionales. (Pero ya te digo que ebay puede ser tú mejor amigo tanto para ti como para tu bolsillo en estos casos).

    Resumiendo, yo me decantaría por coger algún kit de componentes por separado, encontrarás muchísimos por ebay, escoge el que más te convenga (el que te puse yo trae un relé), aunque también puedes comprarte aparte una placa de relés ya montada:

    http://www.ebay.es/itm/5V-2-Channel-Relay-Module-Board-Shield-With-optocoup-For-Arduino-PIC-MCU-Cheap-/251231183205?pt=LH_DefaultDomain_0&hash=item3a7e8ba165

    y bueno yo me cogería ambos arduinos jajaa, pero mejor te recomiendo el arduino Uno para empezar, ya que muchos ejemplos están hechos para esta placa en concreto, aunque no hay casi diferencia entre la programación del Uno o del Mega prácticamente. Y según vayas avanzando y necesites más entradas o salidas pillarte un mega. Como ves los clones arduino son bastante baratos. (Yo tengo dos originales para fomentar el proyecto arduino) y 3 clones y funcionan todos perfectamente.

    Un saludo y espero haberte ayudado a escoger!!

  10. 10 Javi
    04/04/2013 en 23:13

    genial!!!! muchas gracias!!!! ya te cuento ;)

  11. 11 cristhian92
    17/05/2013 en 3:04

    hola amigos quizas no sea el lugar adecuado pero alguno de ustedes podria darme orientacion de hacer el mismo proceso pero con netduino plus2 se los agradeceria mucho

  12. 17/05/2013 en 3:35

    Hola cristhian!!

    Te comento que aunque nunca he usado la placa Netduino plus 2, el código para realizar esta prueba es bastante sencillo:

    using System;
    using System.Threading;
    using Microsoft.SPOT;
    using Microsoft.SPOT.Hardware;
    using SecretLabs.NETMF.Hardware;
    using SecretLabs.NETMF.Hardware.Netduino;

    namespace Reles
    {
    public class Program
    {
    public static void Main()
    {
    //Declaración de la variable rele para asignarla al pin digital 8
    OutputPort rele = new OutputPort(Pins.GPIO_PIN_D8,false);
    //false es para indicar el estado inicial del pin digital 8 (apagado)

    while(true) //Se ejecuta el código dentro del while de manera indefinida
    {
    rele.Write(true); //Activamos el rele durante 10 segundos
    Thread.Sleep(10000);
    rele.Write(false); //Desactivamos el rele durante 10 segundos
    Thread.Sleep(10000);
    }
    }
    }
    }

    Como ves el relé está conectado al pin D8 de la Netduino igual que en el ejemplo hecho con la placa Arduino. La conexión es exactamente la misma para ambas placas. Create en el IDE que uses para la Netduino un proyecto y pega el código que te puse arriba, esto hará que la bombilla parpadee cada 10 segundos. Un saludo!!

  13. 13 adrian
    11/06/2013 en 22:59

    hola ,muy bueno el blog. yo quiero hacer lo mismo (prender las luces de casa con el arduino) pero quiero hacerlo desde la compu conectando el arduino por wi-fi. para esto deberia comprarme el shield wi-fi que viene no? y de ser asi, como se haria para utilizar pines para controlar las luces y pines para el shield wi-fi. es decir, la placa wi-fi me deja varios pines libres para yo poder conectarlos a los relees?. claro esta q no entiendo como funciona el shield de wifi jaja. gracias

  14. 13/06/2013 en 0:21

    Hola adrian!! De momento no sé como funciona la arduino wifi, pero supongo que se programará igual que los demás arduinos, aparte de tener conexión wifi, también puedes probar a través de un módulo ethernet al cual conectas un mini router al que le das una ip y puedas acceder a través de él. Lo siento pero no puedo ayudarte en mucho más. Un saludo!!

  15. 17/06/2013 en 20:31

    Y como lo tendria que hacer para que se activara el rele a una hora determinada y se apagara a otra mirando la hora de un RTC

  16. 16 Josue Reyes
    25/06/2013 en 4:18

    Muy buen aporte. solo que quiero implementar esa usando el Ethernet Shield, usando los circuitos en una pcb en donde pueda conectarlo al arduino. saludos

  17. 28/06/2013 en 15:37

    Hola Josue!! Se me escapaba de responder a tu comentario, te comento que también se pueden comprar PCB de relés ya hechas y diseñadas para emplear con tu Arduino, tienes desde 1 único relé hasta 16 o incluso más, te pongo algún enlace para que puedas echar un vistazo:

    En ebay puedes buscarlo como relay arduino:

    http://www.ebay.es/itm/5V-Eight-8-Channel-Relay-Module-With-optocoupler-For-PIC-AVR-DSP-ARM-Arduino-/310574415181?pt=LH_DefaultDomain_0&hash=item484fad7d4d#ht_2026wt_1188

    http://www.ebay.es/itm/5V-2-Channel-Relay-Module-for-Arduino-PIC-ARM-DSP-AVR-Electronic-/140764956257?pt=LH_DefaultDomain_0&hash=item20c63ec661#ht_1965wt_954

    http://dx.com/es/p/8-channel-relay-module-extension-board-for-arduino-avr-arm-51-141670

    Espero que te sirva de ayuda esta información!! Un saludo!!

  18. 18 edwin tavarez
    14/07/2013 en 21:24

    saludos queria saver si puedo canbiar el transitor por otro

  19. 19 Ernesto
    18/07/2013 en 7:11

    Hola, para probar un doble rele para arduino que he comprado he utilizado la tension que da la salida USB, pero no funciona,
    la plaquita viene con un puente que se puede conectar a VCC VCC o a VCC GND, y las entradas son GND IN1 IN2 VCC, aplicando la tension del USB a GND y IN1 o a las otras opciones no arranca ninguno de los dos reles,
    si doy tension directa a la bobina del relé si se activa. Que puede pasar?

  20. 24/07/2013 en 17:00

    Hola edwin!! Lo siento por tardar en contestar pero no he estado disponible estos días. En cuanto a tú consulta, para la activación del relé en principio te serviría cualquier transistor NPN que se capaz de suministrar la corriente necesaria para la activación de la bobina del relé. Algunos ejemplos son: BC547, 2N3904, BD170, etc…

    Un saludo!!

  21. 24/07/2013 en 17:17

    Hola Ernesto!! mira este post, creo que el módulo que tengo yo es igual que el tuyo. http://tallerarduino.com/2012/10/08/modulo-de-reles/

    Espero que te sirva de ayuda, a mi me funciona perfectamente. Un saludo!!

  22. 22 Erna Na Ap
    24/07/2013 en 17:53

    Hola, ya funciona, conecto los GND y 5V a GND y VCC, y tambien aplico la misma tension a IN1 o IN2.

  23. 28/07/2013 en 11:21

    Me alegro de que ya te funcione, como es que aplicas la misma tensión en IN1 o IN2, ¿quieres decir la tensión que proporcionan los pines que declaras como salidas en tu arduino? ¿O bien controlas el módulo de relés sin arduino?

  24. 24 Erna Na Ap
    28/07/2013 en 11:40

    Hola, estoy utilizando una salida de una camara IP que se puede controlar por wifi, esta salida da 0 o 5V segun se active, a partir de ahí conectare el rele a una lampara o voy a probar a cerrar un contacto de un mando a distancia que enciende y apaga luces, para evitar cableado.
    Te queria preguntar por el puente de dos contactos que viene en la plaquita del rele, no se que mision tiene, gracias

  25. 28/07/2013 en 11:54

    Hola Erna!! Supongo que te refieres a está placa de relés: http://tallerarduino.com/2012/10/08/modulo-de-reles/, y el puente de dos contactos debe ser el jumper azul que aparece en la parte inferior de la imagen del módulo de relés. Ese jumper se emplea para seleccionar la alimentación que vas a usar para alimentar los optoacopladores que van a activar/desactivar la bobina del relé. Como ves tiene tres pines y podemos seleccionar alimentar todo el módulo de forma conjunta (es decir seleccionar con el jumper puesto entre jd-vcc y vcc), o bien alimentar de forma independiente tanto optoacopladores como relés (quitando el jumper), de esta última manera necesitarías emplear dos fuentes de alimentación diferentes, mientras que con el jumper puesto como en la imagen solo necesitas una única fuente de alimentación (5V). Yo he usado el módulo con el jumper así puesto y funciona perfectamente. Si no era esta tú duda, explícame más el tema. Un saludo!!

  26. 26 mauricio siles
    16/10/2013 en 18:46

    Saludos, quisiera saber si existe una restricción en cuanto al tiempo máximo que el arduino puede estar encendido, es decir si lo pongo a controlar algunas luces, quiero que el arduino este encendido todo el día, todos los días, es posible? Si uso el modo sleep, y solo lo despierto para cuando trabajar, la misma pregunta… existe restricción en el tiempo maximo que el arduino puede estar alimentado?

  27. 19/11/2013 en 18:42

    Hola mauricio siles!!

    Perdón por tardar en contestar, pero no he tenido mucho tiempo libre antes. Te comento que la idea del arduino es hacer un sistema que este en funcionamiento todo el tiempo posible, por lo que no creo que afecte para nada que el sistema esté en funcionamiento todo el tiempo (todos los días), yo tengo hecha una estación meteorológica (sensor de luz, temperatura, humedad, presión barométrica) que lleva funcionando todo el tiempo desde hace unos meses y perfectamente.

    Con el modo sleep no he trabajado nada, pero supongo que es exactamente los mismo, ya que viene siendo un modo del microcontrolador y estos están hechos para realizar sistemas que necesiten estar trabajando a todas horas, así que no veo problemas.

    En definitiva no existe restricción de tiempo máximo que el arduino puede estar alimentado.

    Un saludo y gracias por tu visita!!!

  28. 28 China
    11/12/2013 en 3:50

    Puedo usar un relé de 12 volts?

  29. 29 Ernesto
    11/12/2013 en 8:20

    Hola, las salidas de Arduino son de 5V, con esta tension no se excita el relé de 12 V, se podria haciendo un circuito con un transistor con alimentacion a 12V y salida a 5 V, lo que te puede complicar la vida. En Ebay hay unos relés de 5 V que se excitan directamente desde Arduino y son muy baratos, 2€ o menos.

  30. 30 China
    11/12/2013 en 20:57

    Excelente! muchas gracias.

  31. 19/12/2013 en 14:23

    Hola China!! Exacto como dice Ernesto las salidas del Arduino son a 5V. Él te ha dado una buena explicación sobre el tema!! Un saludo a ambos!!

  32. 32 jose
    28/12/2013 en 16:03

    podrias poner el link o el nombre de los reles q se excitan directo de arduino porfis??

  33. 33 jose
    28/12/2013 en 16:15

    y como podria hacerlo funcionar a traves de internet??

  34. 28/12/2013 en 17:34

    Hola Jose!! Aquí tienes el enlace de los módulos de relés que suelo comprar yo, son de este estilo y los hay de más relés a mayor precio: http://www.ebay.es/itm/5V-2-Channel-Relay-Module-Board-Shield-With-optocoup-For-Arduino-PIC-MCU-Cheap-/251231183205?pt=LH_DefaultDomain_0&hash=item3a7e8ba165&_uhb=1

    En cuanto a lo de poder activarlos o desactivarlos a través de internet tendrás que disponer bien de un módulo ethernet para poder comunicar tu arduino con tu router y cargar algún ejemplo (tengo pensado hacer un tutorial sobre esto con dos módulos diferentes ethernet para arduino, a ver si saco algo de tiempo libre), o bien usando algún módulo wifi (que aún no he podido probar). Te pongo el enlace a la placa ethernet para arduino:

    Módulo más económico (algo más complicado de usar): http://www.ebay.es/itm/1pcs-ENC28J60-Ethernet-LAN-Network-Module-Schematic-For-Arduino-51AVR-LPC-STM32-/300882740890?pt=LH_DefaultDomain_0&hash=item460e02469a&_uhb=1

    Módulo shield ethernet (enchufar encima y creo que más sencillo de emplear): http://www.ebay.es/itm/Ethernet-Shield-W5100-board-For-Arduino-UNO-R3-1280-2560-Mega-/231119956363?pt=AU_B_I_Electrical_Test_Equipment&hash=item35cfd2a98b&_uhb=1

    Espero que te sirva de ayuda, si tienes alguna duda no dudes en preguntarme!! Un saludo!!

  35. 35 Ernesto
    28/12/2013 en 19:05

    Hola, para localizarlos, entra en EBAY.es y en la busqueda pon “relay arduino”, te aparecen un monton, para mejorar la busqueda y que sean mas baratos utiliza la opcion “Todo el mundo” y en ordenar “Precio mas envio mas barato” y la opcion “Compralo ya” te aparecen desde 1,16€

  36. 36 Ernesto
    28/12/2013 en 19:13

    Hola, para hacerlo funcionar a traves de internet no es complicado, pero debes adquirir una placa ethernet que se acopla a la de Arduino

  37. 37 omargala
    26/02/2014 en 2:56

    quiero hacer esta practica, pero las resistencias las tengo de 330ohmios, puedes ayudarme

  38. 38 saul
    20/06/2014 en 7:13

    Ola amigo no se is me podrias proporcionar el codigo mi correo es serbelion_zeru@hotmail.com

  39. 39 Ramiro
    08/07/2014 en 8:27

    Heee amigo bueno ejemplo … Pero no es peligroso usar corrientes de 110 y 220 en un protoboar ?

    Porque nunca pondria voltaje de toma corriente en una proto y nunca vi ningun comentario de tu parte de este pequeño detalle..!


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


Si quieres ayudar a mantener el blog o su contenido te ha servido de ayuda, puedes realizar una donación

Visitas al blog

  • 528,414 veces

Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevos mensajes por correo.

Únete a otros 1.376 seguidores

Tweets por @MrRegata

Tweets por @0xDA_bit

Posts mejor valorados:


Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 1.376 seguidores

A %d blogueros les gusta esto: