Sistem Parkir Otomatis Menggunakan Servo Motor dan Modul I2C

Sistem Parkir Otomatis Menggunakan Servo Motor dan Modul I2C

Dalam proyek sistem parkir otomatis ini, kami akan menggunakan servo motor untuk menggerakkan pintu parkir, serta modul I2C untuk menghubungkan perangkat-perangkat lainnya. Berikut adalah langkah-langkah untuk membuat proyek ini:

  1. Hubungan Servo Motor: Hubungkan pin VCC dari servo motor dengan pin VCC Arduino dan brown wire (GND) dari servo motor dengan GND Arduino. Hubungkan orange wire (signal) dari servo motor dengan digital-9 pin Arduino.
  2. Modul I2C: Hubungkan pin SDA modul I2C dengan analog-4 pin Arduino, serta pin SCL modul I2C dengan analog-5 pin Arduino.
  3. IR Sensors: Hubungkan OUT pin IR sensor pertama dengan digital-4 pin Arduino, dan OUT pin IR sensor kedua dengan digital-7 pin Arduino.
  4. LCD 16×2: Hubungkan pin modul I2C dengan pin LCD 16×2.

Kode Proyek

Perlu diingat bahwa Anda harus mengupload kode ini ke Arduino dan menginstal biblioteca LiquidCrystal_I2C dan Wire sebelum compiling the code. Berikut adalah kode proyek:

#include <Wire.h> 
#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2); 
#include <Servo.h> 
Servo myservo1; 
int IR1 = 4; // IR Sensor 1 
int IR2 = 7; // IR Sensor 2 
int Slot = 4; //Enter Total number of parking Slots 
int flag1 = 0; 
int flag2 = 0; 
void setup() 
{ 
 lcd.init(); 
 lcd.backlight(); 
 pinMode(IR1, INPUT); 
 pinMode(IR2, INPUT); 
 myservo1.attach(9); 
 myservo1.write(100); 
 lcd.setCursor (0,0); 
 lcd.print(" ARDUINO "); 
 lcd.setCursor (0,1); 
 lcd.print(" PARKING SYSTEM "); 
 delay (2000); 
 lcd.clear(); 
} 
void loop(){ 
 if(digitalRead (IR1) == LOW && flag1==0){ 
 if(Slot>0){flag1=1; 
 if(flag2==0){myservo1.write(0); Slot = Slot-1;} 
 }else{ 
 lcd.setCursor (0,0); 
 lcd.print(" SORRY :( "); 
 lcd.setCursor (0,1); 
 lcd.print(" Parking Full "); 
 delay (3000); 
 lcd.clear(); 
 } 



 } 
 if(digitalRead (IR2) == LOW && flag2==0){flag2=1; 
 if(flag1==0){myservo1.write(0); Slot = Slot+1;} 
 } 
 if(flag1==1 && flag2==1){ 
 delay (1000); 
 myservo1.write(100); 
 flag1=0, flag2=0; 
 } 
 lcd.setCursor (0,0); 
 lcd.print(" WELCOME! "); 
 lcd.setCursor (0,1); 
 lcd.print("Slot Left: "); 
 lcd.print(Slot); 
} 

Tips dan Trik

Jika Anda memiliki pertanyaan mengenai proyek ini, silakan tuliskan di bagian komentar yang diberikan di bawah. Anda juga dapat menemukan tutorial-tutorial Arduino lainnya.

PCBWay Rapid PCB Prototyping Services

Saya telah assemble circuit yang sama pada breadboard. Karena assembly breadboard tidak efektif untuk proyek-proyek seperti ini, PCBWay menawarkan prototyping services cepat dan murah untuk membantu Anda dalam membuat board-board Anda. Saya sangat merekomendasikan PCBWay karena Anda dapat mendapatkan board-board Anda hanya dalam 24 jam!

Leave a comment