//Kombinasi 11 (Sensor Ultrasonik, servo, buzzer)
//Aplikasi palang pintu kereta api
//Menggunakan bool
//Jika kereta mendekat pada jarak tertentu, maka buzzer akan menyala,
//dan servo akan bergerak
//dan pada Serial monitor muncul tulisan Ada Kereta
//Jika sudah menjauh, maka buzzer padam, servo kembali seperti sebelumnya
//dan pada Serial monitor muncul tulisan Aman
//Link Wokwi : https://wokwi.com/projects/334789504912065108
#include <Servo.h>
#define trigPin 2
#define echoPin 3
#define buzzerPin 5
Servo myservo;
int val;
float readDistanceCM()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigger pin to HIGH state for 10 microseconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
int duration = pulseIn(echoPin, HIGH);
return duration * 0.034 / 2;
}
void setup() {
Serial.begin(115200);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
myservo.attach(9);
}
void loop() {
float distance = readDistanceCM();
bool z = distance<100;
if (z==true){
myservo.write(90);
tone(buzzerPin, 500);
delay(1000);
tone(buzzerPin, 800);
delay(1000);
Serial.println("Ada Kereta");
}
else{
myservo.write(0);
noTone(buzzerPin);
Serial.println("Aman");
}
delay(100);
}