• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Zegar RTC DS1307 i wyświetlacz LCD 1602 na ic2
#1
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);
 
Odpowiedź
#2
Jak masz podłączony wyświetlacz? Czy po I2C czy na "piechotę"?
 
Odpowiedź
#3
po I2C
 
Odpowiedź
#4
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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#5
Dzięki pomogło uzupełnienie szkicu z przykładu danej biblioteki
 
Odpowiedź
#6
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);
 
Odpowiedź
#7
(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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości