/*
HC-SR04 Ultrasonic Sensor dan servo.
cara kerja: ketika terdapat suatu benda terdeteksi sensor dengan jarak kurang dari 30cm maka motor servo akan bergerak 90°
Tugas II Produktif.
©️ 2022 - Kelompok 2 XI EI 2
*/
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
Servo gerbang;
int trig = 3,
echo = 2,
jarakSeb = 0,
servoPin = 4,
servoPos = 0;
void setup(){
pinMode(13, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
gerbang.attach(servoPin);
lcd.init();
lcd.backlight();
lcd.setCursor(2,0);
lcd.print("TEMPATSAMPAH");
lcd.setCursor(4,1);
lcd.print("OTOMATIS");
delay(700);
}
int jarakCM() {
digitalWrite(trig, LOW);
digitalWrite(trig, HIGH);
digitalWrite(trig, LOW);
int jarak = pulseIn(echo, HIGH) / 58;
// if(jarak != jarakSeb) jarakSeb = jarak;
return jarak;
}
void loop() {
float jarak = jarakCM();
if(jarak == jarakSeb) return;
else jarakSeb = jarak;
bool dekat = jarak <= 30;
if(dekat)servoPos = 90;
else if(!dekat) servoPos = 0;
digitalWrite(13, dekat);
gerbang.write(servoPos);
// lcd
lcd.clear();
lcd.setCursor(5,0);
lcd.print("STATUS");
lcd.setCursor(4,1);
if(dekat) lcd.print("TER BUKA");
else lcd.print("TERTUTUP");
}