// библиотека для работы I²C #include // библиотека для работы с часами реального времени #include "TroykaRTC.h" // Подключаем библиотеку для работы с дисплеем #include // номер цифрового пина дисплея #define DISPLAY_PIN A0 // пины к которым подключены кнопки #define BUTTON_PIN_1 0 #define BUTTON_PIN_2 1 #define BUTTON_PIN_3 4 #define BUTTON_PIN_4 5 // создаём объект для работы с часами реального времени RTC clock; void setup() { // инициализация часов clock.begin(); // метод установки времени и даты в модуль вручную // clock.set(10,25,45,27,07,2005,THURSDAY); // метод установки времени и даты автоматически при компиляции clock.set(__TIMESTAMP__); } void loop() { // запрашиваем данные с часов clock.read(); int hour = clock.getHour(); int minute = clock.getMinute(); displayTime(DISPLAY_PIN, hour, minute); // считываем состояние пина int buttonState1 = digitalRead(BUTTON_PIN_1); int buttonState2 = digitalRead(BUTTON_PIN_2); int buttonState3 = digitalRead(BUTTON_PIN_3); int buttonState4 = digitalRead(BUTTON_PIN_4); // в зависимости от состояние кнопок // увеличиваем / уменьшаем часы и минуты if (!buttonState1) { clock.setHour(hour + 1); delay(300); } else if (!buttonState2) { clock.setHour(hour - 1); delay(300); } else if (!buttonState3) { clock.setMinute(minute - 1); delay(300); } else if (!buttonState4) { clock.setMinute(minute + 1); delay(300); } delay(300); }