#include <IRremote.hpp>
#define merah 4
#define hijau 5
#define biru 6
#define kuning 7
#define irData 3
int jeda = 500;
int power = HIGH;
void setup() {
IrReceiver.begin(irData);
pinMode(irData, INPUT);
pinMode(merah, OUTPUT);
pinMode(hijau, OUTPUT);
pinMode(biru, OUTPUT);
pinMode(kuning, OUTPUT);
}
void loop() {
if (IrReceiver.decode()) {
jalankanPerintah();
IrReceiver.resume();
}
}
void jalankanPerintah() {
switch (IrReceiver.decodedIRData.command) {
case 48:
nyalaMerah();
break;
case 24:
nyalaHijau();
break;
case 122:
nyalaBiru();
break;
case 16:
nyalaKuning();
break;
case 104:
digitalWrite(merah, LOW);
digitalWrite(hijau, LOW);
digitalWrite(biru, LOW);
digitalWrite(kuning, LOW);
break;
case 162 :
power = !power;
if (power){
digitalWrite(merah, HIGH);
digitalWrite(hijau, HIGH);
digitalWrite(biru, HIGH);
digitalWrite(kuning, HIGH);
} else {
digitalWrite(merah, LOW);
digitalWrite(hijau, LOW);
digitalWrite(biru, LOW);
digitalWrite(kuning, LOW);
}
break;
case 82 :
rainbow();
}
}
void nyalaKuning(){
digitalWrite(kuning, HIGH);
delay(jeda);
}
void nyalaBiru(){
digitalWrite(biru, HIGH);
delay(jeda);
}
void nyalaHijau(){
digitalWrite(hijau, HIGH);
delay(jeda);
}
void nyalaMerah(){
digitalWrite(merah, HIGH);
delay(jeda);
}
void rainbow(){
for(int i=7;i>=4;i--){
digitalWrite(i, HIGH);
delay(100);
}
delay(100);
for(int i=7;i>=4;i--){
digitalWrite(i, LOW);
delay(100);
}
delay(50);
}