Aplikasi Kontrol Robot







1. Tujuan [kembali]
        Membuat dan memahami prinsip kerja aplikasi kontrol robot dengan input 3 buah sensor ultrasonik dan output 2 motor DC serta LCD 16 x 4. 

2. Alat dan Bahan [kembali]
  • Arduino Mega 2560
  • RES (Resistor 220 ohm) 
  • CAP (Capasitor 1nF) 
  • 3 Buah Ultrasonic Sensor (HC SR-04) 
  • 2 Buah Motor
  • 4 Buah Potensiometer (POT-HG) 
  • L293D (Motor Driver)
  • LCD 16x4 (LM041L) 
  • BUTTOM 
  • Jumper
  • Power
  • Ground

3. Landasan Teori [kembali]

a.  Arduino
Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan pada prkatikum ini adalah arduino mega yang menggunakan chip AVR ATmega 2560 yang memiliki fasilitas PWM, komunikasi serial, ADC, timer, interupt, SPI dan I2C. Sehingga Arduino bisa digabungkan bersama modul atau alat lain dengan protocol yang berbeda-beda. Bahasa pemograman yang digunakan adalah bahasa C. Tetapi bahasa ini sudah dipermudah menggunakan fungsi-fungsi yang sederhana sehingga lebih mudah dalam memprogramnya. Dalam memprogram arduino, kita bisa menggunakan serial komunikasi agar arduino dapat berhubungan dengan komputer ataupun aplikasi lain.
gambar 1. Arduino Mega

BAGIAN-BAGIAN DARI ARDUINO MEGA 2560
  • Soket USB : Soket USB adalah soket untuk kabel USB yang disambungkan ke komputer atau laptop.Berfungsi untuk mengirimkan program ke Arduino dan juga sebagai port komunikasi serial.Input / Output Digital Input/Output Digital atau digital pin adalah pin-pin untuk menghubungkan Arduino dengan komponen  atau  rangkaian  digital.  Pada  Arduino  Mega  terdapat  53  I/O  Digital  dimana  16 diantaranya dapat dijadikan sebagai output PWM
  • Input Analog : Input Analog atau analog pin adalah pin-pin yang berfungsi untuk menerima sinyal dari komponen atau rangkaian analog. Misalnya dari potensiometer, sensor suhu, sensor cahaya, dsb.Terdapat 16 input analog pada arduino mega 2560.
  • Pin POWER: Pin-pin catu daya adalah pin yang memberikan tegangan untuk komponen atau rangkaian yang dihubungkan dengan Arduino. Pada bagian catu daya ini terdapat juga pin Vin dan Reset.Vin digunakan untuk memberikan tegangan langsung kepada Arduino tanpa melalui tegangan USB atau adaptor.
  • Tombol RESET : Reset adalah pin untuk memberikan sinyal reset melaui tombol atau rangkaian eksternal.
  • Jack Baterai/Adaptor : Soket baterai  atau adaptor digunakan untuk menyuplai Arduino dengan tegangan  dari  baterai/adaptor 9V pada saat Arduino sedang tidak disambungkan ke komputer. Kalau Arduino sedang disambungkan ke komputer melalui USB, Arduino mendapatkan suplai tegangan dari USB, jadi tidak perlu memasang baterai/adaptor saat memprogram Arduino.

Microcontroller
ATmega2560
Operating Voltage
5V
Input Voltage (recommended)
7-12V
Input Voltage (limits)
6-20V
Digital I/O Pins
54 (of which 15 provide PWM output)
Analog Input Pins
16
DC Current per I/O Pin
20 mA
DC Current for 3.3V Pin
50 mA
Flash Memory
256 KB of which 8 KB used by bootloader
SRAM
8 KB
EEPROM
4 KB
Clock Speed
16 MHz
b. SENSOR ULTRASONIC
  Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik (bunyi ultrasonik). Gelombang ultrasonik adalah gelombang bunyi yang mempunyai frekuensi sangat tinggi yaitu 20.000 Hz. Bunyi ultrasonik tidak dapat di dengar oleh telinga manusia. Bunyi ultrasonik dapat didengar oleh anjing, kucing, kelelawar, dan lumba-lumba. Bunyi ultrasonik nisa merambat melalui zat padat, cair dan gas. Reflektivitas bunyi ultrasonik di permukaan zat padat hampir sama dengan reflektivitas bunyi ultrasonik di permukaan zat cair. Akan tetapi, gelombang bunyi ultrasonik akan diserap oleh tekstil dan busa.

