#define lampum 2
#define alarm 4
#include <Servo.h>
#define trigPin 13
#define echoPin 12
Servo myservo;
void setup() {
// put your setup code here, to run once:
pinMode(lampum, OUTPUT);
pinMode(alarm, OUTPUT);
myservo.attach(5);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
float readDistanceCM() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
int duration = pulseIn(echoPin, HIGH);
return duration * 0.034 / 2;
}
void loop() {
// put your main code here, to run repeatedly:
float distance = readDistanceCM();
Serial.print("Palang Kereta Api: ");
Serial.print(readDistanceCM());
Serial.println();
if (distance <= 50) {
myservo.write(180);
tone(alarm, 1000);
digitalWrite(lampum, HIGH);
delay (200);
tone(alarm, 500);
digitalWrite(lampum, LOW);
delay(200);
}
else {
myservo.write(0);
noTone(alarm);
}
}