#include <IRremote.h>
#include <Stepper.h>
const int stepsPerRevolution = 200; // Ada 200 steps
int Receiver = 7; // Pin digital di pin 7 u menerima sinyal ir
IRrecv irrecv(Receiver); // Objek menerima sinyal
decode_results results; // Menyimpan hasil decoding sinyal ir
Stepper stepper(stepsPerRevolution, 8, 9, 10, 11); // Create stepper motor obj
int previous = 0; // Menyimpan langkah motor sebelumnya agar motor bergerak pd
int stepperSteps = 0; // Menyimpan jumlah langkah
void setup() {
stepper.setSpeed(200); // Atur kecepatan motor 200 rpm
Serial.begin(9600); // Initialize serial communication
irrecv.enableIRIn(); // Mengaktifkan IR signals
Serial.println("Start"); // Initial message
}
void loop() {
if (irrecv.decode()) { // Ada sinyal yang diterima
IRremote(); // Handle IR remote commands
irrecv.resume(); // Receive the next value
stepper.step(stepperSteps - previous); // Move stepper motor by the specified steps
previous = stepperSteps; // Update previous steps
Serial.print("Stepper motor bergerak ke posisi: ");
Serial.println(stepperSteps);
}
}
void IRremote() {
int IRinput = irrecv.decodedIRData.command;
if (IRinput == 152) { // Tombol -
stepperSteps -= 1;
if (stepperSteps < 0) {
stepperSteps = 0;
}
}
if (IRinput == 2) { // Tombol +
stepperSteps += 1;
if (stepperSteps > 200) {
stepperSteps = 200;
}
}
}