gambar 3.b.1. prinsip kerja sensor ultrasonik


Cara Kerja Sensor Ultrasonik Pada sensor ultrasonik, gelombang ultrasonik dibangkitkan melalui sebuah alat yang disebut dengan piezoelektrik dengan frekuensi tertentu. Piezoelektrik ini akan menghasilkan gelombang ultrasonik (umumnya berfrekuensi 40kHz) ketika sebuah osilator diterapkan pada benda tersebut. Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu area atau suatu target. Setelah gelombang menyentuh permukaan target, maka target akan memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan ditangkap oleh sensor, kemudian sensor menghitung selisih antara waktu pengiriman gelombang dan waktu gelombang pantul diterima.
Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut: Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi tertentu dan dengan durasi waktu tertentu. Sinyal tersebut berfrekuensi diatas 20kHz. Untuk mengukur jarak benda (sensor jarak), frekuensi yang umum digunakan adalah 40kHz. Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan sekitar 340 m/s. Ketika menumbuk suatu benda, maka sinyal tersebut akan dipantulkan oleh benda tersebut. Setelah gelombang pantulan sampai di alat penerima, maka sinyal tersebut akan diproses untuk menghitung jarak benda tersebut. Jarak benda dihitung berdasarkan rumus : S = 340.t/2 dimana S merupakan jarak antara sensor ultrasonik dengan benda (bidang pantul), dan t adalah selisih antara waktu pemancaran gelombang oleh transmitter dan waktu ketika gelombang pantul diterima receiver.

Sensor Ultrasonik HC-SR04
Sensor ini merupakan sensor ultrasonik siap pakai, satu alat yang berfungsi sebagai pengirim, penerima, dan pengontrol gelombang ultrasonik. Alat ini bisa digunakan untuk mengukur jarak benda dari 2cm - 4m dengan akurasi 3mm. Alat ini memiliki 4 pin, pin Vcc, Gnd, Trigger, dan Echo. Pin Vcc untuk listrik positif dan Gnd untuk ground-nya. Pin Trigger untuk trigger keluarnya sinyal dari sensor dan pin Echo untuk menangkap sinyal pantul dari benda.
gambar 3.b.2.sensor ultrasonik hc-sr04

gambar 3.b.3.prinsip kerja sensor ultrasonik hc-sr04


Sensor ultrasonik PING terdiri dari tiga bagian utama yaitu :
  • Transmitter Gelombang Ultrasonik
  • Receiver Gelombang Ultrasonik
  • Rangkaian kontrol
c. Liquid Crystal Display (LCD)
Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar. Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).
gambar 3.c.1 LCD 


Gambar 3.c.2. Penampang komponen penyusun LCD


Keterangan:
1. Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2. Glass substrate yang berisi kolom-kolom elektroda Indium tin oxide (ITO).
3. Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4. Glass substrate yang berisi baris-baris elektroda Indium tin oxide (ITO).
5. Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6. Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali ke mata pengamat. Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD. Pada umumnya LCD yang dijual di pasaran sudah memiliki integrated circuit tersendiri sehingga para pemakai dapat mengontrol tampilan LCD dengan mudah dengan menggunakan mikrokontroler untuk mengirimkan data melalui pin-pin input yang sudah tersedia.

Spesifikasi Kaki LCD 16 x 4

 
Pin                        Deskripsi
1                           Ground
2                           Vcc
3                           Pengatur kontras
4                           “RS” Instruction/Register Select
5                           “R/W” Read/Write LCD Registers
6                           “EN” Enable
7-14                       Data I/O Pins
15                          Vcc
16                          Ground

