#include <Stepper.h>
#define STEPS_PER_REVOLUTION 2048 // Sesuaikan dengan spesifikasi motor
#define POT_PIN 34 // Pin analog untuk potensiometer
// Inisialisasi stepper motor pada pin 12, 14, 27, 26
Stepper myStepper(STEPS_PER_REVOLUTION, 12, 14, 27, 26);
int lastPotValue = 0;
int currentPosition = 0;
void setup() {
Serial.begin(115200);
// Set kecepatan awal stepper (dalam RPM)
myStepper.setSpeed(10);
// Set up pin potensiometer
pinMode(POT_PIN, INPUT);
Serial.println("Stepper Motor Control dengan Potensiometer siap");
}
void loop() {
// Baca nilai potensiometer (0-4095)
int potValue = analogRead(POT_PIN);
// Petakan nilai potensiometer ke sudut (0-360 derajat)
int targetPosition = map(potValue, 0, 4095, 0, 360);
// Hitung perbedaan posisi
int diff = targetPosition - currentPosition;
// Jika ada perubahan signifikan, gerakkan motor
if (abs(diff) > 1) {
int steps = map(diff, -360, 360, -STEPS_PER_REVOLUTION, STEPS_PER_REVOLUTION);
myStepper.step(steps);
currentPosition = targetPosition;
Serial.print("Nilai Potensiometer: ");
Serial.print(potValue);
Serial.print(" | Posisi Target: ");
Serial.print(targetPosition);
Serial.print(" | Langkah: ");
Serial.println(steps);
}
delay(50); // Delay kecil untuk stabilitas
}