Robot Pintar Pelewat Rintangan





ROBOT PELEWAT RINTANGAN


1. Tujuan  [kembali]
  1. Merangkai robot penghindar rintangan sederhana dengan 3 buah sensor ultrasonic.
  2. Menguji respon motor dc yang diperintahkan Arduino berdasarkan inputan sensor ultrasonic
2. Alat dan Bahan [kembali]
  • Arduino Uno
  • Ultrasonic Sensor
  • LCD Liquid Crystal
  • Motor DC
  • Pot-HG (Potensiometer 1K ohm)
  • L298D
  • VCC
  • Ground

3. Landasan Teori [kembali]
Arduino Uno R3
       Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP 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-DC atau baterai untuk menjalankannya.
      Uno berbeda dengan semua board sebelumnya dalam hal koneksi USB-to-serial yaitu meng-gunakan fitur Atmega8U2 yang diprogram sebagai konverter USB-to-serial berbeda dengan board sebelumnya yang menggunakan chip FTDI driver USB-to-serial.
       Nama “Uno” berarti satu dalam bahasa Italia, untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi versi referensi dari Arduino. Uno adalah yang terbaru dalam serangkaian board USB Arduino, dan sebagai model referensi untuk platform Arduino, untuk perbandingan dengan versi sebelumnya, lihat indeks board Arduino.

Daya
       Arduino Uno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal (otomatis).
Eksternal (non-USB) daya dapat berasal baik dari AC-ke adaptor-DC atau baterai. Adaptor ini dapat dihubungkan dengan menancapkan plug jack pusat-positif ukuran 2.1mm konektor POWER. Ujung kepala dari baterai dapat dimasukkan kedalam Gnd dan Vin pin header dari konektor POWER.
       Kisaran kebutuhan daya yang disarankan untuk board Uno adalah7 sampai dengan 12 volt, jika diberi daya kurang dari 7 volt kemungkinan pin 5v Uno dapat beroperasi tetapi tidak stabil kemudian jikadiberi daya lebih dari 12V, regulator tegangan bisa panas dan dapat merusak board Uno.

Pin listrik adalah sebagai berikut:
  • VIN. Tegangan masukan kepada board Arduino ketika itu menggunakan sumber daya eksternal (sebagai pengganti dari 5 volt koneksi USB atau sumber daya lainnya).
  • 5V. Catu daya digunakan untuk daya mikrokontroler dan komponen lainnya.
  • 3,3V. Sebuah pasokan 3,3 volt dihasilkan oleh regulator on-board.
  • GND. Ground pin.
Memori
       ATmega328 memiliki 32 KB (dengan 0,5 KB digunakan untuk bootloader), 2 KB dari SRAM dan 1 KB EEPROM (yang dapat dibaca dan ditulis dengan EEPROM liberary).

Input dan Output
     Masing-masing dari 14 pin digital di Uno dapat digunakan sebagai input atau output, dengan menggunakan fungsi pinMode (), digitalWrite (), dandigitalRead (), beroperasi dengan daya 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki internal pull-up resistor (secara default terputus) dari 20-50 kOhms. Selain itu, beberapa pin memiliki fungsi khusus:
  • Serial : 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirimkan (TX) TTL data serial. Pin ini dihubungkan ke pin yang berkaitan dengan chip Serial ATmega8U2 USB-to-TTL.
  • Eksternal menyela : 2 dan 3. Pin ini dapat dikonfigurasi untuk memicu interrupt pada nilai yang rendah, dengan batasan tepi naik atau turun, atau perubahan nilai. Lihat (attachInterrupt) fungsi untuk rincian lebih lanjut.
  • PWM : 3, 5, 6, 9, 10, dan 11. Menyediakan output PWM 8-bit dengan fungsianalogWrite ().
  • SPI : 10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK). Pin ini mendukung komunikasi SPI menggunakan SPI library.
  • LED : 13. Ada built-in LED terhubung ke pin digital 13. Ketika pin bernilai nilai HIGH, LED on, ketika pin bernilai LOW, LED off.
      Uno memiliki 6 masukan analog, berlabel A0 sampai dengan A5, yang masing-masing menyediakan 10 bit dengan resolusi (yaitu 1024 nilai yang berbeda). Selain itu, beberapa pin memiliki fungsi khusus:
  • I2C : A4 (SDA) dan A5 (SCL). Dukungan I2C (TWI) komunikasi menggunakan perpustakaan Wire.
  • Aref : Tegangan referensi (0 sampai 5V saja) untuk input analog. Digunakan dengan fungsi analogReference ().
  • Reset : Bawa baris ini LOW untuk me-reset mikrokontroler.

