Įrašo turinys
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include "RTClib.h" LiquidCrystal_I2C lcd(0x27, 16, 2); RTC_DS3231 rtc; // PINLAR #define BTN_MODE 2 #define BTN_UP 3 #define BTN_DOWN 4 #define BUZZER 6 #define RELAY 8 // IN A ulangan 1-kanalli rele // ALARM VAQTI int alarmHour = 7; int alarmMin = 0; bool alarmActive = false; byte setMode = 0; // 0-normal, 1-hour, 2-minute void setup() { pinMode(BTN_MODE, INPUT_PULLUP); pinMode(BTN_UP, INPUT_PULLUP); pinMode(BTN_DOWN, INPUT_PULLUP); pinMode(BUZZER, OUTPUT); pinMode(RELAY, OUTPUT); digitalWrite(BUZZER, LOW); digitalWrite(RELAY, HIGH); // ACTIVE LOW rele, HIGH = o‘chik lcd.init(); lcd.backlight(); rtc.begin(); // ===== RTC VAQTINI FAQAT 1 MARTA SOZLASH ===== if (rtc.lostPower()) { rtc.adjust(DateTime(2026, 1, 10, 11, 30, 0)); } } void loop() { DateTime now = rtc.now(); // ===== LCD ===== lcd.setCursor(0, 0); lcd.print("Time "); print2(now.hour()); lcd.print(":"); print2(now.minute()); lcd.setCursor(0, 1); lcd.print("Alarm "); print2(alarmHour); lcd.print(":"); print2(alarmMin); // ===== MODE BOSILSA ===== if (digitalRead(BTN_MODE) == LOW) { setMode++; if (setMode > 2) setMode = 0; delay(300); } // ===== ALARM VAQTINI SOZLASH ===== if (setMode == 1) { // soat if (digitalRead(BTN_UP) == LOW) { alarmHour = (alarmHour + 1) % 24; delay(300); } if (digitalRead(BTN_DOWN) == LOW) { alarmHour = (alarmHour + 23) % 24; delay(300); } } if (setMode == 2) { // minut if (digitalRead(BTN_UP) == LOW) { alarmMin = (alarmMin + 1) % 60; delay(300); } if (digitalRead(BTN_DOWN) == LOW) { alarmMin = (alarmMin + 59) % 60; delay(300); } } // ===== ALARM ISHGA TUSHISHI ===== if (now.hour() == alarmHour && now.minute() == alarmMin && !alarmActive) { alarmActive = true; digitalWrite(BUZZER, HIGH); digitalWrite(RELAY, LOW); // ACTIVE LOW = yoqish } // ===== KNOPKA BOSILSA O‘CHADI ===== if (alarmActive && (digitalRead(BTN_MODE) == LOW digitalRead(BTN_UP) == LOW digitalRead(BTN_DOWN) == LOW)) { digitalWrite(BUZZER, LOW); digitalWrite(RELAY, HIGH); // ACTIVE LOW = o‘chirish alarmActive = false; delay(500); } delay(200); } // ===== YORDAMCHI FUNKSIYA ===== void print2(int n) { if (n < 10) lcd.print("0"); lcd.print(n); } https://www.instagram.com/reel/DTVL2muiCCN/?igsh=NmVtdnd4OTlkZDV3 👆👆👆👆👆👆👆 Instagramga video joylaganmiz. Osha loyhaning dasturi