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

12 minut temu, ethanak napisał:

cały bufor hurtem wyświetlić na lcd.

Wyświetlanie wszystkiego hurtem przez sprintf nie rozwiązuję problemu wiodącego zera. Ja tego nie widzę - proszę @ethanak o demonstrację.

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

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.