Anda di halaman 1dari 20

LAPORAN AKHIR

ROBOTIKA
Mobil Line Follower

Disusun Oleh :
Kelompok : 1
Anggota : 1. Ahmad Bakir
2. Deyi
3. Rahim Muhammad Farras
4. Solfiani
5. Sanju Buadang

PRODI TEKNOLOGI REKAYASA SISTEM


ELEKTRONIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI PONTIANAK

2022
KATA PENGANTAR

Puji syukur kami sampaikan kehadirat Tuhan Yang Maha Esa,

karena atas karuniaNya kami dapat menyelesaikan laporan dan tugas akhir

ini. Pada tugas ini kami membuat mobil line follower.

Pada pembuatan mobil line follower ini kami menghadapi beberapa

masalah yaitu kurangnya pemahaman dari anggota kelompok tentang apa

yang akan dibuat..

Pada tugas kali ini kami sudah berupaya mengerjakan semaksimal

mungkinagar dapat selesai tepat waktu dan sesuai dengan apa yang telah

dirancang. Oleh karena itu, kami mengharapkan saran dan juga kritik

untuk kami kedepannya agar lebih baik lagi. Kami harapkan semoga mobil

line follower ini dapat membantu menambah pengetahuan dan pengalaman

bagi kami selaku pembuat dan bagi siapa saja yang membaca laporannya,

serta menjadi referensi yang berguna bagi kami maupun orang yang

membacanya .

Pontianak, 8 November 2022

Tim Penulis

2
DAFTAR ISI

KATA PENGANTAR..............................................................................................................2
DAFTAR ISI..........................................................................................................................3
TEORI DASAR......................................................................................................................4
1. LM3299N................................................................................................................4
2. Photodioda............................................................................................................4
3. Arduino Uno..........................................................................................................4
4. Motor DC...............................................................................................................5
FLOW CHART......................................................................................................................8
DIAGRAM BLOCK................................................................................................................9
PROGRAM........................................................................................................................10
ANALISA KESIMPULAN.....................................................................................................11
Analisa.........................................................................................................................11
PENUTUP..........................................................................................................................12
Saran............................................................................................................................12

3
TEORI DASAR
1. LM3299N

Fungsi dari IC ini adalah sebagai komparator atau pembanding terutama dalam

bidang robotika dan industri. Dengan kata lain sesuatu analog harus dikonverensi

terlebih dahulu kedalam bentuk digital. Hal ini bertujuan untuk mempermudah

processing. Ic ini terdiri dari 4 buah komparator yang berbentuk segitiga. Satu

buah komparator yang terdiri dari 2 buah input yaitu input masukan dari sensor

dan input tegangan

2. Photodioda

Photodioda adalah komponen elektronik dari keluarga dioda yang dapat

digunakan untuk mendeteksi cahaya. Berbeda dengan dioda biasa, photodioda

dapat mengubah cahaya menjadi arus listrik. Dalam keadaan gelap resistansinya

menjadi sangat besar sehingga tidak ada arus yang mengalir. Sebaliknya semakin

banyak cahaya yang jatuh maka arus yang mengalir pun besar. Seperti dioda pada

umumnya photodioda memiliki 2 kaki yang terdiri dari anoda kan katoda. Secara

fungsi photodioda dengan LDR hampir sama. Photodioda tergolong sensor cahaya

karena mampu mengubah cahaya menjadi arus listrik.

3. Arduino Uno

Arduino Uno Mikrokontroller berbasis ATmega 328, Arduino memiliki 14 pin

input/output digital yang mana 6 tersebut dapat digunakan sebagai output PWM, 6

analog input, 16 MHZ sebuah isolator Kristal, koneksi USB, jack power, ICSP

4
header dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan,

cukup hanya menghubungkan board Arduino uno ke komputer dengan

menggunakan kabel USB atau listrik dengan AC yang ke adaptor atau baterai

untuk menjalankannya. Arduino Uno berbeda dari semua papan sebelumnya

dalam hal itu tidak menggunakan FTDI chip driver USB to serial. Sebaliknya,

fitur ATmega 16U2 (ATmega 8U2 hingga versi R2) diprogram sebagai converter

USB to serial revisi 2 dari dewan Uno memiliki resistor menarik garis 8U2 HWB

ke tanah sehingga lebih mudah untuk dimasukkan ke dalam mode DFU.

4. Motor DC

Motor DC atau lebih tepatnya motor listrik adalah komponen elektrik yang

sifatnya merubah besaran elektrik menjadi berupa putaran. Motor listrik terdiri

atas tiga bagian utama yang disebut stator (bagian yang diam), rotor (bagian yang

bergerak) dan air gap. Rotor dapat berputar karena adanya medan magnet yang

dipengaruhi oleh arus listrik. Air gap adalah bagian yang memisahkan rotor dan

