#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

byte ledpir = 4;
byte ledsar = 5;
byte ledzold = 6;
byte gyalogpir = 2;
byte gyalogzold = 3;
byte gomb = 7;

void setup() {
  pinMode(ledpir, OUTPUT);
  pinMode(ledsar, OUTPUT);
  pinMode(ledzold, OUTPUT);
  pinMode(gyalogpir, OUTPUT);
  pinMode(gyalogzold, OUTPUT);
  pinMode(gomb, INPUT_PULLUP);
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("Kezdés");
  Serial.begin(9600);
}

void loop() {
  digitalWrite(ledpir, HIGH);
  digitalWrite(ledsar, LOW);
  digitalWrite(ledzold, LOW);
  digitalWrite(gyalogpir, LOW);
  digitalWrite(gyalogzold, HIGH);
  countDown(6000);

  for (int i = 0; i < 5; i++) {
    digitalWrite(gyalogzold, LOW);
    delay(400);
    digitalWrite(gyalogzold, HIGH);
    delay(400);
  }
  digitalWrite(gyalogzold, LOW);

  digitalWrite(ledpir, HIGH);
  digitalWrite(ledsar, HIGH);
  digitalWrite(ledzold, LOW);
  digitalWrite(gyalogpir, HIGH);
  delay(1000);

  digitalWrite(ledpir, LOW);
  digitalWrite(ledsar, LOW);
  digitalWrite(ledzold, HIGH);
  digitalWrite(gyalogpir, HIGH);
  
  int delayTime = 15000;
  unsigned long startTime = millis();
  bool gombLenyomva = false;

  while (millis() - startTime < delayTime) {
    int remainingTime = (delayTime - (millis() - startTime)) / 1000;
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Ido: ");
    lcd.print(remainingTime);
    lcd.print(" sec");
    delay(1000);

   
  }

  digitalWrite(ledpir, LOW);
  digitalWrite(ledsar, HIGH);
  digitalWrite(ledzold, LOW);
  digitalWrite(gyalogpir, HIGH);
  delay(2000);
}

void countDown(int time) {
  int remainingTime = time / 1000;
  while (remainingTime > 0) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Ido: ");
    lcd.print(remainingTime);
    lcd.print(" sec");
    delay(1000);
    remainingTime--;
  }
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Ido: 0 sec");
  delay(1000);
}