Cara Membuat Robot Pengikut Garis dengan Arduino (Panduan Lengkap)

Robotik & Hardware, ELrolumNews — Anda sudah bisa menyalakan LED, membaca sensor, bahkan membuat smart home. Tapi ada satu proyek robotik yang wajib dicoba oleh setiap pemula: robot pengikut garis (line follower).

Artikel ini cocok untuk: Anda yang sudah familiar dengan dasar Arduino dan ingin membuat proyek robotik pertama yang benar-benar bergerak—bukan sekadar LED berkedip.

Robot pengikut garis adalah robot yang bisa mengikuti garis—biasanya garis hitam di atas permukaan putih—secara otomatis. Ia membaca garis dengan sensor inframerah, lalu menggerakkan motor kiri dan kanan untuk tetap berada di atas garis .

Kabar baiknya: robot ini bisa dibuat dengan biaya di bawah Rp300 ribu—dan semua komponennya mudah didapat. Di artikel ini, kita akan bahas dari nol: komponen, wiring, kode program, hingga tips agar robot Anda bergerak mulus.

Komponen yang Dibutuhkan

KomponenFungsiPerkiraan Harga
Arduino Uno / NanoMikrokontrolerRp80-150 ribu
Sensor IR (TCRT5000)Mendeteksi garisRp15-30 ribu (2 buah)
Driver Motor L298NMengontrol motorRp30-50 ribu
Motor DC + RodaPenggerakRp50-100 ribu
Chassis + Ball CasterRangka robotRp50-100 ribu
Baterai (6V-12V)PowerRp30-50 ribu
Kabel JumperKoneksiRp10-20 ribu

💡 Tips Pro: Untuk pemula, mulai dengan 2 sensor IR dulu. Robot dengan 5 sensor memang lebih presisi, tapi 2 sensor sudah cukup untuk memahami konsep dasarnya .

Langkah 1: Memahami Cara Kerja Sensor IR

Sensor IR (TCRT5000) terdiri dari LED inframerah dan fototransistor .

Prinsip Kerja

PermukaanPantulanOutput Sensor
PutihBanyak pantulanHIGH (atau LOW, tergantung modul)
HitamSedikit pantulanLOW (atau HIGH, tergantung modul)

Catatan penting: Logika output bisa berbeda tergantung modul yang Anda beli. Ada yang output HIGH saat mendeteksi hitam, ada yang LOW saat mendeteksi hitam . Cek dengan LED indikator di modul atau test dengan Serial Monitor.

Langkah 2: Wiring Hardware

2.1 Koneksi Sensor IR ke Arduino

Sensor IRArduino
VCC5V
GNDGND
OUT KiriDigital Pin 11
OUT KananDigital Pin 12

2.2 Koneksi Driver Motor L298N ke Arduino

L298NArduinoFungsi
ENAPin 5 (PWM)Kecepatan motor kiri
IN1Pin 9Arah motor kiri
IN2Pin 10Arah motor kiri
ENBPin 6 (PWM)Kecepatan motor kanan
IN3Pin 7Arah motor kanan
IN4Pin 8Arah motor kanan

2.3 Koneksi Motor DC

MotorL298N
Motor KiriOUT1 & OUT2
Motor KananOUT3 & OUT4

2.4 Power

  • Baterai ke VCC L298N (untuk motor)

  • GND L298N ke GND Arduino (common ground)

  • 5V L298N ke 5V Arduino (opsional, jika L298N punya regulator)

⚠️ Peringatan: Jangan menyalakan motor langsung dari pin Arduino. Motor butuh arus besar—driver motor L298N yang menanganinya .

Langkah 3: Kode Program Dasar (2 Sensor)

Ini kode paling sederhana untuk robot pengikut garis.

Kode

cpp
// Pin Sensor IR
#define IR_KIRI 11
#define IR_KANAN 12

// Pin Motor Kiri
#define ENA 5
#define IN1 9
#define IN2 10

// Pin Motor Kanan
#define ENB 6
#define IN3 7
#define IN4 8

// Kecepatan motor (0-255)
#define KECEPATAN 150

void setup() {
  // Sensor sebagai input
  pinMode(IR_KIRI, INPUT);
  pinMode(IR_KANAN, INPUT);

  // Motor sebagai output
  pinMode(ENA, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(ENB, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);

  Serial.begin(9600);
}

void loop() {
  int bacaKiri = digitalRead(IR_KIRI);
  int bacaKanan = digitalRead(IR_KANAN);

  Serial.print("Kiri: ");
  Serial.print(bacaKiri);
  Serial.print(" | Kanan: ");
  Serial.println(bacaKanan);

  // Logika: sesuaikan dengan sensor Anda
  // Asumsi: LOW = mendeteksi hitam (garis)

  if (bacaKiri == LOW && bacaKanan == LOW) {
    // Kedua sensor di garis → maju
    maju();
  } else if (bacaKiri == LOW && bacaKanan == HIGH) {
    // Kiri di garis, kanan keluar → belok kiri
    belokKiri();
  } else if (bacaKiri == HIGH && bacaKanan == LOW) {
    // Kanan di garis, kiri keluar → belok kanan
    belokKanan();
  } else {
    // Kedua sensor keluar garis → berhenti
    berhenti();
  }

  delay(50);
}

// Fungsi Gerakan
void maju() {
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
  analogWrite(ENA, KECEPATAN);
  analogWrite(ENB, KECEPATAN);
}

void belokKiri() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH); // Motor kiri mundur
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);  // Motor kanan maju
  analogWrite(ENA, KECEPATAN);
  analogWrite(ENB, KECEPATAN);
}

void belokKanan() {
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);  // Motor kiri maju
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH); // Motor kanan mundur
  analogWrite(ENA, KECEPATAN);
  analogWrite(ENB, KECEPATAN);
}

