#include <IRremote.h>
#include <Stepper.h>
#define IR_RECEIVE_PIN 15
#define STEPS_PER_REVOLUTION 2048 // Sesuaikan dengan spesifikasi motor
// Inisialisasi stepper motor pada pin 12, 14, 27, 26
Stepper myStepper(STEPS_PER_REVOLUTION, 12, 14, 27, 26);
int currentPosition = 0;
void setup() {
Serial.begin(115200);
// Mulai penerima IR
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK);
// Set kecepatan awal stepper (dalam RPM)
myStepper.setSpeed(3);
Serial.println("Stepper Motor Control dengan IR Remote siap");
}
void loop() {
if (IrReceiver.decode()) {
Serial.printf("Kode IR diterima: 0x%08X\n", IrReceiver.decodedIRData.decodedRawData);
switch(IrReceiver.decodedIRData.decodedRawData) {
case 0xFD02FF00: // Tombol "+"
myStepper.step(STEPS_PER_REVOLUTION / 360); // Putar 1 derajat searah jarum jam
currentPosition++;
break;
case 0x6798FF00: // Tombol "-"
myStepper.step(-STEPS_PER_REVOLUTION / 360); // Putar 1 derajat berlawanan arah jarum jam
currentPosition--;
break;
default:
// Kode lain, abaikan
break;
}
Serial.printf("Posisi motor sekarang: %d derajat\n", currentPosition);
IrReceiver.resume();
}
delay(50); // Delay kecil untuk stabilitas
}