stator. Motor terdiri dari dua jenis yaitu motor AC dan motor DC. Motor DC

menggunakan 2 data yang harus tersambung ke data digital mikrokontroler namun

ketika harus menggunakan motor DC yang membutuhkan arus tinggi harus

menggunakan rangkaian penguat (driver) dari motor ke mikrokontroler.

Sedangkan Motor AC biasanya memerlukan rangkian berupa relay untuk

menjalankannya karena tegangan yang berasal dari mikrokontroler adalah DC

sedangkan tegangan yang dibutuhkan adalah tegangan AC.

5
Prinsip Kerja Motor DC

 Pada posisi 1 arus elektron mengalir dari sikat negatif menuju ke

sikatpositif. Akan timbul torsi yang menyebabkan jangkar berputar

berlawanan arah jarum jam

 Ketika jangkar pada posisi 2, sikat terhubung dengan kedua

segmencomutator. Aliran arus pada jangkar terputus sehingga tidak ada

torsi yang dihasilkan. Tetapi, kelembaban menyebabkan jangkar tetap

berputar melewati titik netral.

 Pada posisi 3, letak sisi jangkar berkebalikan dari letak sisi jangkarpada

posisi 1. Segmen comutator membalik arah arus elektron yang

mengalirpada kumparan jangkar. Oleh karena itu arah arus yang mengalir

padakumparan jangkar sama dengan posisi 1. Torsi akan timbul yang

menyebabkan jangkar tetap berputar berlawanan arah jarum jam.

 Jangkar berada pada titik netral. Karena adanya kelembaman padaporos

jangkar, maka jangkar berputar terus – menerus.

6
7
FLOW CHART

8
DIAGRAM BLOCK

LCD
SENSOR
ARDUINO DRIVER MOTOR DC
PHOTODIODA
DRIVER MOTOR DC

9
PROGRAM

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);

#define IN1 A0
#define IN2 A1
#define IN3 A2
#define IN4 A3
#define EN1 5
#define EN2 6
#define s1 13
#define s2 12
#define s3 11
#define s4 10
#define s5 9
#define s6 4
#define s7 3
#define s8 2

void setup() {
pinMode(8,INPUT_PULLUP);
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(EN1,OUTPUT);
pinMode(EN2,OUTPUT);
pinMode (s1,INPUT);
pinMode (s2,INPUT);

10
pinMode (s3,INPUT);
pinMode (s4,INPUT);
pinMode (s5,INPUT);
pinMode (s6,INPUT);
pinMode (s7,INPUT);
pinMode (s8,INPUT);

int i;
lcd.init();
lcd.backlight();
//lcd.setCursor(14,1);
//lcd.print("Line Follower");
//for (i = 0; i < 26; i++)
//{
//lcd.scrollDisplayLeft();
//delay(500);
//}
//lcd.clear();
lcd.setCursor(3,1);
lcd.print("KELOMPOK 1");

while(digitalRead(8)==HIGH);

void loop() {

if ((digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&


digitalRead(s3)==HIGH && digitalRead(s4)==LOW && digitalRead(s5)==LOW
&& digitalRead(s6)==HIGH && digitalRead(s7)==HIGH &&
digitalRead(s8)==HIGH)||

11
(digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&
digitalRead(s3)==HIGH && digitalRead(s4)==LOW &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==HIGH && digitalRead(s8)==HIGH)||
(digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&
digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==LOW && digitalRead(s6)==HIGH &&
digitalRead(s7)==HIGH && digitalRead(s8)==HIGH))
{
analogWrite(EN1, 120);
analogWrite(EN2, 150);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);
lcd.print("^^^^");
}

else if ((digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&


digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==LOW && digitalRead(s6)==LOW && digitalRead(s7)==HIGH
&& digitalRead(s8)==HIGH)||
(digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&
digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==LOW &&
digitalRead(s7)==HIGH && digitalRead(s8)==HIGH))
{
analogWrite(EN1, 90);
analogWrite(EN2, 190);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);

12
lcd.print("<---");
}

else if ((digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&


digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==LOW && digitalRead(s7)==LOW
&& digitalRead(s8)==HIGH)||
(digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&
digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==LOW && digitalRead(s8)==HIGH))
{
analogWrite(EN1, 50);
analogWrite(EN2, 190);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);
lcd.print("<---");
}

else if ((digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&


digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==LOW && digitalRead(s8)==LOW)||
(digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&
digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==HIGH && digitalRead(s8)==LOW))
{
analogWrite(EN1, 20);
analogWrite(EN2, 200);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);

13
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);
lcd.print("<===");
}

else if (digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&


digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==HIGH && digitalRead(s8)==LOW)
{
analogWrite(EN1, 220);
analogWrite(EN2, 220);
digitalWrite(IN1,LOW);
digitalWrite(IN2,HIGH);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);
lcd.print("<<==");
}

