Arduino Polska Forum

Pełna wersja: DS3231 wyświetlanie zera w godzinach i minutach
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.

bullseye

Poskładałem prosty zegarek na DS3231 i Oledzie 128x64px i zastałem jeden, mały problem który mnie irytuje, mianowicie gdy w godzinie bądź minucie jest pojedyńcza liczba (dajmy na to 08:04) to zegar wyswietla to jako 8:4 co jest słabo czytelne Sad
Czy da radę to jakoś uzupełnić by automatycznie dodawał 0 na początku ?

biblioteka zegara to DS3231.h, wyświetlacza to Adafruit_SSD1306.h
Polecenia które wykorzystuje do ukazania czasu:

Kod:
display.println(dt.hour);
i analogicznie dla minuty:
Kod:
  display.println(dt.minute);
Może rozdziel w programie wyświetlanie godzin i minut.
I najpierw sprawdź czy np. godzina jest mniejsza niż 10 i jeżeli tak to przed nią wyświetl najpierw 0.
Z minutami analogicznie tak samo.

Pozdr.
ANT

bullseye

Hmm:

Kod:
if (dt.hour < 10 ) {
    
  }
i tutaj własnie nie wiem, co zrobić by było to 01 itp Sad
Nikt ci nie pomoże, jeśli nie podasz kodu odpowiedzialnego za wyświetlanie czasu.
Bo mógłbym napisać:
if (ss>9)
{
lcd.setCursor ( 9, 1 );
lcd.print(ss);
}
else
{
lcd.setCursor ( 9, 1 );
lcd.print("0");
lcd.setCursor ( 10, 1 );
lcd.print(ss);
}

Ale to nie są twoje zmienne, twoje funkcje i twoje współrzędne, zresztą na innego typu ekranie wyświetlane.
Podaj kod.

bullseye

Nie mniej pomogłeś, bo tak nie myślałem by podejść do problemu Smile