Untitled

mail@pastecode.io avatar
unknown
plain_text
11 days ago
2.0 kB
2
Indexable
Never
#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);
}
Leave a Comment