Untitled
unknown
plain_text
a year ago
2.0 kB
7
Indexable
#include <DS3231.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Ustawienie adresu I2C dla wyświetlacza LCD (zwykle 0x27 lub 0x3F)
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Utworzenie instancji zegara RTC
DS3231 myRTC;
bool century = false;
bool h12Flag;
bool pmFlag;
void setup() {
// Start the serial port
Serial.begin(57600);
// Start the I2C interface
Wire.begin();
// Inicjalizacja wyświetlacza LCD
lcd.begin();
lcd.backlight();
// Wydrukowanie pięciu znaczników czasu na serial monitorze
for (int i = 0; i < 5; i++) {
delay(1000);
Serial.print(myRTC.getYear(), DEC);
Serial.print("-");
Serial.print(myRTC.getMonth(century), DEC);
Serial.print("-");
Serial.print(myRTC.getDate(), DEC);
Serial.print(" ");
Serial.print(myRTC.getHour(h12Flag, pmFlag), DEC); //24-hr
Serial.print(":");
Serial.print(myRTC.getMinute(), DEC);
Serial.print(":");
Serial.println(myRTC.getSecond(), DEC);
}
}
void loop() {
// Pobranie aktualnego czasu z zegara RTC
int year = myRTC.getYear();
int month = myRTC.getMonth(century);
int day = myRTC.getDate();
int hour = myRTC.getHour(h12Flag, pmFlag);
int minute = myRTC.getMinute();
int second = myRTC.getSecond();
// Wyświetlenie daty na pierwszej linii wyświetlacza LCD
lcd.setCursor(0, 0);
lcd.print(year + 2000); // Dodanie 2000 do roku, ponieważ getYear() zwraca rok od 2000
lcd.print("-");
if (month < 10) lcd.print("0");
lcd.print(month);
lcd.print("-");
if (day < 10) lcd.print("0");
lcd.print(day);
// Wyświetlenie czasu na drugiej linii wyświetlacza LCD
lcd.setCursor(0, 1);
if (hour < 10) lcd.print("0");
lcd.print(hour);
lcd.print(":");
if (minute < 10) lcd.print("0");
lcd.print(minute);
lcd.print(":");
if (second < 10) lcd.print("0");
lcd.print(second);
// Odświeżanie co sekundę
delay(1000);
}
Editor is loading...
Leave a Comment