void berhenti() {
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, LOW);
}

Cara Kerja

Kondisi SensorAksi Robot
Kiri & Kanan di garisMaju lurus 
Kiri di garis, Kanan keluarBelok kiri
Kanan di garis, Kiri keluarBelok kanan
Keduanya keluarBerhenti

💡 Tips Pro: Jika robot Anda berputar di tempat atau bergerak terbalik, kemungkinan logika sensor terbalik. Ganti LOW menjadi HIGH di kondisi if .

Langkah 4: Kalibrasi Sensor

Setiap sensor IR punya potensiometer untuk mengatur sensitivitas. Kalibrasi sangat penting—tanpa ini, robot akan salah membaca garis .

Cara Kalibrasi

  1. Letakkan robot di atas permukaan putih

  2. Putar potensiometer sensor kiri sampai LED indikator mati

  3. Geser sensor ke atas garis hitam

  4. LED indikator harus menyala

  5. Ulangi untuk sensor kanan

Threshold ideal: Sensor hanya mendeteksi hitam sebagai garis, dan putih sebagai latar belakang.

⚠️ Peringatan: Kalibrasi harus diulang jika Anda mengganti permukaan (misalnya dari kertas ke lantai) atau mengubah ketinggian sensor .

Langkah 5: Naik Level — 5 Sensor + PID (Opsional)

Jika robot 2 sensor sudah berjalan, Anda bisa naik level dengan 5 sensor array dan PID controller untuk gerakan yang lebih mulus .

Mengapa 5 Sensor?

2 Sensor5 Sensor
Hanya tahu “kiri/kanan”Tahu posisi presisi garis
Gerakan patah-patahGerakan halus
Sulit di tikungan tajamBisa tikungan tajam

Konsep PID (Sederhana)

PID adalah algoritma yang menghitung error (seberapa jauh robot dari garis) dan mengoreksi secara proporsional—bukan sekadar “belok kiri/belok kanan” .

cpp
// Contoh sederhana PID error
int error = posisiGaris - posisiTarget;
int koreksi = Kp * error;
// Motor kiri = KECEPATAN + koreksi
// Motor kanan = KECEPATAN - koreksi

💡 Tips Pro: Mulai dengan Kp saja (tanpa Ki dan Kd). Naikkan Kp sampai robot mulai berosilasi, lalu turunkan sedikit. Baru tambahkan Kd untuk meredam osilasi .

Troubleshooting: Masalah Umum

MasalahPenyebabSolusi
Robot tidak bergerakMotor tidak dapat powerCek baterai & koneksi L298N
Robot berputar di tempatLogika sensor terbalikGanti LOW jadi HIGH
Robot keluar garisSensor tidak dikalibrasiKalibrasi ulang
Robot bergerak patah-patahKecepatan terlalu tinggiTurunkan KECEPATAN
Satu motor tidak jalanWiring salahCek IN1-IN4 & ENA/ENB

Kesalahan Umum dan Cara Menghindarinya

KesalahanAkibatSolusi
Tidak kalibrasi sensorRobot salah baca garisKalibrasi sebelum digunakan 
Motor langsung dari ArduinoPin rusakGunakan driver L298N 
Tidak common groundMotor tidak stabilHubungkan semua GND
Kecepatan maksimalRobot tidak bisa belokMulai dari kecepatan rendah

Kesimpulan

Membuat robot pengikut garis dengan Arduino bukan proyek yang mustahil. Kuncinya:

  1. Siapkan komponen — Arduino, sensor IR, L298N, motor DC

  2. Wiring dengan benar — sensor ke pin digital, motor ke driver

  3. Upload kode dasar — logika 2 sensor

  4. Kalibrasi sensor — sesuaikan potensiometer

  5. Test dan tuning — turunkan kecepatan jika perlu

  6. Naik level — 5 sensor + PID untuk gerakan mulus

Dengan biaya di bawah Rp300 ribu, Anda sudah bisa membuat robot yang benar-benar bergerak sendiri—sesuatu yang membanggakan untuk proyek pertama .

Ingat: Robot pengikut garis adalah fondasi robotik. Setelah menguasainya, Anda bisa lanjut ke robot penghindar halanganrobot penjejak cahaya, atau robot maze solver .

Sudah siap membuat robot pengikut garis pertama Anda?

💬 Punya proyek line follower? Bagikan di kolom komentar!

(el)

Share:

Tinggalkan Komentar

Please enter your comment!
Please enter your name here

More like this

Ilustrasi kontrol servo dengan Arduino, potensiometer, sudut 0-180°, dan proyek kamera pan-tilt

Cara Mengontrol Servo dengan Arduino (Panduan Lengkap)

Robotik & Hardware, Elrolumnews — Anda sudah bisa membuat robot pengikut garis, sudah bisa mengukur jarak dengan ultrasonik,...
Ilustrasi sensor ultrasonik HC-SR04 dengan Arduino untuk pengukuran jarak, gelombang suara, LCD, dan alarm kedekatan

Cara Menggunakan Sensor Ultrasonik HC-SR04 dengan Arduino (Panduan Lengkap)

Robotik & Hardware, ElrolumNews — Anda sudah bisa membuat robot pengikut garis, sudah bisa membaca sensor PIR, sudah...
Ilustrasi ESP32-CAM untuk monitoring dengan kamera OV2640, FTDI adapter, streaming video, dan privasi lokal

Cara Menggunakan ESP32-CAM untuk Monitoring (Panduan Lengkap)

Robotik & Hardware, ElrolumNews — Anda sudah bisa memprogram ESP32, sudah membuat smart home, sudah punya sensor PIR...

More

Recomended

Read More