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
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 :)
#include
OdpowiedzUsuń#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);
}
u mnie nie działa :-(
OdpowiedzUsuń