else if ((digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&


digitalRead(s3)==LOW && digitalRead(s4)==LOW && digitalRead(s5)==HIGH
&& digitalRead(s6)==HIGH && digitalRead(s7)==HIGH &&
digitalRead(s8)==HIGH)||
(digitalRead(s1)==HIGH && digitalRead(s2)==HIGH &&
digitalRead(s3)==LOW && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==HIGH && digitalRead(s8)==HIGH))
{
analogWrite(EN1, 80);
analogWrite(EN2, 130);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);

14
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);
lcd.print("--->");
}

else if ((digitalRead(s1)==HIGH && digitalRead(s2)==LOW &&


digitalRead(s3)==LOW && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==LOW &&
digitalRead(s7)==HIGH && digitalRead(s8)==HIGH)||
(digitalRead(s1)==HIGH && digitalRead(s2)==LOW &&
digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==LOW && digitalRead(s8)==HIGH))
{
analogWrite(EN1, 140);
analogWrite(EN2, 60);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);
lcd.print("--->");
}

else if ((digitalRead(s1)==LOW && digitalRead(s2)==LOW &&


digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==HIGH && digitalRead(s8)==HIGH)||
(digitalRead(s1)==LOW && digitalRead(s2)==HIGH &&
digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==HIGH && digitalRead(s8)==HIGH))
{
analogWrite(EN1, 220);

15
analogWrite(EN2, 20);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);
lcd.print("===>");
}

else if (digitalRead(s1)==LOW && digitalRead(s2)==HIGH &&


digitalRead(s3)==HIGH && digitalRead(s4)==HIGH &&
digitalRead(s5)==HIGH && digitalRead(s6)==HIGH &&
digitalRead(s7)==HIGH && digitalRead(s8)==HIGH)
{
analogWrite(EN1, 200);
analogWrite(EN2, 90);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);
digitalWrite(IN3,LOW);
digitalWrite(IN4,HIGH);
lcd.setCursor(5,0);
lcd.print("==>>");
}

else if (digitalRead(s1)==LOW && digitalRead(s2)==LOW &&


digitalRead(s3)==LOW && digitalRead(s4)==LOW && digitalRead(s5)==LOW
&& digitalRead(s6)==LOW && digitalRead(s7)==LOW &&
digitalRead(s8)==LOW)
{
analogWrite(EN1, 0);
analogWrite(EN2, 0);
digitalWrite(IN1,HIGH);
digitalWrite(IN2,LOW);

16
digitalWrite(IN3,HIGH);
digitalWrite(IN4,LOW);
lcd.setCursor(5,0);
lcd.print("STOP");
}
}

17
ANALISA KESIMPULAN

Analisa

Pada percobaan ini digunakan 8 sensor photodioda dengan menggunakan

komparator sehingga output dari sensor berupa output digital.

#define IN1 A0
#define IN2 A1
#define IN3 A2
#define IN4 A3
Pada bagian program ini mengatur arah motor kekiri dan kekanan dengan input
analog.
#define EN1 5
#define EN2 6
Untuk program diatas adalah pengaturan kecepatan putar motor.
#define s1 13
#define s2 12
#define s3 11
#define s4 10
#define s5 9
#define s6 4
#define s7 3
#define s8 2
Untuk mengatur in yang akan dipakai pada sensor photodioda
pinMode(8,INPUT_PULLUP);
digunakan untuk pushbotton pada mobil yang apabila ditekan motor akan
bergerah sehingga mobil bergerak maju.
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(IN3,OUTPUT);
pinMode(IN4,OUTPUT);
pinMode(EN1,OUTPUT);

18
pinMode(EN2,OUTPUT);
pinMode (s1,INPUT);
pinMode (s2,INPUT);
pinMode (s3,INPUT);
pinMode (s4,INPUT);
pinMode (s5,INPUT);
pinMode (s6,INPUT);
pinMode (s7,INPUT);
pinMode (s8,INPUT);
digunakan untuk menentukan input dan output pada mobil.

19
PENUTUP
Saran

Adapun beberapa saran yang ingin disimpulkan penulis untuk

mengembangkan penelitian ini pada kesempatan penelitian berikutnya adalah:

1. Dalam pengambilan data obyek, warna tata letak dari obyek warna yang

ditempatkan dalam posisi yang tepat, untuk menghindari sensor warna tidak

bisa mengambil data obyek yang didekatkan.

2. Perlu pemahaman yang tepat cara kerja dari sensor TCS3200.

3. Supaya alat dapat bekerja dengan baik di berbagai tempat, diperlukan program

khusus kalibrasi warna agar ketika ingin digunakan, alat akan mengkalibrasi

warna menyesuaikan dengan intensitas cahaya pada tempat tersebut.

20

Anda mungkin juga menyukai