#include <ESP32Servo.h> // Ganti dengan library ESP32Servo
#include <IRremote.h> // Library IRremote
// Deklarasi pin dan variabel
int ReceiverPin = 4; // Pin untuk IR Receiver pada ESP32
int angle = 0; // Sudut awal servo di 90 derajat
IRrecv irrecv(ReceiverPin);
decode_results results;
Servo servoku;
void setup() {
Serial.begin(115200); // Memulai komunikasi serial dengan baud rate 115200
irrecv.enableIRIn(); // Memulai penerimaan sinyal IR
servoku.attach(15); // Menghubungkan servo ke pin GPIO 15
servoku.write(angle); // Mengatur posisi awal servo di 90 derajat
}
void loop() {
if (irrecv.decode()) {
// Mendapatkan perintah dari IR remote
int IRinput = irrecv.decodedIRData.command;
// Pengaturan sudut servo dengan tombol + dan -
if (IRinput == 2) { // Tombol "-" pada remote
angle += 1; // Menambah sudut servo 1 derajat
if (angle > 180) { // Cek jika sudut melebihi 180 derajat
angle = 180;
}
}
if (IRinput == 152) { // Tombol "+" pada remote
angle -= 1; // Mengurangi sudut servo 1 derajat
if (angle < 0) { // Cek jika sudut kurang dari 0 derajat
angle = 0;
}
}
// Mencetak sudut servo ke Serial Monitor
Serial.println(angle);
// Menggerakkan servo sesuai dengan sudut yang diatur
servoku.write(angle);
// Melanjutkan untuk menerima sinyal IR berikutnya
irrecv.resume();
}
}