različiti projekti traže poznavanje točnog vremena a to ćete najlakše saznati uz ovaj modul
U ovom primjeru koristit ćemo gotov modul s DS1307 čipom, kvarcnim satom i rezervnom baterijom za izradu vlastitog sata.
Za komunikaciju s Arduino pločom koristi se komunikacijsko sučelje temeljeno na I2C sabirnici. Spojimo SCL i SDA linije na odgovarajuće pinove na našem Uno R3. Potrebne biblioteke i kod za upravljanje satom mogu se pronaći na Arduino web stranici.
spajanje
- priključite napajanje na modul (+ 5V)
- priključite masu (-) na modul (GND)
- SCL i SDA linije spojene su na odgovarajuće Arduino pinove
- povezujemo displej na isti način kao u prethodnim projektima
//pozivanje potrebnih biblioteka
#include "Wire.h"
#include "Time.h"
#include "DS1307RTC.h"
#include "LiquidCrystal.h"
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Definiranje pinova
void setup() {
lcd.begin(16,2);
}
void loop() {
tmElements_t tm; //Inicjalizacija modula DS1307
if (RTC.read(tm)) {
lcd.setCursor(0,0);
lcd.print(tm.Hour); //ispis sata
lcd.print(":");
lcd.print(tm.Minute);//ispis minuta
lcd.print(":");
print2digits(tm.Second);//ispis sekunda
lcd.setCursor(0,1);
//ispis datuma
lcd.print(tm.Day);
lcd.print('/');
lcd.print(tm.Month);
lcd.print('/');
lcd.print(tmYearToCalendar(tm.Year));
} else {
if (RTC.chipPresent()) {
lcd.setCursor(0,0);
lcd.print("Sat zaustavljen!");
} else {
lcd.setCursor(0,0);
lcd.print("Pogreška čitanja");
}
}
delay(1000);
}
//Funkcja koja ispisuje vrijednosti na 2
// decimalna mjesta
void print2digits(int number) {
if (number >= 0 && number < 10) {
lcd.print('0');
}
lcd.print(number);
}