Skocz do zawartości

Zły format liczb wyświetlanych na lcd z moduł ds1307


kondzio125

Pomocna odpowiedź

Witam. Mam problem z wyświetlaniem liczb poniżej 10. Zamiast 13:09:03 wyświetlane jest 13:9:3. Próbowałem dodać ifa dopisującego 0 jeżeli wartość jest mniejsza niż 10 ale bezskutecznie. Może jest ktoś w stanie pomóc? Poniżej kod. Pozdrawiam 

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>

RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 16,2);

void setup () 
{
  Serial.begin(57600);
  lcd.init();
  lcd.begin (16,2);  // initialize the lcd 
  lcd.backlight();//To Power ON the back light
  if (! rtc.begin()) 
  {
    lcd.print("Nie znaleziono RTC");
    while (1);
  }
if (! rtc.isrunning()) 
  {
    lcd.print("RTC nie wystartowało");
  }
   // rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));//auto update from computer time
 
   //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));// to set the time manually 


}
void loop () 
{

    DateTime now = rtc.now();
    lcd.setCursor(0, 1);
    lcd.print("GODZINA");
    lcd.print(" ");
    lcd.print(now.hour());
    lcd.print(':');
    lcd.print(now.minute());
    lcd.print(':');
    lcd.print(now.second());
    lcd.print(" ");
    lcd.setCursor(0, 0);
    
    lcd.print("DATA");
    lcd.print(" ");
    lcd.print(now.day());
    lcd.print('/');
    lcd.print(now.month());
    lcd.print('/');
    lcd.print(now.year());
    lcd.print(" ");   


}

 

Link do komentarza
Share on other sites

Na przykładzie godzin:

String h = "0" + String(now.hour);                // godzinę zamieniamy na String i dodajemy wiodące zero bez względu na ilość znaków
if (h.length() == 3) h = h.substring(1);          //jeśli po przekształceniu są 3 znaki, to pierwszy znak usuwamy

i drukujemy godziny:     lcd.print(h);

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Ależ proszę

char bufor[20];
sprintf(bufor, "%02d:%02d:%02d %02d/%02d/%04d", now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year());
lcd.print(bufor);

(z telefonu piszę więc może być jakaś literówka)

  • Lubię! 2
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.