Sensor Ultrasonic
Sensor ultrasonik PING terdiri dari tiga bagian utama yaitu :
  • Transmitter Gelombang Ultrasonik
  • Receiver Gelombang Ultrasonik
  • Rangkaian kontrol
      Transmitter berfungsi sebagai pemancar gelombang ultrasonik. Gelombang yang dipancarkan memiliki frekuensi 40KHz. Gelombang ini akan dipancarakan dengan kecepatan 344.424m/detik atau 29.034uS per centimeter. Jika didepan terdapat halangan atau objek maka gelombang tersebut akan memantul. Pantulan gelombang akan dideteksi oleh receiver. Rangkaian kontrol akan mendeteksi pantulan gelombang dan menghitung lama waktu saat gelombang dipancarkan dan gelombang terdeteksi pantulannya. Lama waktu pemantulan gelombang ini akan dikonversi menjadi sinyal digital dalam bentuk pulsa. Sinyal inilah yang nantinya diolah oleh mikrokontroler atau mikroprosesor sehingga didapat nilai jarak antara objek dan sensor. Nilai jarak dapat diperoleh melalui rumus berikut ini :

Jarak (cm) = Lama Waktu Pantul (uS) / 29.034 / 2

       Rumus jarak didapat dari pembagian lama waktu pantul dengan kecepatan gelombang ultrasonik dan dibagi 2 karena pada saat pemantulan terjadi dua kali jarak tempuh antara sensor dengan objek. Yaitu pada saat gelombang dipancarkan dari transmitter ke objek dan pada saat gelombang memantul ke receiver ultrasonik.
Gambar grafik respon pada sensor HC-SR04

         ketika kita memberikan tegangan positif pada pin Trigger selama 10uS, maka sensor akan mengirimkan 8 step sinyal ultrasonik dengan frekuensi 40kHz. Selanjutnya, sinyal pantulan akan diterima oleh pin Echo. Untuk mengukur jarak benda yang memantulkan sinyal tersebut, maka selisih waktu ketika mengirim dan menerima sinyal digunakan untuk menentukan jarak benda tersebut.


Gambar test performa sensor ultrasonic dalam range 30 derjat(sudut)


Motor DC
         Motor DC adalah jenis motor listrik yang bekerja menggunakan sumber tegangan DC. Motor DC atau motor arus searah sebagaimana namanya, menggunakan arus langsung dan tidak langsung/direct-unidirectional. Motor DC digunakan pada penggunaan khusus dimana diperlukan penyalaan torque yang tinggi atau percepatan yang tetap untuk kisaran kecepatan yang luas.


Prinsip Kerja Motor DC
        Terdapat dua bagian utama pada sebuah Motor Listrik DC, yaitu Stator dan Rotor. Stator adalah bagian motor yang tidak berputar, bagian yang statis ini terdiri dari rangka dan kumparan medan. Sedangkan Rotor adalah bagian yang berputar, bagian Rotor ini terdiri dari kumparan Jangkar. Dua bagian utama ini dapat dibagi lagi menjadi beberapa komponen penting yaitu diantaranya adalahYoke (kerangka magnet), Poles (kutub motor), Field winding (kumparan medan magnet), Armature Winding (Kumparan Jangkar), Commutator (Komutator) dan Brushes (kuas/sikat arang).
Pada prinsipnya motor listrik DC menggunakan fenomena elektromagnet untuk bergerak, ketika arus listrik diberikan ke kumparan, permukaan kumparan yang bersifat utara akan bergerak menghadap ke magnet yang berkutub selatan dan kumparan yang bersifat selatan akan bergerak menghadap ke utara magnet. Saat ini, karena kutub utara kumparan bertemu dengan kutub selatan magnet ataupun kutub selatan kumparan bertemu dengan kutub utara magnet maka akan terjadi saling tarik menarik yang menyebabkan pergerakan kumparan berhenti.
Gambar motor DC + gear box

        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.


