Funcionamiento
Este proyecto tiene como objetivo controlar varios LEDs utilizando una placa Arduino y un módulo receptor infrarrojo KY-022. El sistema permitirá encender y apagar los LEDs de manera individual o grupal mediante un control remoto infrarrojo. Este tipo de implementación es útil en aplicaciones de domótica y sistemas interactivos.
Componentes
- Arduino (cualquier modelo, como Arduino Uno).
- Módulo receptor infrarrojo KY-022.
- 3 LEDs
- Resistencias (para limitar la corriente de los LEDs; típicamente de 220 ohm).
- Control remoto infrarrojo compatible.
- Protoboard y cables jumpers .
Conexiones
- Conecta el módulo receptor KY-022 al Arduino:
- Conecta el pin de señal del KY-022 al pin digital 2 del Arduino.
- Conecta el pin GND del sensor al GND del Arduino.
- Conecta el pin VCC del sensor al pin de 5V del Arduino.
- Conexión de LEDs
- Coloca los LEDs en la protoboard y conecta cada uno a un pin digital del Arduino 3, 4, 5 con su respectiva resistencia.
Código
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #include <Arduino.h> #include <IRremote.h> void EfectoLeds(); // Reemplaza los siguientes números hexadecimales por los de tu control remoto. // Estos se imprimirán en el monitor serial cuando pulses un botón de tu control remoto. #define led_1 0XFE017D02 #define led_2 0XFD027D02 #define led_3 0XFC037D02 #define all_leds 0XB54A7D02 #define mas_velocidad 0XF30C7D02 #define menos_velocidad 0XE6197D02 const int receptorPin = 2; // Pin conectado al KY-022 const int led1Pin = 3; // Pin del LED 1 const int led2Pin = 4; // Pin del LED 2 const int led3Pin = 5; // Pin del LED 2 int time = 1000; bool efectoLed = false; void setup() { Serial.begin(9600); IrReceiver.begin(receptorPin, DISABLE_LED_FEEDBACK); pinMode(led1Pin, OUTPUT); pinMode(led2Pin, OUTPUT); pinMode(led3Pin, OUTPUT); } void loop() { if (IrReceiver.decode()) { Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX); if(IrReceiver.decodedIRData.decodedRawData == led_1){ digitalWrite(led1Pin, !digitalRead(led1Pin)); efectoLed = false; } if(IrReceiver.decodedIRData.decodedRawData == led_2){ digitalWrite(led2Pin, !digitalRead(led2Pin)); efectoLed = false; } if(IrReceiver.decodedIRData.decodedRawData == led_3){ digitalWrite(led3Pin, !digitalRead(led3Pin)); efectoLed = false; } if(IrReceiver.decodedIRData.decodedRawData == all_leds){ efectoLed = true; } if(IrReceiver.decodedIRData.decodedRawData == mas_velocidad && efectoLed){ if(time > 100){ time -= 100; } } if(IrReceiver.decodedIRData.decodedRawData == menos_velocidad && efectoLed){ if(time < 1000){ time += 100; } } IrReceiver.resume(); // Escucha el siguiente comando } if(efectoLed){ EfectoLeds(); } } void EfectoLeds(){ digitalWrite(led3Pin, LOW); digitalWrite(led1Pin, HIGH); delay(time); digitalWrite(led1Pin, LOW); digitalWrite(led2Pin, HIGH); delay(time); digitalWrite(led2Pin, LOW); digitalWrite(led3Pin, HIGH); delay(time); } |
Diseños

Videos
Conclusión
Este proyecto es ideal para aprender sobre sensores, pantallas LCD y programación en Arduino. Además de ser educativo, puede adaptarse y mejorarse según las necesidades del usuario, brindando una amplia gama de aplicaciones prácticas.