Arduino Polska Forum

Pełna wersja: Zegar RTC DS1307 i wyświetlacz LCD 1602 na ic2
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Problem polega na tym ze jest jakiś błąd 
Kod:
#include <DS1307RTC.h>
#include <Time.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BACKLIGHT_PIN 3
LiquidCrystal_I2C  lcd(0x27,2,1,0,4,5,6,7);

const char *monthName[12] = {
  "Jan", "Feb", "Mar", "Apr", "May", "Jun",
  "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};

void setup() {

   lcd.begin(16, 2);
   lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
   lcd.setBacklight(HIGH);
}

void loop() {
  tmElements_t tm;

  if (RTC.read(tm)) {
  
    lcd.setCursor (0, 0);
    LCDprint2digits(tm.Hour);
    lcd.print(':');
    LCDprint2digits(tm.Minute);
    lcd.print(':');
    LCDprint2digits(tm.Second);
    lcd.setCursor (0, 1);
    lcd.print(tm.Day);
    lcd.print('/');
    lcd.print(monthName[tm.Month-1]);
    lcd.print('/');
    lcd.print(tmYearToCalendar(tm.Year));
   
   
  } else {
    if (RTC.chipPresent()) {
      lcd.println("DS1307 stoi. Uruchom Zegar");
      }
       else {
      lcd.println("DS1307 blad oczczytu!");
      lcd.println("sprawdz polaczenie");
    }
    delay(9000);
  }
  delay(1000);
}

//void print2digits(int number) {
//  if (number >= 0 && number < 10) {
//    Serial.write('0');
//  }
//  Serial.print(number);
//}
 
void LCDprint2digits(int number) {
  if (number >= 0 && number < 10) {
    lcd.write('0');
  }
  lcd.print(number); 
}
 tu pokazuje błąd 
LiquidCrystal_I2C  lcd(0x27,2,1,0,4,5,6,7);
Jak masz podłączony wyświetlacz? Czy po I2C czy na "piechotę"?
po I2C
Są różne biblioteki do LCD I2C, otwórz przykład ze swojej i uzupełnij ten szkic odpowiednio. Albo ściągnij dokładnie taką jak użył autor tego szkicu.
Dzięki pomogło uzupełnienie szkicu z przykładu danej biblioteki
Zdaje się, że biblioteka LiquidCrystal_I2C się zmieniła i wymaga trochę mnie danych. U mnie poszła deklaracja wyłącznie z adresem i wymiarami lcd.

LiquidCrystal_I2C lcd(0x27,16,2);
(19-02-2020, 12:22)andrkac napisał(a): [ -> ]Zdaje się, że biblioteka LiquidCrystal_I2C się zmieniła i wymaga trochę mnie danych. U mnie poszła deklaracja wyłącznie z adresem i wymiarami lcd.

LiquidCrystal_I2C lcd(0x27,16,2);
To nie jest zmiana tylko inna biblioteka. Są różne, każdy może sobie zrobić bibliotekę o tej samej nazwie plików źródłowych i przypadkowo podobnych nazwach słów kluczowych, dość łatwo użyć tych samych nazw. I każda może mieć inne konstrukcje wymagane do inicjalizacji i działania.