Driver Motor L298N
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.
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 dan Prinsip Kerja  [kembali]
Penjelasan :
        Sensor ultrasonic aktif bekrja ketika ketika mendapat input tegangan melalui pin vcc, lalu Arduino memberi perintah untuk memancarkan gelombang ultrasonic sebangyak 8 step sebesar 40kHz melalui pin triger,
        Gelombang ultrasonic dipancarkan oleh transmiter ultrasonic, dan gelombang yang dipantulkan ditangkan oleh receiver ultrasonic. Data yang didapat oleh sensor ultrasonic melalui output echo diteruskan ke Arduino, sehingga data diproses oleh Arduino
        LCD akan secara berulang menampilkan jarak yang terbaca oleh ketiga buah sensor ultrasonik yang dipasang (mengarah ke depan, ke kanan, dan ke kiri robot).
        Apabila tidak ada halangan di dibaca sensor, maka Arduino akan memberi perintah berlogika 1 ke driver motor melalui pin in1 dan pin in3 sehinggga kedua motor DC bergerak maju kedepan
        Apabila ada halangan di dibaca sensor 1 (benda menghalang <=40cm sebelah kanan), maka Arduino akan memberi perintah berlogika 1 ke driver motor melalui pin in1 sehinggga motor DC kanan saja yang bergerak kedepan.
       Apabila ada halangan di dibaca sensor 3 (benda menghalang <=40cm sebelah kiri), maka Arduino akan memberi perintah berlogika 1 ke driver motor melalui pin in3 sehinggga motor DC kiri saja yang bergerak kedepan.
        Apabila ada halangan di dibaca sensor 2 (benda menghalang <=40cm didepan), maka Arduino akan memberi perintah berlogika 1 ke driver motor melalui pin in3 sehinggga motor DC kiri saja yang bergerak kedepan.
        Apabila ada halangan di dibaca sensor 1, 2, dan 3 (benda menghalang <=20cm diseluruh sisi), maka Arduino akan memberi perintah berlogika 1 ke driver motor melalui pin in2 dan pin in4 sehingga kedua motor DC yang bergerak mundur kebelakang.

5. Listing Program dan Penjelasan [kembali]

#include <LiquidCrystal.h>   //Library untuk komponen LCD
#define kirimaju A0   //Mendeklarasikan pin A0 sebagai pin untuk motor dc
#define kirimundur A1   //Mendeklarasikan pin A1 sebagai pin untuk motor dc
#define kananmaju A2   //Mendeklarasikan pin A2 sebagai pin untuk motor dc
#define kananmundur A3   //Mendeklarasikan pin A3 sebagai pin untuk motor dc
#define trigPin1 7    //mendeklarasikan pin 7 sebagai pin untuk trigger ultrasonik 1
#define echoPin1 6    //mendeklarasikan pin 6 sebagai pin untuk echo ultrasonik 1
#define trigPin2 5    //mendeklarasikan pin 5 sebagai pin untuk trigger ultrasonik 2
#define echoPin2 4    //mendeklarasikan pin 4 sebagai pin untuk echo ultrasonik 1
#define trigPin3 3    //mendeklarasikan pin 3 sebagai pin untuk trigger ultrasonik 3
#define echoPin3 2    //mendeklarasikan pin 2 sebagai pin untuk echo ultrasonik 1
LiquidCrystal lcd (13, 12, 11, 10, 9, 8);     //mendeklarasikan pin yang digunakan oleh LCD

