Kodingan Pintu Gerbang Otomatis

//Pemanggilan library LCD dan Servo
 #include <LiquidCrystal.h>
 #include <Servo.h>

//Inialisasi pin lcd
 LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

//Inialisasi variable servo
 Servo servo;

//Inialisasi pin sensor ultrasonic
 const int pinTrigger = 12;
 const int pinEcho = 13;

//Inialisasi varible durasi dan jarak
 float durasi, jarak;

void setup()
 {
  //Inialisasi jumlah baris dan kolom lcd
  lcd.begin(16, 2);

//Deklarasi status I/O pin ultrasonic
  pinMode(pinTrigger, OUTPUT);
  pinMode(pinEcho, INPUT);

//Inialisasi pin servo
  servo.attach(11);

//Deklarasi awal derajat servo
  servo.write(10);

//Membersihkan lcd
  lcd.clear();
  //Set posisi kursor pada baris ke 0 dan kolom ke 0
  lcd.setCursor(0, 0);
  //Menuliskan karakter pada lcd
  lcd.print("Sistemu");
  //Set posisi kursor
  lcd.setCursor(0, 1);
  //Menuliskan karakter pada lcd
  lcd.print("Otomatis
  //delay 5 detik
  delay(5000);
 }

void loop()
 {
  //Mengaktifkan pin Trigger ultrasonic
  digitalWrite(pinTrigger, HIGH);
  //Delay 10 mikrodetik
  delayMicroseconds(10);
  //Mematikan pn Trigger
  digitalWrite(pinTrigger, LOW);

//Durasi adalah waktu tunggu pin Echo menjadi bernilai HIGH
  //Setelah mendapat pantulan gelombang ultrasonic dari pin Trigger
  durasi = pulseIn(pinEcho, HIGH);
  //Konversi nilai durasi ke jarak
  jarak = ((durasi * 0.034) / 2);

//Jika jarak <= 6, maka
  if (jarak <= 6)
  {
  //Servo bergerak ke derajat 70
  servo.write(70);
  //Menuliskan karakter pada lcd
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Silahkank");
  delay(10);
  }

//Jika tidak maka
  else
  {
  //servo bergerak ke derajat 10
  servo.write(10);
  //Menuliskan karakter pada LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Dilarangk");
  delay(10);
  }
 }


Komentar

Postingan Populer