09 - ROBOT LIGHT FOLLOWER DIGITAL
- Sabtu, 09 November 2024
- Administrator
- 0 komentar
ENTANG LIGHT FOLLOWER
Sekilas tentang robot light follower, dari namanya saja sudah jelas yaitu robot yang mengikuti cahaya, dengan menggunakan LDR sebagai sensor cahayanya. LDR (Light Dependent Resistor) adalah resisitor yang apabila terkena cahaya maka nilai hambatan/resistansinya berubah. Hasil pembacaan sensor tersebut kemudian masuk pada pin Arduino Nano sebagai data Analog. Hasil pembacaan sensor digunakan untuk menjalankan roda.
Sistem kerjanya sebagai berikut:
- Apabila Sensor LDR kanan intensitas cahayanya lebih terang maka putar roda kiri.
- Apabila Sensor LDR kiri intensitas cahayanya lebih terang maka putar roda kanan.
- Apabila kedua sensor intensitas cahayanya sama maka robot akan berjalan lurus.
Rangkaian diatas adalah rangkain voltage divider yaitu perubahan teganagan output dipengaruhi oleh perubahan nilai resistansi LDR, jadi saat LDR terkena cahaya maka nilai hambatan pada LDR berubah semakin kecil sehingga tegangan output semakin kecil pula. Rumus perhitungan perubahan tegangan:
Arduino adalah sebuah modul yang didalamnya terdapat chip mikrokontroler yang dapat diprogram sesuai dengan kehendak sang programer.
LANGKAH PRAKTEK :
- Koneksikan kabel sensor sesuai urutanya dari CN10 (ER-1) ke CN1 (ER-2) dan pasang jumper sesuai gambar dibawah ini.
- Running robot, taruh EDUROBO dilantai selanjutnya sensor diberi cahaya maka robot akan mengikuti sumber cahaya tersebut.
- Lakukan ujicoba untuk mendapatkan hasil sesuai Pencahayaannya :
KODING :
Variabel dibawah ini untuk menampung perubahan pada pin input LDRR (LDR Kanan) & LDRL (LDR
Kiri).
Untuk memudahkan pemrograman, kita buat koneksi antara sensor & driver motor dengan pin
Arduino seperti dibawah ini (Perhatikan skematik).
const int L1 = 2;
const int L2 = 3;
const int R1 = 4;
const int R2 = 7;
const int L = 5;
const int R = 6;
void setup()
Tentukan pin sebagai output untuk mengontrol putaran motor.
pinMode(L1, OUTPUT);
pinMode(L2, OUTPUT);
pinMode(R1, OUTPUT);
pinMode(R2, OUTPUT);
pinMode(L, OUTPUT);
pinMode(R, OUTPUT);
Tentukan arah robot berjalan maju:
digitalWrite(L1, HIGH); //KIRI MAJU
digitalWrite(L2, LOW);
digitalWrite(R1, HIGH); //KANAN MAJU
digitalWrite(R2, LOW);
OK, langsung menuju program utama ya, void loop{ }
Selanjutnya langsung kita baca Sensor LDR dengan perintah analogRead() dibawah ini:
LDRR = analogRead(5);
LDRL = analogRead(4);
Hasil pembacaan sensor tersebut di tampung pada variabel LDRR (sensor kanan) & LDRL (sensor
kiri).
Karena nilai PWM maksimal 255 maka konversi data pembacaan sensor LDR dari 0 s/d 1023
menjadi 255 s/d 0:
LDRR = map(LDRR, 0, 1023, 255, 0);
LDRL = map(LDRL, 0, 1023, 255, 0);
Isi nilai PWM dengan data hasil konversi ke pin PWM (L & R).
analogWrite(L, LDRR);
analogWrite(R, LDRL);
NEXT PRAKTEK 10