LinkedIn YouTube Facebook
Szukaj

Newsletter

Proszę czekać.

Dziękujemy za zgłoszenie!

Wstecz
SoM / SBC

[PRZYKŁAD] KAmduino oraz moduł RTC z układem DS1307

W przykładzie pokazano sposób podłączenia oraz obsługi modułu z zegarem czasu rzeczywistego. Tego typu moduł może być użyty np. do budowy zegarka/budzika.

Aby zrealizować projekt potrzebne są:

Rys 1. Moduł z układem DS1307

W projekcie użyto modułu opartego na układzie RS1307. Pozwala on zapisywać oraz precyzyjnie odmierzać czas. Do komunikacji wykorzystywany jest interfejs I2C. Moduł posiada gniazdo na baterie CR1220, która podtrzymuje działanie zegara RTC w przypadku odłączenia od zasilania. Wymaga samodzielnego montażu (przylutowania kilku elementów).

W celu rozpoczęcia pracy z modułem, należy podłączyć zasilanie 5 V, oraz linie komunikacyjne (SDA oraz SCL) interfejsu I2C do płytki KAmduino UNO. Połączenie zostało przedstawione w poniższej tabeli:

Pin KAmduino UNO Pin modułu RTC
+5V 5V
GND GND
SDA(A4) SDA
SCL (A5) SCL

Moduł z zegarem czasu rzeczywistego RS1307 podłączony do KAmduino UNO prezentuje się następująco:

Rys 2. Moduł z zegarem czasu rzeczywistego  RS1307. podłączony do płytki  KAmduino UNO

Aby wykorzystać możliwości modułu z zegarem czasu rzeczywistego należy skorzystać z biblioteki RCTlib (plik znajduje się w sekcji „Do pobrania”, na końcu artykułu). Po pobraniu należy ją zainstalować w środowisku Arduino IDE. Aby to zrobić trzeba uruchomić program Arduino, a następnie na górnej belce wybrać Szkic >> Dołącz Bibliotekę >> Dodaj bibliotekę .ZIP, odnaleźć na dysku pobraną bibliotekę RCTlib i zatwierdzić przyciskiem OPEN. Po instalacji biblioteki przechodzimy do zakładki Plik >> Przykłady >> RTClib (rysunek 3).

Rys 3. Przykłady dostępne w bibliotece RTClib

Po wybraniu odpowiedniej płytki (Narzędzia >> Płytka) można wgrać przykład na mikrokontoler znajdujący się na płytce KAmduino UNO. Po poprawnym wgraniu programu należy uruchomić monitor portu szeregowego. Jeżeli wszystko jest podłączone prawidłowo, powinien się pojawić następujący komunikat (rysunek 4).

Rys 4. Monitor portu szeregowego – pierwsze uruchomienie

Jak widać data oraz godzina nie jest poprawna – otrzymaliśmy komunikat iż zegar RTC nie jest uruchomiony. Aby działał on poprawnie należy ustalić początkową datę i godzinę. W tym celu w przykładzie należy odkomentować następującą linijkę widoczną w czerwonej ramce na rysunku 5. Data oraz godzina zostanie pobrana z naszego zegara systemowego. Można również wprowadzić tą informację ręcznie. Aby to zrobić należy odkomentować linię kodu która znajduje się w zielonym prostokącie na rysunku 5.

Rys 5. Ustawianie początkowej daty oraz godziny dla modułu RTC

Następnie należy ponownie wgrać program oraz uruchomić monitor portu szeregowego.

Rys 6. Poprawne wyświetlanie dany oraz godzinę po ustawieniu wartości początkowych 

 

Jak widać na rysunku 6 zegar czasu rzeczywistego poprawnie wskazuje datę oraz godzinę. Jej wyświetlanie odbywa się się co 3 sekundy. Aby dni tygodnia były wyświetlane w języku polskim należy na początku podmienić tablicę:

char daysOfTheWeek[7][12] = {"Niedziela", "Poniedzialek", "Wtorek", "Sroda", "Czwartek", "Piatek", "Sobota"};

Poniżej aktualnej daty mamy czas jaki minął od 1 stycznia 1970 roku oraz informację o tym jaka data będzie za 7 dni i 30 sekund.

Autor: Patryk Mądry