KKM: RTC - Real Time Clock DS1307

Početnik si s Croduinom. Ili s elektronikom? Za oko ti je zapeo određeni modul, ali ne znaš kako ga koristiti? Bez brige, tu je KKM! Kako Koristiti Module (KKM) je serija blog tutorijala e-radionice na kojoj ćeš pronaći sve što ti treba kako bi započeo rad sa svojim omiljenim modulom. Tutorijali obuhvaćaju: tehničke karakteristike, princip rada, upute kako povezati modul s Croduinom te osnovni kod. Sve ostalo prepuštamo tebi na maštu.

Što je RTC?

 
Real-Time Clock je elektronički uređaj koji vrlo precizno prati vrijeme. U ovom tutorialu baviti ćemo se novijim modelom DS3231SN.
RTC
RTC moduli uglavnom koriste kristal oscilator frekvencije 32.768 kHz, koja se koristi i u quartz satovima. U usporedni s DS1307, model DS3231 ima ugrađen TCXO (Temperature Compensated Crystal Oscillator), što donosi stabilnost koju s običnim oscilatorom ne bi mogli dobiti, prilikom promjene temperature. Zajedno čine cjelinu koja omogućuje dugotrajno i precizno pračenje vremena.
 
Karakteristike:
 
Napon: 3.3V - 5.5V
Struja: 170uA (stand-by 5.5V)
Komunikacija: 400kHz I2C (default address 0x68)
Temperatura: -40°C do +85°C (za SN model koji se nalazi na breakoutu u našoj ponudi)
Dimenzije: 38mm x 22mm x 14mm

Što i kako radi?

 
RTC prati sekunde, minute, sata, dan u tjednu, datum: dan u mjesecu, mjesec i godinu. Kada jednom postavimo vrijeme možemo pratiti kalendar sve do 2100. godine. To znači da se datum na kraju mjeseca automatski prebacuje, isto vrijedi i za prijestupne godine. Sat radi u 24 i 12 satnom formatu, ugrađena su i dva programibilna alarma. Modul i kontroler povezani su preko dvojsmerne I2C komunikacije. Sve potrebno za ovu komunikaciju nalazi se na breakoutu. Ukoliko imate potrebu za promjenom I2C adrese, možete to raditi povezivanje A0, A1 i A2 padova na breakoutu modula.
 
Baterija se koristi s modulom iz razloga sačuvanja postavljenog vremena. Kada sustav unutar DS3231 primjeti da je došlo do prekida stalnog izvora napajanja, prebacuje se na bateriju. BAterija koja odgovara breakoutu je CR2032, kapaciteta je 240mAh. Ista stvar se automatski obavlja i u suprotnom smjeru.

Povezivanje s Croduinom

 
Povezivanje, library i sample sketch možete koristiti za DS3231 te DS3232 modele.
 
Povezivanje RTC na CRoduino

Arduino kod

 
Preuzmite library ovdje.
 
Kod za postavljanje vremena:
 

#include "DS3231.h"
DS3231 rtc(SDA, SCL);
void setup()
{
rtc.begin();
rtc.setDOW(WEDNESDAY); // postavite dan u tjednu
rtc.setTime(9, 17, 0); // postavite vrijeme, 24h format (sat, minuta, sekunda)
rtc.setDate(17, 2, 2016); // postavite datum (dan, mjesec, godina)
}
void loop()
{
}

 
Kod za prećenje vremena serijskim putem:
 

#include "DS3231.h"
DS3231 rtc(SDA, SCL);
void setup()
{
Serial.begin(115200); // ne zaboravite u Serial Monitoru postaviti BAUD rate na 115200
rtc.begin();
}
void loop()
{
// prikazuje dan u tjednu
Serial.print(String(rtc.getDOWStr())+"\t");
// prikazuje datum
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// prikazuje vrijeme
Serial.println(rtc.getTimeStr());
// pauza 1s
delay (1000);
}
Leave a Reply