// Definisi pin
const int dirPin = 2; // Pin arah
const int stepPin = 3; // Pin langkah
const int stepsPerRevolution = 200; // Jumlah langkah per putaran (sesuaikan dengan motor Anda)
// Fungsi untuk menggerakkan motor dengan kecepatan tertentu
void moveStepper(int steps, int speedMicroseconds) {
for (int i = 0; i < steps; i++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(speedMicroseconds);
digitalWrite(stepPin, LOW);
delayMicroseconds(speedMicroseconds);
}
}
void setup() {
// Atur pin sebagai output
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
}
void loop() {
// Putaran searah jarum jam
digitalWrite(dirPin, HIGH);
// 1. Kecepatan cepat
moveStepper(stepsPerRevolution, 500); // 500 mikrodetik per langkah (kecepatan tinggi)
delay(1000); // Tunggu 1 detik
// 2. Kecepatan lambat
moveStepper(stepsPerRevolution, 2000); // 2000 mikrodetik per langkah (kecepatan rendah)
delay(1000); // Tunggu 1 detik
// 3. Kecepatan cepat lagi
moveStepper(stepsPerRevolution, 500); // 500 mikrodetik per langkah (kecepatan tinggi)
delay(1000); // Tunggu 1 detik
// Putaran berlawanan arah jarum jam
digitalWrite(dirPin, LOW);
// 1. Kecepatan cepat
moveStepper(stepsPerRevolution, 500);
delay(1000);
// 2. Kecepatan lambat
moveStepper(stepsPerRevolution, 2000);
delay(1000);
// 3. Kecepatan cepat lagi
moveStepper(stepsPerRevolution, 500);
delay(1000);
}