Devices & Components
Arduino Uno Rev3
Infrared receptor
Jumper wires (generic)
Breadboard (generic)
Infrared remote control
5 mm LED: Green
5 mm LED: Yellow
5 mm LED: Red
Hardware & Tools
Scissor, Electrician
Solder Wire, Lead Free
Tape, Electrical
Soldering iron (generic)
Project description
Code
Code
c_cpp
Don't forget to install IRremote library.
1#include <IRremote.hpp> 2 3int IRreceptor = 4; 4int blueLeds = 5; 5int yellowLeds = 6; 6int redLeds = 7; 7 8int counter = 1; 9int delayTime = 300; 10int delayShortTime = 50; 11void setup() { 12 Serial.begin(9600); 13 IrReceiver.begin(IRreceptor); 14 pinMode(redLeds, OUTPUT); 15 pinMode(blueLeds, OUTPUT); 16 pinMode(yellowLeds, OUTPUT); 17 pinMode(IRreceptor, INPUT); 18} 19 20void loop() { 21 turnOffLeds(); 22 if (counter == 1) { 23 turnOffLeds(); 24 while (counter == 1) { 25 IrReader(); 26 digitalWrite(redLeds, HIGH); 27 delay(delayTime); 28 digitalWrite(redLeds, LOW); 29 digitalWrite(blueLeds, HIGH); 30 delay(delayTime); 31 digitalWrite(blueLeds, LOW); 32 digitalWrite(yellowLeds, HIGH); 33 delay(delayTime); 34 digitalWrite(yellowLeds, LOW); 35 } 36 } else if (counter == 2) { 37 turnOffLeds(); 38 while (counter == 2) { 39 IrReader(); 40 for (int i = 0; i < 4; i++) { 41 digitalWrite(redLeds, HIGH); 42 delay(delayShortTime); 43 digitalWrite(redLeds, LOW); 44 delay(delayShortTime); 45 } 46 47 IrReader(); 48 for (int i = 0; i < 4; i++) { 49 digitalWrite(blueLeds, HIGH); 50 delay(delayShortTime); 51 digitalWrite(blueLeds, LOW); 52 delay(delayShortTime); 53 } 54 55 IrReader(); 56 for (int i = 0; i < 4; i++) { 57 digitalWrite(yellowLeds, HIGH); 58 delay(delayShortTime); 59 digitalWrite(yellowLeds, LOW); 60 delay(delayShortTime); 61 } 62 } 63 } else if (counter == 3) { 64 turnOffLeds(); 65 while (counter == 3) { 66 digitalWrite(redLeds, HIGH); 67 digitalWrite(blueLeds, HIGH); 68 digitalWrite(yellowLeds, HIGH); 69 IrReader(); 70 } 71 } else if (counter == 4) { 72 turnOffLeds(); 73 while (counter == 4) { 74 IrReader(); 75 for (int i = 0; i < 3; i++) { 76 digitalWrite(redLeds, HIGH); 77 digitalWrite(blueLeds, HIGH); 78 delay(delayTime); 79 digitalWrite(redLeds, LOW); 80 digitalWrite(blueLeds, LOW); 81 digitalWrite(yellowLeds, HIGH); 82 delay(delayTime); 83 digitalWrite(yellowLeds, LOW); 84 IrReader(); 85 } 86 87 IrReader(); 88 for (int i = 0; i < 9; i++) { 89 digitalWrite(redLeds, HIGH); 90 delay(delayShortTime); 91 digitalWrite(redLeds, LOW); 92 digitalWrite(blueLeds, HIGH); 93 delay(delayShortTime); 94 digitalWrite(blueLeds, LOW); 95 digitalWrite(yellowLeds, HIGH); 96 delay(delayShortTime); 97 digitalWrite(yellowLeds, LOW); 98 delay(delayShortTime); 99 IrReader(); 100 } 101 } 102 } 103} 104 105void turnOffLeds() { 106 digitalWrite(redLeds, LOW); 107 digitalWrite(blueLeds, LOW); 108 digitalWrite(yellowLeds, LOW); 109} 110 111void IrReader() { 112 if (IrReceiver.decode()) { 113 Serial.print("Button: "); 114 Serial.println(IrReceiver.decodedIRData.command); 115 if (IrReceiver.decodedIRData.command == 22) { 116 counter = 1; 117 } else if (IrReceiver.decodedIRData.command == 25) { 118 counter = 2; 119 } else if (IrReceiver.decodedIRData.command == 13) { 120 counter = 3; 121 } else if (IrReceiver.decodedIRData.command == 12) { 122 counter = 4; 123 } 124 } 125 IrReceiver.resume(); 126}
Downloadable files
Schematics of Natal tree with remote control
I highly recommend you to use a receiver module because its built-in components make the project easier.
Schematics of Natal tree with remote control

Schematics of Natal tree with remote control
I highly recommend you to use a receiver module because its built-in components make the project easier.
Schematics of Natal tree with remote control

Comments
Only logged in users can leave comments