// Soat imitatsiyasi uchun o'zgaruvchilar
int hours = 12;   // Soatning soati
int minutes = 0;  // Soatning minutlari
boolean isRunning = false;  // Soat ishga tushganmi yoki to'xtaganmi
const int button1Pin = 2;  // Birinchi knopka pin raqami
const int button2Pin = 3;  // Ikkinchi knopka pin raqami

void setup() {
  pinMode(button1Pin, INPUT);  // Birinchi knopkani kiritish uchun pin raqamini kirish sifatida sozlash
  pinMode(button2Pin, INPUT);  // Ikkinchi knopkani kiritish uchun pin raqamini kirish sifatida sozlash
  Serial.begin(9600);  // Serial monitor orqali ma'lumotlarni ko'rish uchun boshlash
}

void loop() {
  // Birinchi knopkani tekshirish
  if (digitalRead(button1Pin) == HIGH) {
    if (isRunning) {
      stopClock();  // Agar soat ishga tushgan bo'lsa, uni to'xtatish
    }
  }

  // Ikkinchi knopkani tekshirish
  if (digitalRead(button2Pin) == HIGH) {
    if (!isRunning) {
      startClock();  // Agar soat to'xtagan bo'lsa, uni ishga tushurish
    }
  }

  // Soat ishlashini boshqarish
  if (isRunning) {
    updateClock();  // Agar soat ishga tushgan bo'lsa, uni yangilash
  }
}

// Soatni ishga tushirish
void startClock() {
  isRunning = true;  // Soat ishga tushgan
  Serial.println("Soat ishga tushdi.");
}

// Soatni to'xtatish
void stopClock() {
  isRunning = false;  // Soat to'xtagan
  Serial.println("Soat to'xtadi.");
}

// Soatni yangilash
void updateClock() {
  minutes++;  // Bir minut o'tib ketadi
  if (minutes == 60) {
    minutes = 0;  // 60 minutdan so'ng, minutlarni nolga qaytarish
    hours++;  // Bir soat o'tib ketadi
    if (hours == 13) {
      hours = 1;  // 12 so'atdan so'ng, soatni boshidan boshlash
    }
  }

  Serial.print("Soat: ");
  Serial.print(hours);
  Serial.print(":");
  Serial.print(minutes);
  Serial.println();
  delay(1000);  // Bir soniya intizorni saqlash
}