Perancangan Sistem Jarak Parkir Aman Arduino Uno

Reggina Kuswandi The

Sosial Media


0 orang menyukai ini
Suka

Summary

Arduino merupakan sebuah perangkat elektronik yang bersifat open source dan sering digunakan untuk merancang dan membuat perangkat elektronik serta software yang mudah untuk digunakan.

Beberapa komponen penting pada Arduino, diantaranya: Pin, Mikrokontroler, Konektro, dan lain sebagainya.

Bahasa Pemrograman yang digunakan pada Arduino yaitu bahasa pemrograman Arduino Language yang seidkit mirip dengan bahasa pemrograman C++

Kelebihan dan Kekurangan Arduino Uno

Kelebihan :

  • Modul yang tersedia sudah siap digunakan (GPS, LAN, SD Card Reader)
  • Harga yang relatif terjangkau
  • Mudah digunakan oleh pemula
  • Memiliki banyak library
  • Memiliki port USB untuk mentransfer data dan mengalirkan sumber daya
  • Konsumsi daya yang rendah

Kekurangan

  • Tidak bisa diinstall OS sehingga tidak dapat digunakan sebagai komputer pribadi
  • Memiliki kapasitas memori yang kecil
  • Memiliki clock speed yang rendah

Wokwi adalah simulator elektronik online. Wokwi dapat digunakan untuk mensimulasikan Arduino,
ESP32, dan banyak papan, suku cadang, dan sensor populer lainnya. 

Description

Sebelum melakukan simulasi diperlukan simulator elektronik online. Disini saya menggunakan simulator Wokwi. Adapun alat dan bahan yang diperlukan adalah sebagai berikut :

  • 1 buah Arduino Uno
  • 1 buah LCD 16x2 (I2C)
  • 1 buah HR-SR04 Ultrasonic Distance Sensor
  • 1 buah LED
  • 1 buah Resistor
  • 1 buah Buzzer
  • 1 buah Pushbutton

Tujuan dari melakukan simulasi :

Rancangan Sistem Jarak Parkir Aman dibangun bertujuan untuk mengetahui serta memudahkan para pengguna kendaraan baik sepeda, motor, dan mobil agar saat melakukan parkir kendaraan dapat mengetahui jarak antar kendaraan sedang berada didekatnya dengan jarak minimum 50 cm, sehingga tidak lagi terjadi tabrak antar kendaraan.

Cara Kerja dari Rancangan Sistem Jarak Parkir Aman :

Jika tombol berada pada posisi High/Menyala, maka LED dan Buzzer Low/Mati

Jika tombol berada pada posisi Low/Mati, maka LED dan Buzzer High/Menyala

Jika jarak <= 50cm, maka Buzzer akan berbunyi dan LED akan menyala.

Jika jarak >= 50cm, maka Buzzer dan LED akan mati

Source Code : 
 

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

 

const int trigPin = 9;

const int echoPin = 10;

const int buzzer = 8;

const int led = 7;

const int button = 6;

int tombol = 0;


LiquidCrystal_I2C lcd(0x27,16,2);

long duration;

int distance;

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600); //Kecepatan pengiriman data 9600 bit per detik

  pinMode(trigPin, OUTPUT); //Setting Trigger sebagai output

  pinMode(echoPin, INPUT); //Setting Echo sebagai input

  pinMode(buzzer, OUTPUT); //Setting Buzzer sebagai output

  pinMode(led, OUTPUT); //Setting led sebagai output

  pinMode(button, INPUT); //Setting button sebagai input

  lcd.init(); //LCD mulai menyala

  lcd.backlight(); //Settingan agar lampu belakang LCD menyala

  lcd.setCursor(0,0); //Posisi karakter akan ditampilkan dalam LCD

  lcd.print("-Setting Parkir-"); //Karakter yang akan ditampilkan dalam LCD

  lcd.setCursor(0,1); //Posisi karakter akan ditampilkan dalam LCD

  lcd.print("Reggina K"); //Karakter yang akan ditampilkan dalam LCD

  delay(5000); //Durasi waktu karakter tampil dalam LCD yaitu 5 detik

}
 

void loop() {

  // put your main code here, to run repeatedly:

  lcd.clear(); //Hapus karakter di layar LCD

  digitalWrite(trigPin, LOW); //Trigger off mengirimkan sinyal

  delayMicroseconds(2); //Selang waktu 0.002 detik

  digitalWrite(trigPin, HIGH); //Trigger on mengirimkan sinyal

  delayMicroseconds(10); // Selang waktu 0.01 detik

  digitalWrite(trigPin, LOW); //Trigger off mengirimkan sinyal  

 

  duration = pulseIn(echoPin, HIGH); //Waktu tempuh sinyal dari dikirim Trigger, memantul, sampai diterima Echo  

  distance = duration * 0.0343/2; //Jarak = (Waktu x Kecepatan)/2
 

  lcd.setCursor(0,0);

  lcd.print("Jarak: ");

  lcd.print(distance); //Menampilkan hasil pengukuran jarak

  lcd.print(" cm");

  delay(1000); //Karakter tampil selama 1 detik
 

  if(distance <=50){ //Jika jarak benda <= 30 cm

    tombol = digitalRead(button); //Membaca kondisi nilai pin digital 1/0

    if(tombol == HIGH){ //Jika tombol aktif atau dalam keadaan 1

      digitalWrite(led, LOW); //Lampu off

      noTone(buzzer); //Buzzer off

      delay(500); //Lampu & buzzer off selama 0.5 detik

      digitalWrite(led, HIGH); //lampu on

      tone(buzzer, 700); //Buzzer on, f= 0.7 KHz  

      delay(200); //Lampu & buzzer on selama 0.2 detik

    }

    if(tombol == LOW){ //Jika tombol dalam keadaan 0

      digitalWrite(led, HIGH); //Lampu on

      tone(buzzer, 500); //Buzzer on, f = 0.5 KHz  

    }

    lcd.setCursor(0,1); //Menampilkan posisi karakter yang akan ditampilkan dalam LCD

    lcd.print("Jarak kedekatan");delay(1000); //Karakter akan tampil pada LCD selama 1 detik

  }

  if(distance >50){ //Jika jarak benda > 50 cm

    digitalWrite(led, LOW); //Lampu off

    noTone(buzzer); //Buzzer off

  }

}

Informasi Course Terkait
  Kategori: Artificial Intelligence
  Course: Embedded System Berbasis Arduino