d.  motor L298N Driver motor L298N
Merupakan module driver motor DC yang paling banyak digunakan atau dipakai di dunia elektronika yang difungsikan untuk mengontrol kecepatan serta arah perputaran motor DC. Bentuk fisik IC L298 & Modul Driver Motor L298N IC L298 merupakan sebuah IC tipe H-bridge yang mampu mengendalikan beban-beban induktif seperti relay, solenoid, motor DC dan motor stepper. Pada IC L298 terdiri dari transistor-transistor logik (TTL) dengan gerbang nand yang berfungsi untuk memudahkan dalam menentukan arah putaran suatu motor dc maupun motor stepper.
Bentuk fisik IC L298 & Modul Driver Motor L298N


Untuk dipasaran sudah terdapat modul driver motor menggunakan ic l298 ini, sehingga lebih praktis dalam penggunaannya karena pin I/O nya sudah terpackage dengan rapi dan mudah digunakan. Kelebihan akan modul driver motor L298N ini yaitu dalam hal kepresisian dalam mengontrol motor sehingga motor lebih mudah untuk dikontrol. Pin out dari driver motor l298 Keterangan :
Enable A : berfungsi untuk mengaktifkan bagian output motor A
Enable B : berfungsi untuk mengaktifkan bagian output motor B
Jumper 5vdc : sebagai mode pemilihan sumber tegangan 5Vdc, jika tidak dijumper maka akan ke mode sumber tegangan 12 Vdc
Control Pin : Sebagai kendali perputaran dan kecepatan motor yang dihubungkan ke Mikrokontroler

Spesifikasi dari Modul Driver Motor L298N Menggunakan IC L298N (Double H bridge Drive Chip)
Tegangan minimal untuk masukan power antara 5V-35V
Tegangan operasional : 5V
Arus untuk masukan antara 0-36mA
Arus maksimal untuk keluaran per Output A maupun B yaitu 2A
Daya maksimal yaitu 25W
Dimensi modul yaitu 43 x 43 x 26mm
Berat : 26g

Prinsip kerja Driver Motor Secara konsep rangkaian ini terdiri dari 4 saklar yang tersusun sedemikian rupa sehingga memungkinkan motor dapat teraliri arus dengan arah yang berkebalikan. Yaitu searah jarum jam dan berlawanan arah jarum jam. Pada rangkaian driver motor ini, saklar-saklar tersebut digantikan oleh transistor atau MOSFET yang dikerjakan pada daerah saturasi dan cut-off (Switch). Ketika S1 dan S4 tertutup (diagonal) dan lainnya terbuka maka arus akan mengalur dari batery ke kutub positif motor kemudian keluar ke kutub negatif motor,makamotor akan berputar kearah kanan. Ketika S2 dan S3 tertutup (diagonal) dan lainnya terbuka,maka arus akan mengalir sebaliknya,motor juga akan berputar kearah sebaliknya. Jika semua saklar tertutup, maka motor akan berhenti. Gambar analogi siklus kerja driver motor



4. Rangkaian [kembali]

rangkaian

Pada rangkaian kontrol robot terdapat sensor ultrasonik sebagai input dan LCD serta Motor sebagai output. input akan diproses oleh program yang ada pada arduino.
Pada sensor ultrasonik pin trigger terhubung pada output, sedangkan pin echo dihubungkan pada input. pada test pin dihubungkan pada potensiometer sebagai pemisalan jarak dari sensor  ultrasonik terhadap dinding.       
  
Selanjutnya sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz. Lalu, sinyal pantulan akan diterima oleh pin Echo yang diberi pulse. Lama penerimaan sinyal-sinyal yang diterima pin echo akan menentukan jarak ke halangan.  
Sensor ultrasonic 1 akan mendeteksi halangan pada bagian depan robot. 
Sensor ultrasonic 2 akan mendeteksi halangan pada bagian kanan robot. 
Sensor ultrasonic 3 akan mendeteksi halangan pada bagian kiri robot. 

