#include <Servo.h>
//pinsensor jarak
const int trigPin = 2;
const int echoPin = 3;
//pin aktuator motor servo
const int servoPin = 5;
//pin lamp led
const int ledPin = 7;
//pin buzzer
const int buzzerPin = 8;
Servo servo;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin,INPUT);
pinMode(ledPin,OUTPUT);
pinMode(buzzerPin,OUTPUT);
servo.attach(servoPin);
servo.write(0);//posisi palang tertutup
Serial.begin(9600);
}
void loop(){
long duration,distance;
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
duration = pulseIn(echoPin,HIGH);
//menghitung jarak
distance = duration * 0,034 / 2;
if(distance > 0 && distance < 10){
openGate();
blinkLEDAndBuzzer();
}else{
closeGate();
turnOffLEDAndBuzzer();
}
delay(1000);
}
void openGate(){
servo.write(90);
delay(1000);
}
void closeGate(){
servo.write(0);
delay(1000);
}
void blinkLEDAndBuzzer(){
digitalWrite(ledPin,HIGH);
tone(buzzerPin,1000);
delay(500);
digitalWrite(ledPin,LOW);
tone(buzzerPin,500);
delay(500);
}
void turnOffLEDAndBuzzer(){
digitalWrite(ledPin, LOW);
noTone(buzzerPin);
}