#include <ESP32Servo.h>
Servo siservo;
#define ECHO_PIN 16
#define TRIG_PIN 17
int sudut = 0;
const int ledPin = 12;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
siservo.attach(4);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(ledPin, OUTPUT);
}
float jarak_cm()
{
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN,HIGH);
return duration * 0.034 / 2;
}
void loop() {
float cm = jarak_cm();
if (cm <=200)
{
sudut = 90;
siservo.write(sudut);
digitalWrite(ledPin, HIGH);
delay(1000);
}
else
{
sudut = 0;
siservo.write(sudut);
digitalWrite(ledPin, LOW);
delay(1000);
}
}