Data dari sinyal-sinyal tadi akan berlogika 1 jika ada halangan kurang dari 20cm. Data dari sinyal sensor ultrasonic akan memicu Arduino untuk memberikan output logika 1 kepada driver motor dan juga akan memberikan output kepada LCD berupa tulisan arah pergerakan robot sesuai dengan kondisi yang terpenuhi pada program. Pin pada driver motor akan disesuaikan dengan motor dc pin in1 pada driver motor akan menggerakkan roda kanan maju pin in2 pada driver motor akan menggerakkan roda kanan mundur pin in3 pada driver motor akan menggerakkan roda kiri maju pin in4 pada driver motor akan menggerakkan roda kiri mundur · Saat sensor ultrasonic 1 (kanan) berlogika 1, maka arduino akan memberikan: Logika 1 ke pin in1. Logika 0 ke pin in2 Logika 0 ke pin in3 Logika 0 ke pin in4 Sehingga robot akan berbelok ke kiri · Saat sensor ultrasonic 2 (depan) berlogika 1, maka arduino akan memberikan Logika 0 ke pin in1. Logika 1 ke pin in2 Logika 0 ke pin in3 Logika 1 ke pin in4 Sehingga robot akan mundur · Saat sensor ultrasonic 3 (kiri) berlogika 1, maka arduino akan memberikan Logika 0 ke pin in1. Logika 0 ke pin in2 Logika 1 ke pin in3 Logika 0 ke pin in4 Sehingga robot akan berbelok ke kanan · Saat sensor ultrasonic 1, ultrasonic 2, ultrasonic 3 berlogika 1, maka arduino akan memberikan Logika 0 ke pin in1. Logika 1 ke pin in2 Logika 0 ke pin in3 Logika 1 ke pin in4 Sehingga robot akan mundur · Saat sensor ultrasonic 1, ultrasonic 3, ultrasonic 3 berlogika 0, maka arduino akan memberikan Logika 1 ke pin in1. Logika 0 ke pin in2 Logika 1 ke pin in3 Logika 0 ke pin in4 Sehingga robot akan maju 


5. Listing Program [kembali]
Berikut merupakan listing program dari aplikasi kontrol robot :
#include <LiquidCrystal.h> //pemanggilan library LCD
LiquidCrystal lcd (7, 6, 5, 4, 3, 2); //penetapan pin-pin LCD yang akan dihubungkan ke arduino
const int echoPin1 = 13; //pendeklarasian pin Echo Ultrasonic 1 terhubung ke pin 13 arduino
const int trigPin1 = 12; //pendeklarasian pin Trigger Ultrasonic 1 terhubung ke pin 12 arduino
const int echoPin2 = 11; //pendeklarasian pin Echo Ultrasonic 2 terhubung ke pin 11 arduino
const int trigPin2 = 10; //pendeklarasian pin Trigger Ultrasonic 2 terhubung ke pin 10 arduino
const int echoPin3 = 9; //pendeklarasian pin Echo Ultrasonic 3 terhubung ke pin 9 arduino
const int trigPin3 = 8; //pendeklarasian pin Trigger Ultrasonic 3 terhubung ke pin 8 arduino
//pendeklarasian variable yang akan digunakan didalam program
long duration1; //variabel duration1 untuk hasil pembacaan jarak dari sensor ultrasonic 1
int distance1; //varibel distance1 untuk hasil kalibrasi jarak pembacaan sensor ultrasonic 1 ke dalam satuan cm (centimeter)
long duration2; //variabel duration2 untuk hasil pembacaan jarak dari sensor ultrasonic 2
int distance2; //varibel distance2 untuk hasil kalibrasi jarak pembacaan sensor ultrasonic 2 ke dalam satuan cm (centimeter)
long duration3; //variabel duration3 untuk hasil pembacaan jarak dari sensor ultrasonic 3
int distance3; //varibel distance3 untuk hasil kalibrasi jarak pembacaan sensor ultrasonic 3 ke dalam satuan cm (centimeter)
//pendeklarasian pin driver motor ke arduino
int kananA = A1;      //pin 1 pada driver motor
int kananB = A2;      //pin 2 pada driver motor
int kiriA = A3;            //pin 3 pada driver motor
int kiriB = A4;            //pin 4 pada driver motor
void setup() 

