- Momentaneamente non disponibile
Shield Arduino orologio calendario RTC DS1307 con batteria tampone e LED
Basata sull’integrato DS1307 della Maxim-Dallas, questa shield per Arduino consente di avere un preciso orologio di sistema, sgravando la CPU dal calcolo e dalla gestione dei dati orari e liberando spazio nella memoria di programma, che può così essere utilizzata per scrivere il codice di altre applicazioni.
Puoi pagare in sicurezza con Carta, PayPal, Amazon Pay, SisalPay in ricevitoria o Bonifico
Corriere espresso 24/48h SDA, GLS, DHL, BRT oppure consegna in negozio o punto Poste
Hai 15 giorni di tempo dalla consegna per rendere il prodotto se non ti soddisfa
DOWNLOAD SKETCH ARDUINO | MANUALE
Basata sull’integrato DS1307 della Maxim-Dallas, questa shield per Arduino consente di avere un preciso orologio di sistema, sgravando la CPU dal calcolo e dalla gestione dei dati orari e liberando spazio nella memoria di programma, che può così essere utilizzata per scrivere il codice di altre applicazioni.
La shield è fornita premontata e pronta per l'utilizzo con Arduino!
L'integrato DS1307 è un contatore BCD (Binary Coded Decimal) a basso consumo, che conta secondi, minuti, ore, giorni, mesi e anni, provvisto di 56 byte di RAM statica non volatile. Può operare nelle modalità 12 o 24 ore, con indicazione delle ore antimeridiane (AM) e di quelle pomeridiane (PM). Le informazioni sull’ora e la data vengono collocate in un apposito registro e trasferite al microcontrollore di Arduino mediante l’I²C-bus. Il bus fa capo ai piedini 5 (SDA) e 6 (SCL) che combaciano con i pin SCL e SDA di Arduino (UnoRev3 e MegaRev3), il quale fa da unità master dell’I²C-Bus, mentre il DS1307 è lo slave.
Per le versioni di Arduino precedenti ad Arduino Uno Rev3 (UnoRev2 o Arduino2009), i segnali SCL e SDA sono disponibili sui pin A4 e A5, per rendere la shield compatibile anche con queste versioni, sul lato rame sono presenti delle piazzole a saldare. Per conoscere l’ora e la data, Arduino deve interrogare il DS1307 mediante l’I²C-bus; allo scopo occorre implementare un semplicissimo sketch che attivi un I²C-Bus. Ad ogni interrogazione, il DS1307 risponde inviando all’ATmega (sempre lungo il suo bus I²C) la risposta e le informazioni su ora e data. Sui connettori sono disponibili l'RST, i 5V, la massa e gli ingressi analogici A0÷A5. Nella shield l’uscita SQW (SQUARE WAVE) pilota in modo sink un LED, facendolo pulsare alla stessa frequenza dell’onda quadra prodotta; inoltre, tramite il ponticello J1 possiamo decidere se far leggere o no ad Arduino, tramite la linea A3, il segnale corrispondente. Alimentazione: 5 Vdc (ben stabilizzati), assorbimento: 1,5 mA (che scende a 500 nA nel funzionamento a pila). Dimensioni: 55x51 mm.
Batteria tampone per mantenere in funzione orologio, calendario e informazioni anche in assenza di alimentazione.
LO SKETCH (LISTATO 1)
Affinché Arduino possa interagire con il modulo RTC, bisogna caricarvi lo sketch appositamente preparato, visibile nel Listato 1. Come libreria abbiamo utilizzato quella di ladyada, opportunamente modificata (scaricabile qui RTCLib.zip) per poter gestire anche la frequenza di lampeggio del LED posto sullo shield, comandato dall'uscita SQW; per l'esattezza abbiamo aggiunto il comando RTC.sqw(x) dove al posto della x bisogna scrivere:
-
0 per disattivare il LED (sempre spento)
-
1 per il lampeggio del LED ad 1 Hz
-
2 per far pulsare l'uscita a 4.096 kHz
-
3 per ottenere dall'uscita 8.192 kHz
-
4 per ottenere dall'uscita 32.768 kHz
SQW/OUT (SQUARE WAVE/OUTPUT DRIVER)
Il DS1307 dispone di un’uscita di clock programmabile che rende disponibile un’onda quadra ricavata dalla frequenza di clock dell’orologio (determinata, a sua volta, dal quarzo da 32.768 kHz collegato ai piedini 1 e 2) che, mediante un apposito divisore interno, può essere divisa di frequenza ottenendo 1 Hz, 4.096 kHz, 8.192 kHz o l’intero clock. Le frequenze ottenibili non sono state scelte a caso: per esempio, 1 Hz può servire a far lampeggiare i due punti o il punto dei secondi di un eventuale display che mostra l’ora. La condizione dell’uscita di clock ausiliario (SQWE - Square Wave Enable, piedino 7) si definisce impostando opportunamente lo stato logico dei bit RS0 (0) ed RS1 (1) del registro di controllo, secondo quanto mostrato nell’apposito riquadro; ad esempio, 1 Hz si ottiene con entrambi i bit a zero.
Si noti che quando sia il quarto (SQWE) che il settimo bit (OUT) si trovano a zero logico, l’uscita di clock si pone fissa a livello basso; se, invece, il bit 7 è ad uno logico e il 4 a zero, l’uscita assume costantemente lo stato alto. Nel nostro shield l’uscita SQW pilota in modo sink un LED, facendolo pulsare alla stessa frequenza dell’onda quadra prodotta; inoltre, tramite il ponticello J1 possiamo decidere se far leggere o no ad Arduino, tramite la linea A3, il segnale corrispondente.
Come accennato, questo clock ausiliario può servire per attivare dei visualizzatori o scandire certe sequenze: per esempio far suonare un cicalino ogni secondo al raggiungimento di una certa ora, per realizzare una sveglia; il tutto senza impegnare l’ATmega328 di Arduino in routine di temporizzazione.
Sono disponibili shield di espansione per espandere le capacità di comunicazione e elaborazione della board Arduino. Le puoi acquistare qui: EBAY | MECTRONICA STORE
SPECIFICHE
-
Integrato DS1307
-
Gestione secondi, minuti, ore, giorni, mesi e anni
-
Può operare nelle modalità 12 o 24 ore
-
56 byte di RAM statica non volatile
-
Uscita SQW (SQUARE WAVE) pilota in modo sink un LED
-
Controllo mediante I²C-Bus
-
Compatibile Arduino UNO e 2009 (e su board compatibili operanti a 5V)
Potrebbe anche piacerti