#include <Servo.h>
Servo siservo;
#define ECHO_PIN 6 //penempatan pin output
#define TRIG_PIN 5 //penempatan pin input
const int button = 2;
const int led = 3;
int btn = 0;
int sudut = 0 ;
void setup(){
siservo.attach(9);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(button, INPUT);
pinMode(led, OUTPUT);
}
float jarak_cm()
{
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN,HIGH);
return duration * 0.034 / 2;
}
void loop() {
btn=digitalRead(button);
if(btn == HIGH)
{
digitalWrite(led, HIGH);
sudut = 90;// pengaturan sudut titik awal servo
siservo.write(sudut);
}
else
{
digitalWrite(led, LOW);
siservo.write(0);
}
while(true){
float cm = jarak_cm();
if (cm <= 100) //pengaturan jarak
{sudut = 90; // pengaturan sudut titik awal servo
siservo.write(sudut);
delay(1000);
}
else
{
sudut = 0;
siservo.write(sudut);
delay(1000);
}
}
}