Arduino Polska Forum
DS1307 Dziwne znaki przy próbie wyświetlania czasu na LCD 16x2 - Wersja do druku

+- Arduino Polska Forum (https://forum.arduinopolska.pl)
+-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino)
+--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica)
+--- Wątek: DS1307 Dziwne znaki przy próbie wyświetlania czasu na LCD 16x2 (/watek-ds1307-dziwne-znaki-przy-pr%C3%B3bie-wy%C5%9Bwietlania-czasu-na-lcd-16x2)



DS1307 Dziwne znaki przy próbie wyświetlania czasu na LCD 16x2 - enterman - 30-07-2017

Hej wszystkim. To mój pierwszy post. Yeeeey Smile!

Standardowo, jak większość w takich przypadkach, zaczynam zabawę z Arduino Big Grin! - Zakupiłem Leonardo.
Podłączyłem sobie RTC pod I2C, wyświetlacz standardowo - bez konwertera I2C.

Sam wyświetlacz śmiga jak trzeba, kiedy wgrywam do Arduino jakieś defaultowe przykłady.
Pisałem też swoje sketche, działało i problemów nie było. Taka zabawa przed czymś poważniejszym.

Schody zaczęły się w momencie próby wyświetlenia czasu na LCD. Zamiast daty i godziny, pojawiają się "krzaczki".

Załączam link do filmu, na którym prezentuje co się dzieje. Kod wrzucam poniżej (trochę zmodyfikowany, bo testowałem różne rozwiązania... ale prezentuje istotę problemu).

Pomóżcie ludzie, bo nic o tym w necie nie ma... albo źle szukałem Wink!
Link do filmu

Poniżej kod z filmu:

Kod:
#include <LiquidCrystal.h>
#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>


LiquidCrystal   lcd(12, 11, 5, 4, 3, 2);

const char *monthName[12] = {
  "Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paz", "Lis", "Gru" 
};

void setup() {
  lcd.begin(16, 2);
}

void loop() {
  lcd.print("Start...");
  delay(800);
  lcd.clear();
}

Wrzucam jeszcze foto z efektu, który uzyskałem po wgraniu skecha poniżej:

Kod:
#include <LiquidCrystal.h>
#include <Wire.h>
#include <TimeLib.h>
#include <DS1307RTC.h>


LiquidCrystal   lcd(12, 11, 5, 4, 3, 2);

const char *monthName[12] = {
  "Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paz", "Lis", "Gru" 
};

void setup() {
  lcd.begin(16, 2);
}

void loop() {
  tmElements_t tm;

  if(RTC.read(tm)){

    lcd.setCursor(0, 0);
    lcdPrintToDigits(tm.Hour);
    lcd.print(':');
    lcdPrintToDigits(tm.Minute);
    lcd.print(':');
    lcdPrintToDigits(tm.Second);
    lcd.setCursor(0, 1);
    lcd.print(tm.Day);
    lcd.print('/');
    lcd.print(monthName[tm.Month - 1]);
    lcd.print('/');
    lcd.print(tm.Year);
  }
  else {
    if(RTC.chipPresent()){
      lcd.print("DS1307 zatrzymany. Uruchom zegar");
    }
    else {
      lcd.print("DS1307 blad odczytu");
      lcd.print("sprawdx polaczenie");
    }
    delay(9000);
  }
  delay(10000);
}

void lcdPrintToDigits(int number){
  if(number >= 0 && number < 10){
    lcd.print('0');
  }
  lcd.print(number);
}


[Obrazek: lcd.jpg]


RE: DS1307 Dziwne znaki przy próbie wyświetlania czasu na LCD 16x2 - adix - 31-07-2017

Sprubuj wydrukować w tym programie cokolwiek czy pójdzie.


RE: DS1307 Dziwne znaki przy próbie wyświetlania czasu na LCD 16x2 - enterman - 02-08-2017

Dzięki za odp. adix... ale na tym filmie, do którego załączyłem link, drukuje się string.


RE: DS1307 Dziwne znaki przy próbie wyświetlania czasu na LCD 16x2 - adix - 02-08-2017

Ale jak drukujesz cokolwiek typu
Kod:
Serial.println("cokolwiek);
to jest ok?


RE: DS1307 Dziwne znaki przy próbie wyświetlania czasu na LCD 16x2 - enterman - 02-08-2017

(02-08-2017, 21:46)adix napisał(a): Ale jak drukujesz cokolwiek typu
Kod:
Serial.println("cokolwiek);
to jest ok?

Nie. Jeśli jest już załączona biblioteka DS1307RTC, wtedy Serial.println("cokolwiek); też wyświetla krzaki.


RE: DS1307 Dziwne znaki przy próbie wyświetlania czasu na LCD 16x2 - -adamek - 02-08-2017

„#include <TimeLib.h>" zastanawiające jest to dlaczego w pliku "Time.h" jest dyrektywa dołączająca TimeLib.h,
a w przykładach jest #include <Time.h> po kiego takie manewry ? używam tego zegara i nie ma problemów .
„też wyświetla krzaki" jak to mówi jeden jegomość od avr te krzaki trzeba ściąć ,skoro je zasadziłeś .
https://github.com/PaulStoffregen/Time/blob/master/Time.h