#include <Servo.h>
#include <LiquidCrystal_I2C.h>
#define buttonPin 4
#define servoPin 3
#define buzzerPin 5
Servo myServo;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int parkiranTersisa = 10;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
myServo.attach(servoPin);
lcd.begin(16, 2);
lcd.print("Parkiran: " + String(parkiranTersisa));
}
void loop() {
if (digitalRead(buttonPin) == LOW && parkiranTersisa > 0) {
bukaPintu();
updateParkiran();
}
}
void bukaPintu() {
myServo.write(0);
delay(1000);
myServo.write(90);
}
void updateParkiran() {
parkiranTersisa--;
lcd.clear();
lcd.print("Parkiran: " + String(parkiranTersisa));
if (parkiranTersisa == 0) {
bunyiBuzzer();
}
}
void bunyiBuzzer() {
myServo.write(90);
tone(buzzerPin, 500);
delay(2000);
noTone(buzzerPin);
delay(2000);
while (true) {}
}