const int dirPin = 3;
const int stepPin = 2;
const int stepsPerRevolution = 200;
const int delayTime = 2000; // Waktu delay antara setiap langkah dalam mikrodetik
// Hitung jumlah langkah untuk 90 dan 180 derajat
const int stepsPer90Degrees = stepsPerRevolution / 4; // 90 derajat
const int stepsPer180Degrees = stepsPerRevolution / 2; // 180 derajat
void setup(){
pinMode(dirPin, OUTPUT);
pinMode(stepPin, OUTPUT);
}
void loop(){
// Putar 90 derajat ke kanan sebanyak 2 kali
for (int i = 0; i < 2; i++) {
digitalWrite(dirPin, HIGH); // Arah putaran ke kanan
for(int x = 0; x < stepsPer90Degrees; x++){
digitalWrite(stepPin, HIGH);
delayMicroseconds(delayTime);
digitalWrite(stepPin, LOW);
delayMicroseconds(delayTime);
}
delay(500); // Jeda antara putaran 90 derajat
}
delay(1000); // Jeda setelah putaran 90 derajat ke kanan selesai
// Putar 180 derajat ke kiri sebanyak 2 kali
for (int i = 0; i < 2; i++) {
digitalWrite(dirPin, LOW); // Arah putaran ke kiri
for(int x = 0; x < stepsPer180Degrees; x++){
digitalWrite(stepPin, HIGH);
delayMicroseconds(delayTime);
digitalWrite(stepPin, LOW);
delayMicroseconds(delayTime);
}
delay(500); // Jeda antara putaran 180 derajat
}
delay(1000); // Jeda setelah putaran 180 derajat ke kiri selesai
}