#include <LiquidCrystal_I2C.h>
#include <IRremote.hpp>
#include <Servo.h>
#define pinIR 2
#define ledU 3
#define ledM 4
#define pinRelay 9
#define pinServo 10
LiquidCrystal_I2C myLCD(0x27,16,2);
Servo myServo;
IRrecv myIR(pinIR);
void setup() {
myIR.enableIRIn();
myServo.attach(pinServo);
pinMode(pinIR, INPUT);
pinMode(ledU, OUTPUT);
pinMode(ledM, OUTPUT);
pinMode(pinRelay, OUTPUT);
pinMode(pinServo, OUTPUT);
myLCD.init();
myLCD.backlight();
myLCD.setCursor(4, 0);
myLCD.print("WIKARYA");
myLCD.setCursor(0, 1);
myLCD.print("WIDYA KARMA JAYA");
}
void loop() {
if (myIR.decode()) {
jalankanPerintah();
myIR.resume();
}
}
void jalankanPerintah() {
switch (myIR.decodedIRData.command) {
case 48: //tombol 1
digitalWrite(ledU, HIGH);
break;
case 24: //tombol 2
digitalWrite(ledM, HIGH);
break;
case 122: //tombol 3
digitalWrite(pinRelay, HIGH);
break;
case 16: //tombol 4
digitalWrite(ledU, LOW);
break;
case 56: //TOMBOL 5
digitalWrite(ledM, LOW);
break;
case 90: //TOMBOL 6
digitalWrite(pinRelay, LOW);
break;
case 104: //TOMBOL 0
digitalWrite(ledU, LOW);
digitalWrite(ledM, LOW);
digitalWrite(pinRelay, LOW);
break;
case 2: myServo.write(180); break;
case 152: myServo.write(0); break;
}
}