Szukaj na tym blogu

czwartek, 4 lipca 2013

wyświetlacz LCD po I2C i zegar RTC - testowanie zabawek

Wstęp

Nadszedł czas na testowanie zabawek zakupionych wcześniej. Na pierwszy ogień poszły:
  • przystawka do wyświetlacza LCD o symbolu I2C lcd1602
  • zegar RTC oparty o układ DS1307
Poniżej zdjęcie zmontowanego układu:




I2C lcd1602

Na pierwszy ogień poszła ta przystawka. Montaż banalnie prosty, więc podłączam wszystko ze strony sprzedawcy ściągam bibliotekę, odpalam i ... biblioteka nie bardzo pod arduino chce działać, jakieś błędy kompilacji wyskakują. Ale nic to, szukam w necie, raz dwa znajduję wersję 2.0 biblioteki (dostępna tutaj: http://hmario.home.xs4all.nl/arduino/LiquidCrystal_I2C/), odpalam pierwszy przykład, wszystko się kompiluje i ... nic nie widać. Tzn przepraszam podświetlenie się włączyło na maksa, ale napisu "Hello world" nie widać. Kręcę trochę potencjometrem od (chyba kontrastu bo podświetlenie jest na stałym poziomie), ale nic to nie daje :(
potencjometr od kontrastu

Pierwsza myśl: pewnie coś spaliłem jak podłączałem układ na odwrót - bo można tak i tak ;) Podłączam sam wyświetlacz LCD do starego układu i ... działa :) - czyli najwyżej ten układ spalony. Jeszcze chwilę kombinuję, ale nadal nic to nie daje.
Następnego dnia pomyślałem, że może jednak sprawdzę jakie jest napięcie to od kontrastu na odpowiedniej nóżce na układzie zmontowanym przeze mnie. Zrobiłem to między innymi przy pomocy zakupionych w nettigo.pl specjalnych sond (ta wstawka to żeby na promocję na majsterkowo.pl w przyszłości się załapać ;)). Było 1.1V. Testowany układ podawł aż 1.7 V i to było problemem, że na wyświetlaczu nic nie było widać. No to zacząłem kręcić tym potencjometrem aż ... po chyba 10 obrotach zaczął pojawiać się obraz.
Jednym słowem sukces :)

RTC DS1307

A z tym to poszło modelowo. Podłączyłem, biblioteka, test, działa i tylko późni się cholerstwo 15 sekund dziennie. I nie mam pojęcia dlaczego, ale szukam.


2 komentarze:

  1. #include
    #include

    #include "RTClib.h"

    RTC_DS1307 RTC;
    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlightpin, polarity
    String dateLcd;

    void setup () {
    Serial.begin(9600);
    Wire.begin();
    RTC.begin();
    lcd.begin(16,2);
    lcd.backlight();
    // following line sets the RTC to the date & time this sketch was compiled
    RTC.adjust(DateTime(__DATE__, __TIME__));
    if (! RTC.isrunning()) {
    Serial.println("RTC is NOT running!");
    }
    }

    void loop () {
    DateTime now = RTC.now();
    dateLcd = String(now.year(),DEC).substring(4,2) + "/" + String(now.month(),DEC) + "/" + String(now.day(),DEC) + " " + String(now.hour(), DEC) + ":" + String(now.minute(), DEC) + ":" + String(now.second(), DEC);
    Serial.println(dateLcd);
    lcd.setCursor(0, 0);
    lcd.print(dateLcd);
    delay(1000);
    }

    OdpowiedzUsuń