#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
int pinLED = 13;
int pinLEDBar = 8;
int pinSensorGerak = A0;
int nilaiSensor = 0;
int pinBuzzer = 7;
int pinServo = 10; // Pin untuk motor servo
Servo servoMotor; // Objek untuk motor servo
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C mungkin berbeda, ganti dengan alamat yang sesuai
void setup() {
pinMode(pinLED, OUTPUT);
pinMode(pinLEDBar, OUTPUT);
pinMode(pinBuzzer, OUTPUT);
pinMode(pinSensorGerak, INPUT);
pinMode(pinServo, OUTPUT); // Inisialisasi pin untuk motor servo
lcd.begin(16, 2); // Inisialisasi LCD I2C
lcd.clear(); // Bersihkan tampilan LCD
lcd.setCursor(0, 0);
lcd.print("Hallo Abangkuh");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Selamat Datang!");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tetap ilmu padi");
delay(1000);
// Inisialisasi komunikasi serial
Serial.begin(9600);
// Inisialisasi posisi awal motor servo
servoMotor.attach(pinServo);
servoMotor.write(0); // Motor servo tidak bergerak pada awalnya
}
void loop() {
nilaiSensor = digitalRead(pinSensorGerak);
if (nilaiSensor == HIGH) {
digitalWrite(pinLED, LOW);
tone(pinBuzzer, 500);
digitalWrite(pinLEDBar, HIGH);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Deteksi Gerakan");
Serial.println("Deteksi Gerakan");
// Bergerakkan motor servo ke posisi 90 derajat
servoMotor.write(90);
} else {
digitalWrite(pinLED, HIGH);
noTone(pinBuzzer);
digitalWrite(pinLEDBar, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Tidak Ada Gerakan");
Serial.println("Tidak Ada Gerakan");
// Mengembalikan motor servo ke posisi awal (0 derajat)
servoMotor.write(0);
}
delay(1000);
}