Untitled

 avatar
unknown
plain_text
10 months ago
2.2 kB
1
Indexable
#include <Wire.h>
#include <DS3231.h>
#include <LCD_I2C.h>

// Ustawienie adresu I2C dla wyświetlacza LCD (zwykle 0x27 lub 0x3F)
LCD_I2C lcd(0x27);

// 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() + 2000; // Poprawienie roku
  int month = myRTC.getMonth(century);
  int day = myRTC.getDate();
  int hour = myRTC.getHour(h12Flag, pmFlag);
  int minute = myRTC.getMinute();
  int second = myRTC.getSecond();
  
  // Debugowanie odczytanych wartości
  Serial.print("Year: "); Serial.println(year);
  Serial.print("Month: "); Serial.println(month);
  Serial.print("Day: "); Serial.println(day);
  Serial.print("Hour: "); Serial.println(hour);
  Serial.print("Minute: "); Serial.println(minute);
  Serial.print("Second: "); Serial.println(second);

  // Wyświetlenie daty na pierwszej linii wyświetlacza LCD
  lcd.setCursor(0, 0);
  lcd.print(year);
  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