Anda di halaman 1dari 5

robot line folower sederhana dengan arduino

harga barang:

1. 1x Arduino Uno: Rp 145000

2. 2x TCRT5000: Rp 1200

3. 1x L298N Driver Motor: Rp 16500

4. 1x Sasis Kit 2WD: Rp 83000

5. 2xSpacer 3cm: Rp 2600

6. 1x Kabel Jumper Male-Female: Rp 10.150

7. mur baut 3mm: Rp 500

8. jack dc male: Rp 2000

cara merakit:

solderlah motor dc, saklar, dan jack dc terlebih dahulu.

Penyolderan Saklar dilakukan dengan cara membagi jumper male-female menjadi dua. bagian female
disolder ke bagian 0 (mati) dan bagian male disolder ke bagian - (Hidup). Sedangkan Jack DC disolder
dengan cara membuang bagian female dari kabel jumper, perlu dicatat warna dan polaritasnya!
Begitupun dengan penyolderan Motor DC..

Pengkabelan dilakukan dengan menggunakan kabel jumper, untuk power 5V dapat diambil dari L298N
driver (Hati-hati jangan sampai salah ke 12V)

Sebelum masuk ke pemrograman alangkah baiknya kita tahu sistem kerja dari sensor dan driver motor
yg digunakan.

Sensor Garis TCRT5000

Sensor ini merupakan sensor garis yang mempunyai 4Pin, VCC,GND, Output Analog (A0), Output Digital
(DO). Dalam diagram pengkabelan diatas dapat dilihat bahwa kita (berencana) menggunakan DO
sebagai input ke Arduino, dimana nantinya kita menggunakan teori Input-Output dalam
pemrogramannya. Dimana jika sensor mendeteksi garis hitam maka sensor akan mengirimkan logika
High (1). Kalibrasi sensor dilakukan dengan memutar trimpot yang terdapat pada sensor.

L298N Driver

L298N driver merupakan dricer motor yang sanggup mengontrol dua buah motor DC, driver ini
membutuhkan sebuah pin logic (LOW/HIGH) dan sebuah pin PWM untuk menggerakkan motor

pemograman:

#define m1 3

#define m2 5

#define m3 9

#define m4 10

int arrow =0;

void setup() {

pinMode(m1,OUTPUT);

pinMode(m2,OUTPUT);

pinMode(m3,OUTPUT);

pinMode(m4,OUTPUT);

pinMode(12,INPUT);

pinMode(13,INPUT);

}
void loop() {

// pembacaan sensor pada pin 12 dan 13

int lsensor=digitalRead(12);

int rsensor=digitalRead(13);

//logika robot menggunakan prinsip AND

if((lsensor == LOW)&&(rsensor== HIGH))

// maju dengan kecepatan 100

motorOut(100,100,2);

if((lsensor== HIGH)&&(rsensor== LOW))

//belok kiri

motorOut(0,100,2);

if((lsensor==HIGH)&&(rsensor== HIGH))

motorOut(0,100,2);
//belok kiri

if((lsensor== LOW)&&(rsensor==LOW))

//belok kanan

motorOut(100,0,2);

//Fungsi untuk menggerakkan motor

void motorOut(unsigned char lpwm, unsigned char rpwm, int arrow){

//arrow =1 mundur, 2 maju,

if(arrow==1){

digitalWrite(m3,HIGH);

digitalWrite(m1,LOW);

analogWrite(m4,255-lpwm);

analogWrite(m2,rpwm);

else if (arrow==2)

digitalWrite(m3,LOW);

digitalWrite(m1,HIGH);

analogWrite(m4,lpwm);
analogWrite(m2,255-rpwm);

Anda mungkin juga menyukai