#include <Servo.h>
const int trigPin = 10; // Pin untuk Trigger Sensor Ultrasonik
const int echoPin = 11; // Pin untuk Echo Sensor Ultrasonik
long duration;
int distance;
Servo servoMotor; // Objek untuk kontrol servo motor
void setup() {
// Setup untuk pin
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Inisialisasi servo pada pin 9
servoMotor.attach(4);
// Posisi awal palang parkir (terbuka)
servoMotor.write(0); // 0 derajat, palang terbuka
// Serial Monitor untuk debugging
Serial.begin(9600);
}
void loop() {
// Mengirimkan pulsa untuk mengukur jarak
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Mengukur waktu pulsa kembali dari objek
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan waktu pulsa
distance = duration * 0.0344 / 2; // Kecepatan suara 0.0344 cm/us
// Menampilkan jarak pada Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Jika jarak kurang dari 10 cm (kendaraan dekat)
if (distance < 10) {
// Menutup palang parkir (servo bergerak ke 90 derajat)
servoMotor.write(90); // 90 derajat, palang tertutup
} else {
// Membuka palang parkir (servo bergerak ke 0 derajat)
servoMotor.write(0); // 0 derajat, palang terbuka
}
delay(500); // Delay untuk stabilitas pembacaan sensor
}