kali ini kita akan membuat sistem informasi ketersedian parkir yang di tampilkan di LCD 16 x 4 dengan Arduino uno dan 3 (tiga) sensor Ultrasonik HC-SR04. kali ini saya membuat simulasi tersebut di Proteus tetapi simulasi ini dapat di jadikan protitpe di arduino aslinya 😁. berikut ini merupakan video hasil percobaan dari Simulasi sistem informasi parkir dengan Arduino dan sensor ultrasonik
Library yang dibutuhkan ( Perancangan di Proteus ) :
- Arduino uno / Mega2560
- Ultrasonik Sensor HC-SR04
- LM041L ( LCD 16x4 )
- PCF8574 (I2C LCD )
- POT-HG
- Virtual Terminal
Silahkan anda download library Arduino uno dan Ultrasonik Sensor serta file HEX untuk Ultrasonik Sensor DISINI
Bahan prototipe yang dibutuhkan ( Perancangan dengan arduino asli ) :
- Arduino uno / Mega2560
- Ultrasonik Sensor HC-SR04
- LCD 16 x 4 atau 20x 4 (sesuaikan dengan kebutuhan anda)
- I2C LCD Module
- Kabel Jumper
Berikut ini merupakan skema rangkaian di proteus dan perancagan prototipe
Skema Rangkaian di Proteus
Skema Rangkaian Prototipe
Perancangan :
Pada tutorial ini saya hanya membuat simulasinya saja menggunakan proteus sebenarnya sama saja dengan anda yang akan melakukan perancangan prototipe.
Setelah anda selesai menyusun rangkaian di proteus anda simpan atau compile sketch dibawah ini menjadi file HEX dan jika anda tidak menggunakan Proteus, upload sketch dibawah ini langsung ke board Arduino anda. untuk anda yang belum tau cara menyimpan file HEX di arduino IDE silahkan anda lihat disini.
Berikut ini merupakan Sketch pada Arduino IDE :
////////////www.berbageilmu.blogspot.co.id/////////
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x20 ,2,1,0,4,5,6,7,3, POSITIVE);
/* 0x20 Merupakan default alamt i2c yang digunakan di Proteus. Jika anda menggunakan module i2c yang asli,
ganti alamat i2c sesuai dengan alamt i2c yang anda dapatkan. */
#define trig1 7
#define echo1 6
#define trig2 5
#define echo2 4
#define trig3 3
#define echo3 2
void setup() {
Serial.begin(9600);
pinMode(trig1, OUTPUT);
pinMode(trig2, OUTPUT);
pinMode(trig3, OUTPUT);
pinMode(echo1, INPUT);
pinMode(echo2, INPUT);
pinMode(echo3, INPUT);
lcd.begin(16, 4);// LCD yang digunakan 16x4
}
void loop() {
long duration1, distance1;
digitalWrite(trig1, LOW);
delayMicroseconds(2);
digitalWrite(trig1, HIGH);
delayMicroseconds(10);
digitalWrite(trig1, LOW);
duration1 = pulseIn(echo1, HIGH);
distance1 = (duration1/2) / 29.1;
long duration2, distance2;
digitalWrite(trig2, LOW);
delayMicroseconds(2);
digitalWrite(trig2, HIGH);
delayMicroseconds(10);
digitalWrite(trig2, LOW);
duration2 = pulseIn(echo2, HIGH);
distance2 = (duration2/2) / 29.1;
long duration3, distance3;
digitalWrite(trig3, LOW);
delayMicroseconds(2);
digitalWrite(trig3, HIGH);
delayMicroseconds(10);
digitalWrite(trig3, LOW);
duration3 = pulseIn(echo3, HIGH);
distance3 = (duration3/2) / 29.1;
lcd.setCursor(0, 0);
lcd.print("Informasi Parkir");
if (distance1 >= 100) {
lcd.setCursor(0, 1);
lcd.print("P A : Kosong");
} else if (distance1 <30) {
lcd.setCursor(0, 1);
lcd.print("P A : Terisi");
}
if (distance2 >= 100) {
lcd.setCursor(0, 2);
lcd.print("P B : Kosong");
} else if (distance2 <30) {
lcd.setCursor(0, 2);
lcd.print("P B : Terisi");
}
if (distance3 >= 100) {
lcd.setCursor(0, 3);
lcd.print("P C : Kosong");
} else if (distance3 <30) {
lcd.setCursor(0, 3);
lcd.print("P C : Terisi");
}
Serial.print("Jarak Sensor A :");
Serial.print(distance1);
Serial.println("cm");
Serial.print("Jarak Sensor B :");
Serial.print(distance2);
Serial.println("cm");
Serial.print("Jarak Sensor C :");
Serial.print(distance3);
Serial.println("cm");
Serial.println("");
delay(100);
}
Sampai disini Tutorial kita, saya harapkan anda melakukan pengembangan dari bahan pembelajaran di atas. Semoga bisa bermanfaat untuk anda dan Selamat Mencoba 😃😃.