// Definisi pin untuk motor driver L298N
#define IN1 2 // Roda kiri maju
#define IN2 3 // Roda kiri mundur
#define IN3 4 // Roda kanan maju
#define IN4 5 // Roda kanan mundur
void setup() {
// Inisialisasi semua pin sebagai OUTPUT
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
// Pastikan semua motor mati di awal
stopMotor();
// Tunggu 2 detik sebelum mulai
delay(2000);
}
void loop() {
// 1. Maju 2 detik
maju();
delay(2000);
// 2. Mundur 2 detik
mundur();
delay(2000);
// 3. Belok kiri 2 detik (satu roda berhenti/maju pelan)
belokKiri();
delay(2000);
// 4. Belok kanan 2 detik (satu roda berhenti/maju pelan)
belokKanan();
delay(2000);
// 5. Putar kiri 2 detik (berputar di tempat)
putarKiri();
delay(2000);
// 6. Putar kanan 2 detik (berputar di tempat)
putarKanan();
delay(2000);
// Berhenti sebentar sebelum mengulang
stopMotor();
delay(1000);
}
// Fungsi untuk berhenti
void stopMotor() {
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
// Fungsi untuk maju
void maju() {
// Roda kiri maju
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
// Roda kanan maju
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
// Fungsi untuk mundur
void mundur() {
// Roda kiri mundur
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
// Roda kanan mundur
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
// Fungsi untuk belok kiri (roda kanan maju, roda kiri diam)
void belokKiri() {
// Roda kiri diam
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
// Roda kanan maju
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
// Fungsi untuk belok kanan (roda kiri maju, roda kanan diam)
void belokKanan() {
// Roda kiri maju
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
// Roda kanan diam
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
}
// Fungsi untuk putar kiri (berputar di tempat - roda kiri mundur, roda kanan maju)
void putarKiri() {
// Roda kiri mundur
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
// Roda kanan maju
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
// Fungsi untuk putar kanan (berputar di tempat - roda kiri maju, roda kanan mundur)
void putarKanan() {
// Roda kiri maju
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
// Roda kanan mundur
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}