// Kelompok 3 TRK 58 B2
// Menambahkan library stepper motor
#include <Stepper.h>
// Mengatur jumlah langkah dalam satu rotasi motor driver
const int stepMotor = 100;
const int rpmMotor = 60;
// Menginisialisasikan motor driver dengan nama myMotor ke pin arduino 8 - 11
Stepper myMotor(stepMotor, 8, 9, 10, 11);
void setup() {
// Mengatur kecepatan rpm motor
myMotor.setSpeed(rpmMotor);
// Menginisialisasikan port serial
Serial.begin(9600);
}
void loop() {
// Membuat motor berputar searah jarum jam selama 5 detik
Serial.println("searah jarum jam");
putarMotor(5, true);
// Memberikan delay motor berhenti selama 3 detik
Serial.println("berhenti");
delay(3000);
// Membuat motor berputar berlawanan arah jarum jam selama 5 detik
Serial.println("berlawanan arah jarum jam");
putarMotor(5, false);
// Memberikan delay motor berhenti selama 3 detik
Serial.println("berhenti");
delay(3000);
}
// Membuat function memutar motor selama x detik
void putarMotor(int durasi, bool arah) {
// Untuk mengetahui banyak rotasi dalam satu detim dapat dihitung dari nilai rpm bagi 60
// karena rpm adalah banyak rotasi dalam satu menit
int rotasiSedetik = rpmMotor / 60;
// Maka banyak rotasi yang dilakukan adalah durassi (detik) * banyak rotasi sedetik * stepMotor(satu rotasi)
int jumlahRotasi = durasi * rotasiSedetik * stepMotor;
// tentukan arah putaran, jika true searah +, jika flase berlawanan (-)
jumlahRotasi = arah ? jumlahRotasi : -jumlahRotasi;
// putar motor
myMotor.step(jumlahRotasi);
}