All’interno del processore ARM di Arduino Due è presente un modulo RTC (“Real Time Clock”, orologio in tempo reale) che permette di mantenere un preciso riferimento temporale. A differenza delle schede esterne, Arduino è sprovvisto di una batteria tampone ed è quindi necessario reimpostare data e orario ad ogni accensione.
Per utilizzare l’RTC integrato è necessario fare uso di una libreria esterna, scaricabile al seguente link: https://github.com/MarkusLange/Arduino-Due-RTC-Library
Il seguente è un esempio relativo alle funzioni base messe a disposizione dalla libreria. Interessante è anche la possibilità di impostare un allarme ad una data o un orario specifico.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
#include <rtc_clock.h> // Creazione RTC RTC_clock rtc(XTAL); char* giorni[]={"Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato", "Domenica"}; void setup() { rtc.init(); // Inizializzazione rtc.set_time(19, 34, 0); // Ore, minuti, secondi rtc.set_date(20, 05, 2015); // Giorno, mese, anno rtc.set_alarmtime(19, 50, 15) // Impostazione sveglia rtc.attachalarm(sveglia); // Funzione da richiamare dalla sveglia (ore, minuti, secondi) // rtc.set_alarmdate (5, 21); // Sveglia in base al giorno (mese, giorno) Serial.begin(9600); } void loop() { // Ore Serial.print(rtc.get_hours()); Serial.print(":"); // Minuti Serial.print(rtc.get_minutes()); Serial.print(":"); // Secondi Serial.print(rtc.get_seconds()); Serial.print(", "); // Giorno della settimana Serial.print(giorni[rtc.get_day_of_week()-1]); Serial.print(", "); // Giorno del mese Serial.print(rtc.get_days()); Serial.print("-"); // Mese Serial.print(rtc.get_months()); Serial.print("-"); // Anno Serial.print(rtc.get_years()); Serial.println(""); delay (1000); } void sveglia() { Serial.println("Sveglia attivata"); } |
Oltre a quelle mostrate sono presenti ulteriori funzioni, tutte rintracciabili all’interno del file “rtc_clock.h” e di immediata comprensione. Inoltre, assieme alla libreria vengono forniti anche degli esempi che ne illustrano in dettaglio le applicazioni.