{
  lcd.begin (16, 4); //untuk mengenalkan lcd yang dipakai berdimensi 16x4
  lcd.setCursor(0,0); //mengatur letak kursor awal di lcd
  lcd.print ("Good Luck"); //menampilkan tulisan di lcd
  delay(1000); //delay tampilan tulisan selama 1 detik
  lcd.clear(); //mengatur lcd kosong kembali
//pengaturan tipe pin (I/O) untuk driver motor
  pinMode(kiriA, OUTPUT); //pin kiriA sebagai OUTPUT
  pinMode(kiriB, OUTPUT); //pin kiriB sebagai OUTPUT
  pinMode(kananA, OUTPUT); //pin kananA sebagai OUTPUT
  pinMode(kananB, OUTPUT); //pin kananB sebagai OUTPUT
  pinMode(trigPin1, OUTPUT); // setting pin ttrigPin1 sebagai Output
  pinMode(trigPin2, OUTPUT); // setting pin ttrigPin2 sebagai Output
  pinMode(trigPin3, OUTPUT); // setting pin ttrigPin3 sebagai Output
  pinMode(echoPin1, INPUT); // setting pin echoPin1 sebagai Input
  pinMode(echoPin2, INPUT); // setting pin echoPin1 sebagai Input
  pinMode(echoPin3, INPUT); // setting pin echoPin1 sebagai Input
  Serial.begin(9600); // perintah memulai komunikasi serial
}
void loop() 
{

  // pembacaan data pada ultrasonic 1
  digitalWrite(trigPin1, LOW); //menetapkan nilai digital pin triger ultrasonic 1 sebagai LOW 
  delayMicroseconds(4); //delay untuk nilai digital 
  digitalWrite(trigPin1, HIGH); ////menetapkan nilai digital pin triger ultrasonic 1 sebagai HIGH 
  delayMicroseconds(10); //delay untuk nilai digital 
  digitalWrite(trigPin1, LOW); //menetapkan nilai digital pin triger ultrasonic 1 sebagai LOW 
  duration1 = pulseIn(echoPin1, HIGH); //pemberian nilai digital HIGH untuk pin echo1 agar bisa dilakukan pembacaan data oleh pin echo
// pembacaan data pada ultrasonic 2
  digitalWrite(trigPin2, LOW); //menetapkan nilai digital pin triger ultrasonic 2 sebagai LOW 
  delayMicroseconds(4); //delay untuk nilai digital 
  digitalWrite(trigPin2, HIGH); //menetapkan nilai digital pin triger ultrasonic 2 sebagai HIGH 
  delayMicroseconds(10); //delay untuk nilai digital 
  digitalWrite(trigPin2, LOW); //menetapkan nilai digital pin triger ultrasonic 2 sebagai LOW 
  duration1 = pulseIn(echoPin2, HIGH); //pemberian nilai digital HIGH untuk pin echo2 agar bisa dilakukan pembacaan data oleh pin echo3
// pembacaan data pada ultrasonic 3
digitalWrite(trigPin3, LOW); //menetapkan nilai digital pin triger ultrasonic 3 sebagai LOW 
  delayMicroseconds(4); //delay untuk nilai digital 
  digitalWrite(trigPin3, HIGH); ////menetapkan nilai digital pin triger ultrasonic 3 sebagai HIGH 
  delayMicroseconds(10); //delay untuk nilai digital 
  digitalWrite(trigPin3, LOW); //menetapkan nilai digital pin triger ultrasonic 3 sebagai LOW 
  duration1 = pulseIn(echoPin3, HIGH); //pemberian nilai digital HIGH untuk pin echo3 agar bisa dilakukan pembacaan data oleh pin echo3
  distance1= duration1/58.2; //kalibrasi sensor ultrasonic 1 ke dalam satuan Centi Meter
  distance2= duration2/58.2; //kalibrasi sensor ultrasonic 2 ke dalam satuan Centi Meter
  distance3= duration3/58.2; //kalibrasi sensor ultrasonic 3 ke dalam satuan Centi Meter
//pemberian perintah kepada driver motor sesuai dengan kondisi yang dihasilkan dari hasil kalibrasi sensor ultrasonic 1, ultrasonic 2, ultrasonic 3

if(distance2 <= 20) //kondisi jika nilai distance2 kurang dari 20 cm(ultrasonic 2) untuk bagian depan
  {
    if (distance3 <= 20) //kondisi jika nilai distance3 kurang dari 20 cm(ultrasonic 3) untuk bagian kiri
    {
      if(distance1 <= 20) //kondisi jika nilai distance1 kurang dari 20 cm(ultrasonic 1) untuk bagian kanan
      {
        lcd.clear(); //perintah pembersihan lcd
        lcd.setCursor(1,0); //pengaturan letak kursor
        lcd.print("Jalan Terhalang"); //menampilkan tulisan 
        lcd.setCursor(1,1);  //pengaturan letak kursor
        lcd.print("MUNDUR !!!"); //menampilkan tulisan 
        analogWrite(kiriA, 0); //menetapkan nilai analog
        analogWrite(kiriB, 255); //menetapkan nilai analog
        analogWrite(kananA, 0); //menetapkan nilai analog
        analogWrite(kananB, 255); //menetapkan nilai analog
      }
      else  //kondisi jika nilai distance1 lebih dari 20 cm (ultrasonic 1) untuk bagian kanan
      {
        lcd.clear(); //perintah pembersihan lcd
        lcd.setCursor(1,0);//pengaturan letak kursor
        lcd.print("Belok Kanan");//menampilkan tulisan 
        analogWrite(kiriA, 255); //menetapkan nilai analog
        analogWrite(kiriB, 0); //menetapkan nilai analog
        analogWrite(kananA, 0); //menetapkan nilai analog
        analogWrite(kananB, 0); //menetapkan nilai analog
      }
    }
    else //kondisi jika nilai distance3 lebih dari 20 cm (ultrasonic 1) untuk bagian kiri
    {
      if(distance1 <= 20) //kondisi jika nilai distance3 kurang dari 20 cm (ultrasonic 1) untuk bagian kanan
      {
        lcd.clear(); //perintah pembersihan lcd
        lcd.setCursor(1,0);//pengaturan letak kursor
        lcd.print("Belok Kiri");//menampilkan tulisan 
        analogWrite(kiriA, 0); //menetapkan nilai analog
        analogWrite(kiriB, 0); //menetapkan nilai analog
        analogWrite(kananA, 255); //menetapkan nilai analog
        analogWrite(kananB, 0); //menetapkan nilai analog
      }
      else //kondisi jika nilai distance1 lebih dari 20 cm (ultrasonic 1) untuk bagian kanan
      {
        lcd.clear(); //perintah pembersihan lcd
        lcd.setCursor(1,0);//pengaturan letak kursor
        lcd.print("Belok Kanan ");//menampilkan tulisan 
        analogWrite(kiriA, 255); //menetapkan nilai analog
        analogWrite(kiriB, 0); //menetapkan nilai analog
        analogWrite(kananA, 0); //menetapkan nilai analog
        analogWrite(kananB, 255); //menetapkan nilai analog
      }
    }
  }
  else //kondisi jika nilai distance2 lebih dari 20 cm (ultrasonic 3) untuk bagian kiri
  {
    if (distance3 <= 20) //kondisi jika nilai distance3 kurang dari 20 cm (ultrasonic 1) untuk bagian kiri
    {
      if(distance1 <= 20) //kondisi jika nilai distance1 kurang dari 20 cm (ultrasonic 1) untuk bagian kanan
      {
       lcd.clear(); //perintah pembersihan lcd
        lcd.setCursor(1,0); //pengaturan letak kursor
        lcd.print("Jalan Terhalang"); //menampilkan tulisan 
        lcd.setCursor(1,1); //pengaturan letak kursor
        lcd.print("MUNDUR !!!"); //menampilkan tulisan 
        analogWrite(kiriA, 0); //menetapkan nilai analog
        analogWrite(kiriB, 255); //menetapkan nilai analog
        analogWrite(kananA, 0); //menetapkan nilai analog
        analogWrite(kananB, 255); //menetapkan nilai analog
        if(distance3 >= 20) //kondisi jika nilai distance1 lebih dari 20 cm (ultrasonic 1) untuk bagian kiri
        { 
          lcd.clear(); //perintah pembersihan lcd
          lcd.setCursor(1,0);//pengaturan letak kursor
          lcd.print("Belok Kiri");//menampilkan tulisan 
          analogWrite(kiriA, 0); //menetapkan nilai analog
          analogWrite(kiriB, 0); //menetapkan nilai analog
          analogWrite(kananA, 255); //menetapkan nilai analog
          analogWrite(kananB, 0); //menetapkan nilai analog
        }
      }
      else //kondisi jika nilai distance1 lebih dari 20 cm (ultrasonic 1) untuk bagian kiri
      {
        lcd.clear(); //perintah pembersihan lcd
        lcd.setCursor(1,0);//pengaturan letak kursor
        lcd.print("Belok Kanan");//menampilkan tulisan 
        analogWrite(kiriA, 255); //menetapkan nilai analog
        analogWrite(kiriB, 0); //menetapkan nilai analog
        analogWrite(kananA, 0); //menetapkan nilai analog
        analogWrite(kananB, 0); //menetapkan nilai analog
      }
    }
    else //kondisi jika nilai distance3 lebih dari 20 cm (ultrasonic 1) untuk bagian kiri
    {
      if(distance3 <= 20) //kondisi jika nilai distance1 kurang dari 20 cm (ultrasonic 3) untuk bagian kiri
      {
        lcd.clear(); //perintah pembersihan lcd
        lcd.setCursor(1,0);//pengaturan letak kursor
        lcd.print("Belok Kiri");//menampilkan tulisan 
        analogWrite(kiriA, 0); //menetapkan nilai analog
        analogWrite(kiriB, 0); //menetapkan nilai analog
        analogWrite(kananA, 255); //menetapkan nilai analog
        analogWrite(kananB, 0); //menetapkan nilai analog
       
        if(distance1 >= 20) //kondisi jika nilai distance1 lebih dari 20 cm (ultrasonic 1) untuk bagian kanan
        {
          lcd.clear(); //perintah pembersihan lcd
          lcd.setCursor(1,0);//pengaturan letak kursor
          lcd.print("Jalur Aman");//menampilkan tulisan 
          analogWrite(kiriA, 255); //menetapkan nilai analog
          analogWrite(kiriB, 0); //menetapkan nilai analog
          analogWrite(kananA, 255); //menetapkan nilai analog
          analogWrite(kananB, 0); //menetapkan nilai analog
        }
      }
      else //kondisi jika nilai distance1 lebih dari 20 cm (ultrasonic 1) untuk bagian kanan
      {
        lcd.clear();//perintah pembersihan lcd
        lcd.setCursor(1,0);//pengaturan letak kursor
        lcd.print("Jalur Aman");//menampilkan tulisan 
        analogWrite(kiriA, 255); //menetapkan nilai analog
        analogWrite(kiriB, 0); //menetapkan nilai analog
        analogWrite(kananA, 255); //menetapkan nilai analog
        analogWrite(kananB, 0);     //menetapkan nilai analog  }
    }
  }
}
6. Flowchart [kembal]
flowchart


7. link Download [kembali]

klik dibawah ini untuk mendownload
download rangkaian 
download program arduino 



Tidak ada komentar:

Posting Komentar