Descripción:
Anteriormente mostré el uso de la librería IRremote, y como obtener el valor hexadecimal de cada uno de los botones del control (Puedes checar la información aquí...), ahora toca el turno de activar algunas cargas o cosas con el arduino, lo primero que se me vino en mente fueron un par de LEDs, decidí agregarle un par mas de relevadores, que a su ves estos activaran un foco y un motor estos últimos estarán trabajando a 120VAC que es lo que comúnmente encontramos en un tomacorrientes, bueno esto aquí en México, aunque el control no solo se limita a este tipo de cosas, jugando y cambiando el código, puedes incluso controlar carros de juguete, otro tipos de lámparas, control RGB, bueno se tiene mucho para trabajar, para mi es suficiente lo que les muestro en este ejemplo, tal vez en un futuro lo utilice en alguna aplicación o simplemente se quede como aprendizaje, ya veré después.
El circuito a utilizar será el siguiente, nada fuera del otro mundo, el arduino nano, el receptor IR 1838, un par de LEDs con sus debidas resistencias, un par de relevadores de 5 volts activados con un transistor cada uno, además de sus diodos de freewheeling y sus resistencias de base. Recomendaciones; manejar con precaución las cargas de los relevadores ya que se esta trabajando con bastante voltaje AC, notaran que no uso una fuente externa, el motivo es por que estoy alimentando todo con el cable USB directamente desde la computadora (queda a su consideración si lo hacen así o prefieren usar una fuente externa, este ultimo caso considerar no conectar las dos fuentes al mismo tiempo, solamente debe de tener en común el GND).
Código:
Aquí el código que hace posible que funcione el circuito, notaran que al principio he añadido unos cuantos DEFINEs, estos contienen los valores hexadecimales de los botones del control remoto del 0 al 9 y servirán para evaluarlos con un switch y activar o desactivar las salidas, cabe mencionar que el código aquí mostrado es muy básico y que no es la única forma de hacerlo:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/******************************************************************************* | |
* | |
* IR Remote Control - Activar cargas | |
* | |
******************************************************************************* | |
* FileName: NANO_IRremote_CtrlRelay.ino | |
* Processor: ATmega328 | |
* Complier: Arduino v1.6.5 | |
* Author: Pedro Sánchez (MrChunckuee) | |
* Blog: http://mrchunckuee.blogspot.com/ | |
* Email: mrchunckuee.psr@gmail.com | |
* Description: Activado 2 Reles y 2 LEDs con control remoto | |
******************************************************************************* | |
* Rev. Date Comment | |
* v1.00 14/04/2016 Creación del firmware | |
******************************************************************************/ | |
#include <IRremote.h> //Incluir la libreria | |
int RECV_PIN = 11; // Entrada IR | |
int LED_1 = 2; | |
int LED_2 = 3; | |
int RELE_FOCO = 4; | |
int RELE_MOTOR = 5; | |
// Valores para control IR Xinda | |
// Tecla ValorHEX | |
#define BUTTON_1 0xFF6897 | |
#define BUTTON_2 0xFF9867 | |
#define BUTTON_3 0xFFB04F | |
#define BUTTON_4 0xFF30CF | |
#define BUTTON_5 0xFF18E7 | |
#define BUTTON_6 0xFF7A85 | |
#define BUTTON_7 0xFF10EF | |
#define BUTTON_8 0xFF38C7 | |
#define BUTTON_9 0xFF5AA5 | |
#define BUTTON_0 0xFF4AB5 | |
//Es necesario para que funcione la libreria | |
IRrecv irrecv(RECV_PIN); | |
decode_results results; | |
void setup() { | |
// Lo basico declaramos entradas y salidas | |
pinMode(LED_1,OUTPUT); | |
pinMode(LED_2,OUTPUT); | |
pinMode(RELE_FOCO,OUTPUT); | |
pinMode(RELE_MOTOR,OUTPUT); | |
irrecv.enableIRIn(); // Start the receiver | |
} | |
void loop() { | |
// Checamos si se recibio algun dato | |
if (irrecv.decode(&results)){ | |
// Evaluamos el dato recibido | |
// Realizamos la accion correspondiente | |
switch (results.value){ | |
case BUTTON_1: | |
digitalWrite(LED_1, HIGH); | |
break; | |
case BUTTON_2: | |
digitalWrite(LED_1, LOW); | |
break; | |
case BUTTON_3: | |
digitalWrite(LED_2, HIGH); | |
break; | |
case BUTTON_4: | |
digitalWrite(LED_2, LOW); | |
break; | |
case BUTTON_5: | |
digitalWrite(RELE_FOCO, HIGH); | |
break; | |
case BUTTON_6: | |
digitalWrite(RELE_FOCO, LOW); | |
break; | |
case BUTTON_7: | |
digitalWrite(RELE_MOTOR, HIGH); | |
break; | |
case BUTTON_8: | |
digitalWrite(RELE_MOTOR, LOW); | |
break; | |
case BUTTON_9: | |
digitalWrite(LED_1, HIGH); | |
digitalWrite(LED_2, HIGH); | |
digitalWrite(RELE_FOCO, HIGH); | |
digitalWrite(RELE_MOTOR, HIGH); | |
break; | |
case BUTTON_0: | |
digitalWrite(LED_1, LOW); | |
digitalWrite(LED_2, LOW); | |
digitalWrite(RELE_FOCO, LOW); | |
digitalWrite(RELE_MOTOR, LOW); | |
break; | |
default: | |
break; | |
} | |
delay(10); | |
irrecv.resume(); // Receive the next value | |
} | |
} |
Aquí el vídeo del circuito en acción:
Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.
Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.
Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.
0 Comentarios