#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Servo.h>
Servo myServo;
LiquidCrystal_I2C lcd(0x27, 16,2);
#define echoPin A1
#define trigPin A2
int pos = 0;
#define pirPin 2
#define buzzerPin 11
int statusPir = LOW;
int gerakanPir;
long durasi;
int jarak,jarak_max = 250;
void setup() {
pinMode(A1,INPUT);
pinMode(A2,OUTPUT);
pinMode(2,INPUT);
myServo.attach(3);
Wire.begin();
lcd.init();
lcd.begin(16,2);
lcd.backlight();
lcd.begin(16,2);
Serial.begin(9600);
}
void loop() {
digitalWrite(A2,LOW);
delayMicroseconds(2);
digitalWrite(A2,HIGH);
delayMicroseconds(11);
digitalWrite(A2,LOW);
durasi = pulseIn(A1,HIGH);
jarak = durasi *0,034 / 2;
Serial.println("jarak:");
Serial.println(jarak);
Serial.println(" cm ");
delay(1000);
if (jarak < jarak_max){
lcd.clear();
lcd.setCursor(0,0);
lcd.println("Jarak:");
lcd.println(jarak);
lcd.println(" cm ");
gerakanPir = digitalRead(2);
if(gerakanPir == HIGH)
if(statusPir == LOW)
lcd.setCursor(0,0);
lcd.println("Ada Gerakan!");
myServo.write(0);
}
else{
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
lcd.setCursor(0,0);
lcd.println("Tdk Ada Grkn!");
lcd.println(jarak);
lcd.setCursor(1,1);
lcd.println("lampu mati");
myServo.write(180);
}
delay(1000);
}