Continuo la serie dei miei tutorial sull’RTC DS1307 ed Arduino, in questo articolo ti mostro come puoi utilizzare un RTC DS1307 già assemblato.
Rispetto alla shield RTC di cui puoi leggere i precedenti articoli:
- Tutorial: RTC Shield con DS1307
- RTC Arduino: usa arduino come orologio
- RTC shield DS1307: impostare data e ora
- Data logging con Arduino
Questa scheda RTC DS1307 può esserti utile per realizare gli stessi progetti con il vantaggio delle ridotte dimensioni oltre al fatto che non devi assemblartela.
Inoltre ho acquistato questa scheda per poterla utilizzare nel mio progetto RTC Rainbow Ring V3 orologio luminoso che nei prossimi articoli utilizzerà la RTC DS1307 per recuperare l’ora esatta anche in mancanza di alimentazione grazie alla batteria tampone di cui è dotata:
Schema dell’RTC DS1307
la scheda è già assemblata, a parte i pin, questo ti permette di decidere se dalsare dei pin lineari, dei pin ad angolo o degli strip femmina, utilizza il tipo di connessioni pin necessarie al tuo progetto.
Su entrambi i lati, presenta una linea di pin a cui saldare gli strip per connettere la shield al tuo progetto:
io ho saldato degli strip semplici, maschio, da entrambi i lati per poterla utilizzare sulla breadboard.
In realità pensando di utilizzarla con la Rainbow Ring V3 avrei potuto saldare degli strip femmina a 90° per collegare agevolmente le due schede nel mio progetto.
I pin delle due schede coincidono in quanto presentano la stessa sequenza: SCL,SDA,Vcc,Gnd:
Sketch per l’RTC DS1307
Per provare l’RTC DS1307 ho utilizzato la libreria RTCLib utilizzata anche negli altri articoli e l’esempio DS1307:
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib #include <Wire.h> #include "RTClib.h" RTC_DS1307 RTC; void setup () { Serial.begin(57600); Wire.begin(); RTC.begin(); if (! RTC.isrunning()) { Serial.println("RTC is NOT running!"); // following line sets the RTC to the date & time this sketch was compiled RTC.adjust(DateTime(__DATE__, __TIME__)); } } void loop () { DateTime now = RTC.now(); Serial.print(now.year(), DEC); Serial.print('/'); Serial.print(now.month(), DEC); Serial.print('/'); Serial.print(now.day(), DEC); Serial.print(' '); Serial.print(now.hour(), DEC); Serial.print(':'); Serial.print(now.minute(), DEC); Serial.print(':'); Serial.print(now.second(), DEC); Serial.println(); Serial.print(" since midnight 1/1/1970 = "); Serial.print(now.unixtime()); Serial.print("s = "); Serial.print(now.unixtime() / 86400L); Serial.println("d"); // calculate a date which is 7 days and 30 seconds into the future DateTime future (now.unixtime() + 7 * 86400L + 30); Serial.print(" now + 7d + 30s: "); Serial.print(future.year(), DEC); Serial.print('/'); Serial.print(future.month(), DEC); Serial.print('/'); Serial.print(future.day(), DEC); Serial.print(' '); Serial.print(future.hour(), DEC); Serial.print(':'); Serial.print(future.minute(), DEC); Serial.print(':'); Serial.print(future.second(), DEC); Serial.println(); Serial.println(); delay(3000); }
Buon divertimento !!!
Prima di inserire un commento, per favore, leggi il regolamento
96 pings
Skip to comment form