30-07-2017, 19:48
Hej wszystkim. To mój pierwszy post. Yeeeey !
Standardowo, jak większość w takich przypadkach, zaczynam zabawę z Arduino ! - 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 !
Link do filmu
Poniżej kod z filmu:
Wrzucam jeszcze foto z efektu, który uzyskałem po wgraniu skecha poniżej:
Standardowo, jak większość w takich przypadkach, zaczynam zabawę z Arduino ! - 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 !
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);
}