You are on page 1of 9

NAMA : ALIF ADI NUGROHO

KELAS : 4 ELEKTRONIKA D

NIM : 061630320918

SOAL NO 1

GAMBAR RANGKAIAN DI SOFTWARE PROTEUS 8


//NAMA: ALIF ADI NUGROHO

//KELAS : 4 ELEKTRONIKA D

//NIM : 061630320918

//SOAL NO 1

//ROBOT WALL FOLLOWER MENGGUNAKAN SENSOR INFRAMERAH

#include <LiquidCrystal.h>

LiquidCrystal lcd(6, 5, 4, 3, 2, 1);

int sw1 = 0;

int sensorkiri = 13;

int sensortengah = 12;

int sensorkanan = 11;

int motor1kanan = 10;

int motor2kanan = 9;

int motor1kiri = 8;

int motor2kiri = 7;

void setup() {

pinMode (sensorkiri,INPUT);

pinMode (sensortengah,INPUT);

pinMode (sensorkanan,INPUT);

pinMode (motor1kanan,OUTPUT);

pinMode (motor2kanan,OUTPUT);

pinMode (motor1kiri,OUTPUT);

pinMode (motor2kiri,OUTPUT);
lcd.begin(16, 2);

lcd.setCursor(0,0);

lcd.print("WALL FOLLOWER");

lcd.setCursor(0,1);

lcd.print("IR SENSOR");

delay(300);

lcd.clear();

lcd.setCursor(5,0);

lcd.print("ALIF AN");

lcd.setCursor(0,1);

lcd.print("061630320918");

delay(300);

lcd.clear();

void loop() {

if(digitalRead(sw1) == HIGH){

if((digitalRead(sensorkiri) == HIGH) && (digitalRead(sensortengah) == LOW) &&


(digitalRead(sensorkanan) == LOW)){

digitalWrite(motor1kanan, LOW );

digitalWrite(motor2kanan, HIGH);

digitalWrite(motor1kiri, LOW);

digitalWrite(motor2kiri, LOW);

delay(500);

lcd.setCursor(1,0);

lcd.print("ROBOT BERPUTAR");

lcd.setCursor(0,1);
lcd.print("KEKIRI");

delay(300);

lcd.clear();

if((digitalRead(sensorkiri) == LOW) && (digitalRead(sensortengah) == HIGH) &&


(digitalRead(sensorkanan) == LOW)){

digitalWrite(motor1kanan, LOW );

digitalWrite(motor2kanan, HIGH);

digitalWrite(motor1kiri, LOW);

digitalWrite(motor2kiri, HIGH);

delay(500);

lcd.setCursor(1,0);

lcd.print("ROBOT MAJU ");

lcd.setCursor(0,1);

lcd.print("KEDEPAN");

delay(300);

lcd.clear();

if((digitalRead(sensorkiri) == LOW) && (digitalRead(sensortengah) == LOW) &&


(digitalRead(sensorkanan) == HIGH)){

digitalWrite(motor1kanan, LOW );

digitalWrite(motor2kanan, LOW);

digitalWrite(motor1kiri, LOW);

digitalWrite(motor2kiri, HIGH);

delay(500);

lcd.setCursor(1,0);

lcd.print("ROBOT BERPUTAR ");

lcd.setCursor(0,1);
lcd.print("KEKANAN");

delay(300);

lcd.clear();

if((digitalRead(sensorkiri) == LOW) && (digitalRead(sensortengah) == LOW) &&


(digitalRead(sensorkanan) == LOW)){

digitalWrite(motor1kanan, LOW );

digitalWrite(motor2kanan, HIGH);

digitalWrite(motor1kiri, LOW);

digitalWrite(motor2kiri, HIGH);

delay(500);

lcd.setCursor(1,0);

lcd.print("ROBOT MAJU ");

lcd.setCursor(0,1);

lcd.print("KEDEPAN");

delay(300);

lcd.clear();

if((digitalRead(sensorkiri) == HIGH) && (digitalRead(sensortengah) == HIGH) &&


(digitalRead(sensorkanan) == HIGH)){

digitalWrite(motor1kanan, LOW );

digitalWrite(motor2kanan, LOW);

digitalWrite(motor1kiri, LOW);

digitalWrite(motor2kiri, LOW);

delay(500);

lcd.setCursor(1,0);

lcd.print("ROBOT STOP ");

lcd.setCursor(0,1);
lcd.print("DIAM");

delay(300);

lcd.clear();

if((digitalRead(sensorkiri) == HIGH) && (digitalRead(sensortengah) == HIGH) &&


(digitalRead(sensorkanan) == LOW)){

digitalWrite(motor1kanan, LOW );

digitalWrite(motor2kanan, LOW);

digitalWrite(motor1kiri, LOW);

digitalWrite(motor2kiri, LOW);

delay(500);

lcd.setCursor(1,0);

lcd.print("ROBOT STOP ");

lcd.setCursor(0,1);

lcd.print("DIAM");

delay(300);

lcd.clear();

if((digitalRead(sensorkiri) == LOW) && (digitalRead(sensortengah) == HIGH) &&


(digitalRead(sensorkanan) == HIGH)){

digitalWrite(motor1kanan, LOW );

digitalWrite(motor2kanan, LOW);

digitalWrite(motor1kiri, LOW);

digitalWrite(motor2kiri, LOW);

delay(500);

lcd.setCursor(1,0);

lcd.print("ROBOT STOP ");


lcd.setCursor(0,1);

lcd.print("DIAM");

delay(300);

lcd.clear();

if((digitalRead(sensorkiri) == HIGH) && (digitalRead(sensortengah) == LOW) &&


(digitalRead(sensorkanan) == HIGH)){

digitalWrite(motor1kanan, LOW );

digitalWrite(motor2kanan, LOW);

digitalWrite(motor1kiri, LOW);

digitalWrite(motor2kiri, LOW);

delay(500);

lcd.setCursor(1,0);

lcd.print("ROBOT STOP ");

lcd.setCursor(0,1);

lcd.print("DIAM");

delay(300);

lcd.clear();

}
NAMA : ALIF ADI NUGROHO

KELAS : 4 ELEKTRONIKA D

NIM : 061630320918

SOAL NO 1

PENJELASAN ROBOT WALL FOLLOWER MENGGUNAKAN SENSOR INFRAMERAH

Pada soal MID kali ini adalah membuat rangkaian dan perogram robot wall follower
menggunakan sensor infra merah(minimal 3 buah sensor ) serta penjelasan cara kerja robot.

Di soal ini penulis menggunakan arduino uno sebagai control dari robot wall follower
dan menggunakan simulasi pada software proteus 8. Rangkaian ini menggunakan 3 buah
sersor inframerah yang dipasang di bagian kanan, kiri ,dan depan . sensor tersebut digunakan
untuk mencari obejek dinding untuk menentukan laju dari robot tersebut. Dimana sensor
bagian kanan dihubungkan di port 11 arduino , sensor bagian kiri dihubungkan di port 13
arduino , dan sensor bagian depan dihubungkan di port 12 arduino masing-masing sensor
tersebut adalah INPUT dari robot tersebut. Rangkaian ini juga menggunakan tampilan LCD
LM016L pada pin VSS,VEE dan RW dihubungkan dengan ground , pin VDD dihubungkan
dengan power, pin RS dihubungkan dengan port 6 pada arduino , pin E dihubungkan dengan
port 5 di arduino, pin D4 dihubungkan dengan port 4 arduino ,pin D5 dihubungkan dengan
port 3 arduino , pin D6 dihubungkan dengan port 2 arduino, dan pin D7dihubungkan dengan
port 1, dimana LCD tersebut adalah salah satu OUTPUT robot tersebut , menggunakan driver
motor L293D ,dimana pin EN1 dan EN2 pada driver motor dihubungkan dengan power , pin
VSS dan VS dihubungkan dengan power , driver ini memiliki 2 pin ground dan dihubungkan
dengan sumber ground, pin IN1 dan IN2 pada driver dihubungkan di port 10 dan 9 di arduino
, pin IN3 dan IN4 pada driver dihubungkan di port 8 dan 7 di arduino , menggunakan 1 buah
switch dan menggunakan 2 buah motor DC sebagai OUTPUT robot yang digunakan untuk
penggerak roda kanan dan kiri robot , input motor 1 dihubungkan dengan out 1 dan 2 pada
driver motor serta input motor 2 dihubungkan dengan out 3 dan 4 pada driver motor.

Jika software telah dijalankan Rangkaian akan aktif dan di LDC akan muncul
tampilan “WALL FOLLOWER “,”IR SENSOR”,”ALIF AN”,”061630320918”. Akan tetapi
robot tidak akan berjalan

Untuk menjalankan robot ini maka aktifkan switch dan dalam keadaan sensor
semuanya LOW maka robot akan berjalan ke arah depan (maju) “ROBOT MAJU KE
DEPAN”.

Jika sensor bagian kiri robot bernilai HIGH dan sensor bagian kanan dan depan
bernilai LOW maka robot akan berjalan ke arah kiri dan LCD menampilkan “ROBOT
BERPUTAR KE KIRI”
Jika sensor bagian kanan robot bernilai HIGH dan sensor bagian kiri dan depan
bernilai LOW maka robot akan berjalan ke arah kanan dan LCD menampilkan “ROBOT
BERPUTAR KE KANAN”

Jika sensor bagian depan robot bernilai HIGH dan sensor bagian kanan dan kiri
bernilai LOW maka robot akan berjalan kearah depan (maju) dan LCD menampilkan
“ROBOT MAJU KE DEPAN”

Jika sensor bagian kanan, kiri dan depan bernilai LOW maka robot akan berjalan ke
arah depan (maju), karena sensor akan mencari dinding sebagai obejek unuk menentukan laju
robot dan LCD menampilkan “ROBOT MAJU KE DEPAN”

Jika sensor bagian kanan, kiri dan depan bernilai HIGH maka robot akan stop , dan
LCD menampilkan “ROBOT STOP DIAM”

Jika dua sensor bernilai HIGH dan satu sensor bernilai LOW maka robot akan stop
,dan LCD menampilkan “ROBOT STOP DIAM”.

You might also like