#include <Servo.h>
Servo servoku;
unsigned long previousMillis = 0;
float i=0;
void setup() {
Serial.begin(115200);
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, INPUT);
pinMode(13, OUTPUT);
servoku.attach(5);
}
void loop() {
float jarak = nilaiSensor();
if (jarak <= 50) {
tutupPalang();
tone(4, 200);
digitalWrite(13, HIGH);
delay(500);
tone(4, 175);
digitalWrite(13, LOW);
delay(500);
} else {
noTone(4);
digitalWrite(13, LOW);
bukaPalang();
delay(1000);
}
Serial.println("Jarak: " + String(jarak, 0) + " meter");
}
float nilaiSensor() {
digitalWrite(3, HIGH);
delayMicroseconds(10);
digitalWrite(3, LOW);
int duration = pulseIn(2, HIGH);
return map((duration / 58), 1, 400, 0, 100);
}
void tutupPalang() {
while (i<=90) {
servoku.write(i);
i++;
delay(50);
}
}
void bukaPalang() {
while (i>=0) {
servoku.write(i);
i--;
delay(50);
}
}