void setup() {   //fungsi wajib untuk program arduino
  pinMode(trigPin1, OUTPUT);    //mendeklarasikan trigPin1 sebagai pin output
  pinMode(trigPin2, OUTPUT);    //mendeklarasikan trigPin2 sebagai pin output
  pinMode(trigPin3, OUTPUT);    //mendeklarasikan trigPin3 sebagai pin output
  pinMode(echoPin1, INPUT);    //mendeklarasikan echoPin1 sebagai pin input
  pinMode(echoPin2, INPUT);    //mendeklarasikan echoPin2 sebagai pin input
  pinMode(echoPin3, INPUT);    //mendeklarasikan echoPin3 sebagai pin input

  pinMode(kirimaju, OUTPUT);    //mendeklarasikan pin kirimaju sebagai pin output
  pinMode(kirimundur, OUTPUT);    //mendeklarasikan pin kirimundur sebagai pin output
  pinMode(kananmaju, OUTPUT);    //mendeklarasikan pin kananmaju sebagai pin output
  pinMode(kananmundur, OUTPUT);    //mendeklarasikan pin kananmndur sebagai pin output

  lcd.begin(32,2);    //menandakan lcd yang digunakan lcd 32x2
  lcd.setCursor (0,0);    //menyetel posisi kursor di kolom 0 baris 0
  lcd.print ("KONTROL ROBOT");    //menampilkan karakter kontrol robot
  delay(50);    //memberi delay selama 50ms
  lcd.clear();    //menghapus karakter yang tampil di lcd
  lcd.setCursor(6,0);    //menyetel posisi kursor di kolom 6 baris 0
  lcd.print ("RAMADHI SUFI ANANTA");     //menampilkan karakter
  lcd.setCursor (11,1);    //menyetel posisi kursor di kolom 11 baris 1
  lcd.print ("1610951006");     //menampilkan karakter
  delay(50);    //memberi delay selama 50ms
  lcd.clear();    //menghapus karakter yang tampil di lcd
}
void loop() {     //memberi fungsi perulangan program
  long duration1, distance1;    //memberi tipe data pada variabel
  digitalWrite(trigPin1, LOW);    //memberi logika 0 atau low pada keluaran trigPin1
  delayMicroseconds(2);    //memberi waktu delay
  digitalWrite(trigPin1, HIGH);    //memberi logika 1 atau low pada keluaran trigPin1
  delayMicroseconds(10);    //memberi waktu delay
  digitalWrite(trigPin1, LOW);    //memberi logika 0 atau low pada keluaran trigPin1
  duration1 = pulseIn(echoPin1, HIGH);    //memproses nilai duration1 yang terbaca
  distance1 = (duration1/2) / 29.1;    //menghitung nilai distance1

  long duration2, distance2;    //memberi tipe data pada variabel
  digitalWrite(trigPin2, LOW);    //memberi logika 0 atau low pada keluaran trigPin2
  delayMicroseconds(2);    //memberi waktu delay
  digitalWrite(trigPin2, HIGH);    //memberi logika 1 atau HIGH pada keluaran trigPin2
  delayMicroseconds(10);    //memberi waktu delay
  digitalWrite(trigPin2, LOW);    //memberi logika 0 atau low pada keluaran trigPin2
  duration2 = pulseIn(echoPin2, HIGH);    //memproses nilai duration2 yang terbaca
  distance2 = (duration2/2) / 29.1;    //menghitung nilai distance2

  long duration3, distance3;    //memberi tipe data pada variabel
  digitalWrite(trigPin3, LOW);   //memberi logika 0 atau low pada keluaran trigPin3
  delayMicroseconds(2);    //memberi waktu delay
  digitalWrite(trigPin3, HIGH);   //memberi logika 1 atau HIGH pada keluaran trigPin3
  delayMicroseconds(10);    //memberi waktu delay
  digitalWrite(trigPin3, LOW);   //memberi logika 0 atau low pada keluaran trigPin3
  duration3 = pulseIn(echoPin3, HIGH);    //memproses nilai duration3 yang terbaca
  distance3 = (duration3/2) / 29.1;    //menghitung nilai distance3

  lcd.setCursor(0,0);    //menyetel posisi kursor di kolom 0 baris 0
  lcd.print("Jarak");     //menampilkan karakter
  lcd.setCursor(10,0);    //menyetel posisi kursor di kolom 10 baris 0
  lcd.print("Depan = ");    //menampilkan karakter
  lcd.setCursor(18,0);    //menyetel posisi kursor di kolom 18 baris 0
  lcd.print(distance1);    //menampilkan karakter dari variabel distance1
  lcd.setCursor(23,0);    //menyetel posisi kursor di kolom 23 baris 0
  lcd.print("cm");    //menampilkan karakter
  lcd.setCursor(0,1);    //menyetel posisi kursor di kolom 0 baris 1
  lcd.print("Kiri = ");    //menampilkan karakter
  lcd.setCursor(7,1);    //menyetel posisi kursor di kolom 7 baris 1
  lcd.print(distance2);    //menampilkan karakter dari variabel distance2
  lcd.setCursor(12,1);    //menyetel posisi kursor di kolom 12 baris 1
  lcd.print("cm");    //menampilkan karakter
  lcd.setCursor(17,1);    //menyetel posisi kursor di kolom 17 baris 1
  lcd.print("Kanan = ");    //menampilkan karakter
  lcd.setCursor(25,1);    //menyetel posisi kursor di kolom 25 baris 1
  lcd.print(distance3);    //menampilkan karakter dari variabel distance3
  lcd.setCursor(30,1);    //menyetel posisi kursor di kolom 30 baris 1
  lcd.print("cm");    //menampilkan karakter
  delay(100);    //memberi waktu delay
  lcd.clear();    //membersihkan tampilan pada lcd

  if (distance1>40 && distance2>40 && distance3>40)    //Memberi kondisi
  { //robot bergerak maju
      digitalWrite(kirimaju, HIGH);    //Memberi logika 1 atau HIGH pada pin kirimaju
      digitalWrite(kirimundur, LOW);    //Memberi logika 0 atau LOW pada pin kirimundur
      digitalWrite(kananmaju, HIGH);    //Memberi logika 1 atau HIGH pada pin kanan maju
      digitalWrite(kananmundur, LOW);    //Memberi logika 0 atau LOW pada pin kananmundur
  }

  else if (distance1<40 && distance2>40 && distance3>40)    //Memberi kondisi
  { //robot bergerak mundur
      digitalWrite(kirimaju, LOW);    //Memberi logika 0 atau LOW pada pin kirimaju
      digitalWrite(kirimundur, HIGH);    //Memberi logika 1 atau HIGH pada pin kirimundur
      digitalWrite(kananmaju, LOW);    //Memberi logika 0 atau LOW pada pin kananmaju
      digitalWrite(kananmundur, HIGH);    //Memberi logika 1 atau HIGH pada pin kanan mundur
  }

  else if (distance1>40 && distance2<40 && distance3>40)    //Memberi kondisi
  { //robot belok ke kanan
      digitalWrite(kirimaju, HIGH);    //Memberi logika 1 atau HIGH pada pin kirimaju
      digitalWrite(kirimundur, LOW);    //Memberi logika 0 atau LOW pada pin kirimundur
      digitalWrite(kananmaju, LOW);    //Memberi logika 0 atau LOW pada pin kananmaju
      digitalWrite(kananmundur, HIGH);    //Memberi logika 1 atau HIGH pada pin kananmundur
  }

  else if (distance1<40 && distance2<40 && distance3>40)    //Memberi kondisi
  { //robot belok ke kanan
      digitalWrite(kirimaju, HIGH);    //Memberi logika 1 atau HIGH pada pin kirimaju
      digitalWrite(kirimundur, LOW);    //Memberi logika 0 atau LOW pada pin kirimundur
      digitalWrite(kananmaju, LOW);    //Memberi logika 0 atau LOW pada pin kananmaju
      digitalWrite(kananmundur, HIGH);    //Memberi logika 1 atau HIGH pada pin kananmundur
  }

  else if (distance1>40 && distance2>40 && distance3<40)    //Memberi kondisi
  { //robot belok ke kiri
      digitalWrite(kirimaju, LOW);    //Memberi logika 0 atau LOW pada pin kirimaju
      digitalWrite(kirimundur, HIGH);    //Memberi logika 1 atau HIGH pada pin kirimundur
      digitalWrite(kananmaju, HIGH);    //Memberi logika 1 atau HIGH pada pin kananmaju
      digitalWrite(kananmundur, LOW);    //Memberi logika 0 atau LOW pada pin kananmundur
  }

  else if (distance1<40 && distance2>40 && distance3<40)    //Memberi kondisi
  { //robot belok ke kiri
      digitalWrite(kirimaju, LOW);    //Memberi logika 0 atau LOW pada pin kirimaju
      digitalWrite(kirimundur, HIGH);    //Memberi logika 1 atau HIGH pada pin kirimundur
      digitalWrite(kananmaju, HIGH);    //Memberi logika 1 atau HIGH pada pin kananmaju
      digitalWrite(kananmundur, LOW);    //Memberi logika 0 atau LOW pada pin kananmundur
  }

  else if (distance1<40 && distance2<40 && distance3<40)    //Memberi kondisi
  { //robot bergerak mundur
      digitalWrite(kirimaju, LOW);    //Memberi logika 0 atau LOW pada pin kirimaju
      digitalWrite(kirimundur, HIGH);    //Memberi logika 1 atau HIGH pada pin kirimundur
      digitalWrite(kananmaju, LOW);    //Memberi logika 0 atau LOW pada pin kananmaju
      digitalWrite(kananmundur, HIGH);    //Memberi logika 1 atau HIGH pada pin kananmundur
  }
  else    //pilihan terakhir jika tidak ada kondisi yang terpenuhi
  { //robot bergerak maju
      digitalWrite(kirimaju, HIGH);    //Memberi logika 1 atau HIGH pada pin kirimaju
      digitalWrite(kirimundur, LOW);    //Memberi logika 0 atau LOW pada pin kirimundur
      digitalWrite(kananmaju, HIGH);    //Memberi logika 1 atau HIGH pada pin kananmaju
      digitalWrite(kananmundur, LOW);    //Memberi logika 0 atau LOW pada pin kananmundur
  }
}  //kurung penutup dari program fungsi void loop

6. Flowchart [kembali]

7. Video [kembali]
Video Simulasi di software proteus

Video menjalankan hardware robot pintar

8. Link Download  [kembali]



Tidak ada komentar:

Posting Komentar