Membuat Robot Line Follower dengan Arduino

Project kali ini kita akan membuat robot pengikut garis. Saya membuat robot pengikut garis ini dengan 3 buah sensor dan berpenggerak 2 roda. Ini adalah robot yang berjalan mengikuti garis hitam yang membawa robot ke tujuan tertentu. Dengan kemampuan 3 buah sensor, robot ini juga dapat mendeteksi garis 90 derajat dan garis 40 derajat yang membuatnya tetap berjalan.

Bahan-bahan yang Dibutuhkan

Untuk membuat robot dengan tiga buah sensor proximity line follower ini kita membutuhkan beberapa komponen.

  • 3 buah sensor infra merah
  • 2 buah Motor gir dan roda
  • Arduino Uno/Nano
  • L298N Motor Driver
  • roda caster depan
  • Battery 12/9 Volt
  • Kabel Jumper
  • Chassis

Merakit Chasis

  • Pertama pasang sensor jarak ke bagian depan sasis menghadap ke bawah.
  • Sensor kiri di Pojok Kiri Chassis.
  • sensor tengah di tengah Chassis.
  • Sensor kanan di Pojok Kanan Chassis.
  • Pasang Arduino Uno ke Tengah Chassis.
  • Pasang Driver Motor ke sedikit bagian belakang Arduino Uno.

Skema Rangkaian

Sensor kiri >> Arduino Uno

VCC >> 5V
GND >> GND
OUTPUT >> 7


Sensor tengah >> Arduino UnoVCC >> 5V
GND >> GND
OUTPUT >> 8


Sensor kanan >> Arduino UnoVCC >> 5V
GND >> GND
OUTPUT >> 9


L298N >> Arduino Uno
EA >> 10
INPUT 1 >> 2
INPUT 2 >> 3
INPUT 3 >> 4
INPUT 4 >> 5
EB >> 11
5Volt >> 5Volt
GND >> GND
Berikan 12Volt ke 12Volt L298N.

Source Code

Source code bisa didownload disini.

#include <Arduino.h>
int E_A = 11; 
int IN_1 = 2;
int IN_2 = 3;
int IN_3 = 4;
int IN_4 = 5;
int E_B = 10;       


int L_S = 7;
int C_S = 8;
int R_S = 9;

void setup() {
 pinMode(IN_1,OUTPUT);
 pinMode(IN_2,OUTPUT);
 pinMode(IN_3,OUTPUT);
 pinMode(IN_4,OUTPUT);
 pinMode(E_A,OUTPUT); 
 pinMode(E_B,OUTPUT);

pinMode(L_S,INPUT);
pinMode(C_S,INPUT);
pinMode(R_S,INPUT);

analogWrite(E_A, 160);
analogWrite(E_B, 160);

delay(100);

} 
void loop() {
	
if ((digitalRead (L_S)  == 0)&&(digitalRead (C_S) == 1)&&(digitalRead (R_S)  == 0))//FORWARD
digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);

if ((digitalRead (L_S) == 1)&&(digitalRead (C_S) == 1)&&(digitalRead (R_S) == 0)) //90 DEGREE LEFT TURN
digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
digitalWrite(IN_3, LOW);
digitalWrite(IN_4, HIGH);

if ((digitalRead (L_S) == 1)&&(digitalRead (C_S) == 0)&&(digitalRead (R_S) == 0))//LEFT TURN
digitalWrite(IN_1, HIGH);
digitalWrite(IN_2, LOW);
digitalWrite(IN_3, LOW);
digitalWrite(IN_4, LOW);

if ((digitalRead (L_S) == 0)&&(digitalRead (C_S) == 1)&&(digitalRead (R_S) == 1))//90 DEGREE RIGHT TURN
digitalWrite(IN_1, LOW);
digitalWrite(IN_2, HIGH);
digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);

if ((digitalRead (L_S) == 0)&&(digitalRead (C_S) == 0)&&(digitalRead (R_S) == 1))//RIGHT TURN

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, LOW);
digitalWrite(IN_3, HIGH);
digitalWrite(IN_4, LOW);

if ((digitalRead (L_S) == 1)&&(digitalRead (C_S) == 1)&&(digitalRead (R_S) == 1))//STOP

digitalWrite(IN_1, LOW);
digitalWrite(IN_2, LOW);
digitalWrite(IN_3, LOW);
digitalWrite(IN_4, LOW);
}
Baca juga :  Belajar Arduino – Shield Multifungsi : Menampilkan Nilai Potensiometer Pada Tampilan Seven Segmen

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *