1 buah Arduino (bisa menggunakan Arduino UNO, MEGA, NANO, MINI atau yang
lain. bisa diperoleh Di Sini)
1 buah Modul Sensor Line Tracking isi 4 (Bisa diperoleh Di Sini)
1 buah Driver Motor L298N (Bisa diperoleh Di Sini)
2 buah Motor DC + Roda (Bisa diperoleh Di Sini)
Baterai sesuai kebutuhan, tegangan sekitar 5-12V (Bisa diperoleh Di Sini)
Kabel jumper secukupnya (Bisa diperoleh Di Sini)
Breadboard/Projectboard jika diperlukan (Bisa didapat Di Sini)
Software Arduino IDE (Jika belum punya, maka download Di Sini)
Dan jika ingin belajar bagaimana cara menggunakan Arduino bagi pemula,
silahkan download Ebook nya Di Sini
Keterangan Rangkaian :
Bisa Menggunakan Segala Jenis Arduino (UNO, NANO, MEGA, MINI,
dll), karena penomoran pinnya sama. Tinggal cocokkan Saja nomor
Pin-Pin nya.
Pin Modul Sensor no. 1 ==> Pin A5 Arduino
Pin Modul Sensor no. 2 ==> Pin A4 Arduino
Pin Modul Sensor no. 3 ==> Pin A3 Arduino
Pin Modul Sensor no. 4 ==> Pin A2 Arduino
Pin In1 Driver Motor ==> Pin 7 Arduino
Pin In2 Driver Motor ==> Pin 6 Arduino
Pin In3 Driver Motor ==> Pin 5 Arduino
Pin In4 Driver Motor ==> Pin 4 Arduino
Pin ENA-bawah Driver Motor ==> Pin 9 Arduino
Pin ENB-bawah Driver Motor ==> Pin 9 Arduino
Pin ENA-atas Driver Motor ==> Pin 5V Arduino
Pin ENB-atas Driver Motor ==> Pin 5V Arduino
OUT1 dan OUT2 Driver Motor ==> Motor 1
OUT3 dan OUT4 Driver Motor ==> Motor 2
Pin 12V Driver Motor ==> Hubungkan ke baterai
Pin GND Driver Motor ==> Hubungkan ke Ground(-) Baterai dan
Ground(GND) Arduino
Kaki vcc pada masing-masing komponen hubungkan ke sumber power
positif 5v (bisa dari 5v Arduino)
Kaki gnd/ground pada masing-masing komponen hubungkan ke
sumber negatif power (dihubungkan ke pin gnd Arduino)
Setelah itu, silahkan upload program seperti di bawah ini pada software
Arduino IDE milik sobat, dan tata cara upload program ke Arduino bisa
sobat baca Di Sini :
// ------ Project Membuat Robot Line Follower 4 Sensor ------- //
// ------------- Dibuat oleh : M. Nofgi Y.P.U. -------------- //
// ------------- www.nofgipiston.wordpress.com -------------- //
void setup()
{
// inialisasi pin motor sebagai output
pinMode(motor1, OUTPUT);
pinMode(motor2, OUTPUT);
pinMode(motor3, OUTPUT);
pinMode(motor4, OUTPUT);
void loop ()
{
// masing2 variabel data menyimpan hasil pembacaan sensor
// berupa logic LOW/HIGH
data1 = digitalRead(sensor1);
data2 = digitalRead(sensor2);
data3 = digitalRead(sensor3);
data4 = digitalRead(sensor4);
if (data1 == LOW && data2 == LOW && data3 == LOW && data4 == LOW)
{
//maju
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
}
else if (data1 == HIGH && data2 == HIGH && data3 == HIGH && data4 == LOW)
{
//kanan
digitalWrite(motor1, LOW);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
}
else if (data1 == LOW && data2 == HIGH && data3 == HIGH && data4 == HIGH)
{
//kiri
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
digitalWrite(motor4, HIGH);
}
else if (data1 == HIGH && data2 == HIGH && data3 == LOW && data4 == LOW)
{
//kanan
digitalWrite(motor1, LOW);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
}
else if (data1 == LOW && data2 == LOW && data3 == HIGH && data4 == HIGH)
{
//kiri
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
digitalWrite(motor4, HIGH);
}
else if (data1 == HIGH && data2 == LOW && data3 == LOW && data4 == LOW)
{
//kanan
digitalWrite(motor1, LOW);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
}
else if (data1 == LOW && data2 == LOW && data3 == LOW && data4 == HIGH)
{
//kiri
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
digitalWrite(motor4, HIGH);
}
else if (data1 == HIGH && data2 == LOW && data3 == HIGH && data4 == LOW)
{
//kanan
digitalWrite(motor1, LOW);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
}
else if (data1 == LOW && data2 == HIGH && data3 == LOW && data4 == HIGH)
{
//kiri
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
digitalWrite(motor4, HIGH);
}
else if (data1 == LOW && data2 == HIGH && data3 == LOW && data4 == LOW)
{
//kanan
digitalWrite(motor1, LOW);
digitalWrite(motor2, HIGH);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
}
else if (data1 == LOW && data2 == LOW && data3 == HIGH && data4 == LOW)
{
//kiri
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, LOW);
digitalWrite(motor4, HIGH);
}
else if (data1 == LOW && data2 == HIGH && data3 == HIGH && data4 == LOW)
{
//maju
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
}
else if (data1 == HIGH && data2 == HIGH && data3 == HIGH && data4 == HIGH)
{
//maju
digitalWrite(motor1, HIGH);
digitalWrite(motor2, LOW);
digitalWrite(motor3, HIGH);
digitalWrite(motor4, LOW);
}
}
Sifat dari sensor garis/line tracking ini adalah saat dia mendeteksi warna putih, maka output
sensor berupa data logic LOW, sedangakan saat sensor mendeteksi garis hitam, maka output
data berupa logic HIGH.
Nah berdasarkan cara kerja sensor inilah kita mengatur pergerakan roda motor pada robot.
Perhatikan tabel di bawah ini :
Untuk pergerakan belok kanan-kiri pada robot ini menggunakan sistem differential drive. Jadi
bukan pakai steering, melainkan perbedaan arah putar pada roda kanan-kiri. Contohnya kalau
mau belok kanan, maka motor kanan berjalan mundur dan motor kiri berjalan maju,
sedangkan jika belok kiri maka motor kiri berjalan mundur dan motor kanan bergerak maju.
Ketika sensor kanan mendeteksi garis hitam, robot akan berbelok ke kanan. Dan sebaliknya,
saat sensor kiri mendeteksi garis hitam, maka robot akan berbelok ke kiri. Untuk lebih
jelasnya silahkan dilihat pada program.