Teknologi Bissmillah.........
Assalamu'alaikum sahabat steem sea semoga kita semua di limpahkan rezeki dan selalu dalam keadaan sehat wal'afiat, bagi sahabat yang kurang sehat jangan lupa istirahat dan perbanyak minum air putih, dan satu lagi semoga kita semua selalu di lindungi dari virus corona yang lagi mewabah sekarang.
Kali ini Kita masih membahas tentang tutorial tutorial lagi semoga terhibur dan bermanfaat, jadi karna itu mari kita langsung saja.
Sistem Kerja Alat:
Robot line follower yaitu robot yang mengikuti line/jalur lintasan, sensor Infrared sebagai sensor pembaca garis. Sensor infrared (IR) menyala dan dipantulkan oleh media/lantai putih kemudian sensor Photo Diode (PD) membaca pantulan tersebut, sedangkan pada permukaan hitam (lakban hitam) infrared tidak dipantulkan sehingga sensor tidak membaca adanya pantulan infrared. Output sensor masuk pada IC LM324/komparator yang berfungsi sebagai penentu nilai/logika 1 (+5V) atau logika 0 (GND). Selain itu juga untuk mengatur respon sensor.
Keterangan Gambar:
- Gambar 1 menunjukkan IR memantul karena media pantulnya putih.
- Gambar 2 IR tidak memantul karena media pantulnya hitam.
- Gambar 3
- Ketika IR memantul pada media putih output sensor IR (PD) berlogika 0 (GND)
- IR mengenai warna hitam output IR berlogika 1 (+5V).
Sensor IR sisi kanan untuk menggerakkan motor DC sisi kiri, sedangkan sensor IR sisi kiri
untuk menggerakan motor DC sisi kanan, dan apabila ke-2 sensor membaca garis ke-2
motor akan berputar sehingga robot akan mengikuti garis tersebut. Semakin banyak sensor
pembaca line semakin bagus, nah kali ini 4 sensor saja ya kalau ingin lebih silahkan di desain
sendiri mudah kog.
Kebutuhan Hardware :
- 4 Sensor Inframerah (Sensor baca garis)
- Modul komparator (LM324)
- Driver Motor L298
- 2 Motor DC
- 2 Roda belakang
- 1 Roda depan (Roda bebas)
- 6 Baterai AA + Baterai holder
- Modul Arduino UNO
Diagram Blok:
Schematics
Untuk mempermudah pemahaman bisa kita lihat tabel dibawah ini:
Kondisi Infrared membaca warna ------------- | PWM Motor
IR1 | IR2 | IR3 | IR4 | Kanan (EA) | Kiri (EB) |
---|---|---|---|---|---|
Hitam | Putih | Putih | Putih | 0 | 255 |
Putih | Hitam | Putih | Putih | 80 | 220 |
Hitam | Hitam | Putih | Putih | 100 | 200 |
Putih | Hitam | Hitam | Putih | 230 | 230 |
Putih | Putih | Hitam | Putih | 200 | 100 |
Putih | Putih | Putih | Hitam | 220 | 0 |
Putih | Putih | Hitam | Hitam | 255 | 0 |
Semakin besar nilai PWM maka kecepatan putaran motor semakin cepat.
Koneksi Driver L298:
Pin L298 | Pin ARDUINO |
---|---|
IN1 | Pin 6 |
IN2 | Pin 7 |
IN3 | Pin 8 |
IN4 | Pin 9 |
ENA | Pin 10 |
ENB | Pin 11 |
Out 1 | + M1 |
Out 2 | - M1 |
Out 3 | + M2 |
Out 4 | - M2 |
Koneksi LM324:
PIN LM324 | Pin ARDUIN |
---|---|
PIN 1 (Out IR 1) | Pin 2 |
PIN 7 (Out IR 2) | Pin 3 |
PIN 8 (Out IR 3) | Pin 4 |
PIN 14 (Out IR 4) | Pin 5 |
Source Code/Sketch
const int IR1 = 2;
const int IR2 = 3;
const int IR3 = 4;
const int IR4 = 5;
const int IN1 = 6;
const int IN2 = 7;
const int IN3 = 8;
const int IN4 = 9;
const int EA = 10;
const int EB = 11;
// variables will change:
int inIR1 = 0;
int inIR2 = 0;
int inIR3 = 0;
int inIR4 = 0;
void baca_IR() {
inIR1 = digitalRead(IR1);
inIR2 = digitalRead(IR2);
inIR3 = digitalRead(IR3);
inIR4 = digitalRead(IR4);
}
void setup() {
//------- mode output ke driver motor
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(EA, OUTPUT);
pinMode(EB, OUTPUT);
//------- mode input sesnsor
pinMode(IR1, INPUT);
pinMode(IR2, INPUT);
pinMode(IR3, INPUT);
pinMode(IR4, INPUT);
//------ arah motor maju
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
delay(2000);
}
void loop(){
baca_IR();
if (inIR1 == 0 && inIR2 == 0 && inIR3 == 0 && inIR4 == 1) {
analogWrite(EA, 255);
analogWrite(EB, 0);
}
else if (inIR1 == 0 && inIR2 == 0 && inIR3 == 1 && inIR4 == 1) {
analogWrite(EA, 220);
analogWrite(EB, 80);
}
else if (inIR1 == 0 && inIR2 == 0 && inIR3 == 1 && inIR4 == 0) {
analogWrite(EA, 200);
analogWrite(EB, 100);
}
else if (inIR1 == 0 && inIR2 == 1 && inIR3 == 1 && inIR4 == 0) {
analogWrite(EA, 230);
analogWrite(EB, 230);
}
else if (inIR1 == 0 && inIR2 == 1 && inIR3 == 0 && inIR4 == 0) {
analogWrite(EA, 100);
analogWrite(EB, 200);
}
else if (inIR1 == 1 && inIR2 == 1 && inIR3 == 0 && inIR4 == 0) {
analogWrite(EA, 80);
analogWrite(EB, 220);
}
else if (inIR1 == 1 && inIR2 == 0 && inIR3 == 0 && inIR4 == 0) {
analogWrite(EA, 0);
analogWrite(EB, 255);
}
}
Jalannya Alat
- Buat desain robot sendiri sesuai keinginan, untuk koneksinya silahkan disesuaikan seperti pada rangkaian/skematik.
- Siapkan line/jalur lintasan menggunakan lakban hitam (lebar lakban = 3,5cm) dengan background / lantai dasar warna putih, bentuk bebas namun hindari sudut lintasan Siku atau yang lebih lancip.
- Pasang baterai dan nyalakan robot line follower sehingga lampu LED indikator nyala.
- Upload program di atas terlebih dahulu.
- Tes masing masing sensor dengan diberi kertas putih dan hitam, pastikan sensor bisa
membacanya. - alankan robot pada line yang tadi dibuat
- Apabila robot sering keluar lintasan bisa di trim ulang kepekaan sensor IR (trimport VR1 s/d VR4) atau bisa jadi sudut lintasannya terlalu tajam. Bisa juga Teman-teman ubah nilai masing masing output PWM-nya (analogWrite).
Nah jadi itulah Tutorial pada kali ini semoga bermanfa'at, Kalau ada yang ragu atau atau terdapat kesalahan pada tutorial bisa komendi bawah kita diskusi di kolom komentar, sekian dulu hormat saya Zakky Rakhmad wassalam.

EmoticonEmoticon