#include <Servo.h>
//pin sensor jarak
const int trigPin = 2;
const int echoPin = 3;
//pin akurator motor servo
const int servoPin = 5;
//pin lampu 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 awal palang pintu 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(100);
}
void openGate () {
servo.write(90);
delay(1000);
}
void closeGate () {
servo.write(0);
delay(1000);
}
void blinkLEDAndBuzzer () {
digitalWrite(ledPin,HIGH);
tone(buzzerPin,100);
delay(500);
digitalWrite(ledPin,LOW);
tone(buzzerPin,500);
delay(500);
}
void turnOFFLEDAndBuzzer () {
digitalWrite(ledPin,LOW);
noTone(buzzerPin);
}