TUTORIAL PER UN CORRETTO USO DEL MODULO REAL TIME CLOCK DS 3231

Documenti analoghi
Real Time Clock, in I2C BUS, Provvisto di RAM.

Relazione progetto Arduino

// Controllo remoto 05/05/2012 // poichè sono ancora ai primi passi ho usato // a larghe mani idee e listati di altri. Ringrazio tutti loro.

Termometro digitale. Ivancich Stefano

DMX 30. PLC visualizzato per montaggio a quadro. CARATTERISTICHE ELETTRICHE Min 20Vcc ; Max 26 Vcc Min 15 Vac ; Max 21 Vac

Corso di programmazione Arduino DI MALVEZZI DAVIDE

I SENSORI DI PROSSIMITA

Per controllare un motore DC (funzionante in corrente continua) con Arduino, devi utilizzare il circuito integrato Ponte H (nel mio caso un L293NE

Arduino. Laboratorio Arduino Base. HackLab Terni. Laboratorio aperto a tutti di elettronica, scienza e arte. hacklabterni.

FC-51: IR Infrared Obstacle Detection Sensor Module 2-30cm

Automobile Bluetooth

Per vedere tutti i tutorial:

CORSO ARDUINO. Corso ASEV Giulio Fieramosca Stefano Panichi. Stefano Panichi e Giulio Fieramosca

6^ parte : Acquisizione della temperatura con LM35. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

SENSORI OTTICI - FOTORESISTENZE

TSP 240. Terminale operatore con PLC integrato. inferiore a 500 ma senza carichi. Memoria Programma

MANUALE ISTRUZIONI CONTROLLER DIGITALE A SINGOLA PORTA PER LA GESTIONE DI 2048 LED PIXEL ALIMENTAZIONE 5V / 7,5-24V (T-1000S)

INSEGUITORE SOLARE CON ARDUINO. Dispositivo che insegue il movimento solare realizzato con: 1. Arduino 2. 2 foto resistenze 3.

ARDUINO. Ing. Francesco Giurlanda

ACCENDERE E SPEGNERE UN DIODO LED

Ingegneria Elettronica, Politecnico di Bari Blogger e Content Manager su Elettronica Open Source

Come comandare il condizionatore di casa con Arduino, anche da remoto!

7^ parte : Acquisizione della temperatura con LM35 e visualizzazione su display LCD. Author: Ing. Sebastiano Giannitto (ITIS M.

Ultrasonic Level Meter USM-02. (Estratto dal manuale operatore)

Arduino& Potenziometro

Verso Arduino... E oltre!

Nardi,Giambrocono,Mele,Labella 3R RELAZIONE TELECOMUNICAZIONI

In questo tutorial decodificheremo i segnali provenienti da un telecomando qualsiasi e utilizzeremo gli stessi segnali per comandare Arduino a

COMPONENTI PER L ELETTRONICA INDUSTRIALE E IL CONTROLLO DI PROCESSO. Misuratori ed indicatori digitali da pannello DAT9550, DAT8050 e SERIE DAT700

Manuale d uso e manutenzione

TERMOMETRO LCD BASATO SUL TRASDUTTORE DI TEMPERATURA ANALOGICO LM 35

TUTORIAL: COME USARE UN LM35 PER MISURARE UNA TEMPERATURA SU TUTTA LA SCALA CENTIGRADA

QUADRO DI CONTROLLO AMBIENTALE

Esercitazione Monitoraggio temperatura via WEB mediante Arduino YUN

Laboratorio di Elettronica. Arduino Lezione 1 Descrizione della board e installazione

LE ALTRE BOARD ARDUINO

EWS. Manuale d'installazione. Versione 3.9

Access Control Ivancich Stefano 31 Luglio 2014 TEKNEW - Studio Medici - Marcon(VE)

FONDAMENTI DI ARDUINO

Ora, minuti, giorno e data!

Corso Base Arduino ed Elettronica

Finalità delle misure

Switch a Matrice HDMI 2x2-4K con Fast Swithcing

Progetto Arduino BART. Corso di Sistemi RT Prof. Davide Brugali Università degli Studi di Bergamo

Corso Arduino Maggio Riccardo Binetti Lezione 1 - Blinking LEDs with style

MANUALE DI ISTRUZIONI MOVIMENTO CALIBRO 5030D. Cronografo a quarzo con 2 pulsanti

OROLOGIO DIGITALE con DISPLAY GIGANTI

Gestione Termometro e Termostato.

Arduino Tutorial #7 - Nunchuk materiale utilizzato Arduino, cavi elettrici, breadboard, nunchuk, 3 led.

Hub adattatore USB a seriale 2 porte, con interfaccia COM e possibilità di montaggio a parete

Comprendere il funzionamento dei convertitori Saper effettuare misure di collaudo

Corso Base Arduino ed Elettronica

Guida all utilizzo del modulo MPI BrainChild

IL SUONO E GLI ULTRASUONI DI MARIANGELA MONE

Curcio Davide matr /7/2016

Avolte è necessario studiare

SB2013IV1. -EV Scheda di gestione sensori: ( 6 USB, 6 TGS, 1 PID -AH, 1 SHT75 Collegati ad ADC a 24 bit )

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

ARDUINO. Colleghiamolo al PC/MAC - FUNZIONA?

FT536 DISPLAY GIGANTE 3 IN 1: ORA, DATA, TEMPERATURA 1/5 FT536 CARATTERISTICHE E FUNZIONAMENTO

COMPONENTI PER L ELETTRONICA INDUSTRIALE E IL CONTROLLO DI PROCESSO. Soglie di allarme per montaggio su guida DIN SERIE DAT5028-DAT5024

Programmazione di Base Variabili Array Funzioni Strutture di controllo. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

14^ parte : Sensore a ultrasuoni HC SR04 e Arduino. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

MANUALE DI ISTRUZIONI MOVIMENTO VD51 Cronografo con secondi e minuti

PIT 2012:

serie EA9XX - II da 1kVA a 10kVA

Quindi dopo aver collegato tutto avremo qualcosa di simile:

NEUTRON Audio System Engine ad elevate prestazioni 192 canali bidirezionali e Sample Rate a 96 khz MANUALE D USO

Arduino. Analog Read Serial

Switch Commutatore KVM a 4 Porte DisplayPort con Hub USB 3.0-4K

Far lampeggiare un led o forse un semaforo?

Dimensioni. Indicatori/Elementi di comando

Esercitazione Controllo di un motore DC mediante Arduino YUN

Gruppo di continuità UPS stand-alone. PowerValue 31/11 T da 10 a 20 kva UPS monofase per applicazioni critiche

Fisica, tecnologia, scienze applicate: ulab2, un laboratorio portatile basato su arduino e due piccoli robot, LEMU e MOMOLAB, vanno a scuola

Genere DATA Generalità Note Distribuzione

IST-1395.CS01.01/A CE395CS / Istruzioni d uso Pag. 2/6

Il sensore ad ultrasuoni

RADIO SVEGLIA SPONGEBOB SBACR0901

SEQ: Quali sono i vantaggi per il cliente? Quali i nostri?

Università degli studi di Roma LA SAPIENZA

LEGO Mindstorms e Arduino nella scuola secondaria di secondo grado: alcune esperienze didattiche. Pietro Bonora Liceo Scientifico A.B.

MANUALE TECNICO E ISTRUZIONI

Switch Commutatore 2x1 VGA + HDMI a VGA - Switch Convertitore HDMI / VGA a VGA con commutazione prioritaria p

STUDIO PER UN SIMULATORE DI CONTROLLORE PER MOTORI

MANUALE DI ISTRUZIONI TRC-1480 Termometro, orologio e stazione meteo esterna ed interna wireless

Programming with arduino. Lesson 10/05/2017

Strumentazione per la misura a banda stretta del campo elettromagnetico. Laura Vallone

Risoluzioni 4K a doppio monitor o 5K a monitor singolo a 60 Hz. Adattatore Convertitore Thunderbolt 3 a dual DisplayPort - 4k 60 Hz

In questa puntata scopriremo

Hub USB 3.0 a 4 porte con USB-C - Comprende Adattatore di alimentazione. StarTech ID: HB30C3A1CFS

Switch di rete Commutatore Industriale Gigabit Ethernet a 5 porte non gestito - Guide DIN / Montabile a parete

Prodotti PMP Il codice si riferisce al utensile senza set matrici.

Accessori di serigrafia Sefar

Workshop Teachers For Teachers settembre 2013

MD3-EVO SERIES HW REV.03 DASHBOARD DATALOGGER

Alunna: Gennuso Ylenia classe VB a.s. 2014/2015

SENSORE AD ULTRASUONI HC-SR04 E ARDUINO

Hub USB 3.0 a 4 porte con USB-C - Comprende Adattatore di alimentazione

12^ parte : Come gestire la Ethernet Shield. Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Transcript:

TUTORIAL PER UN CORRETTO USO DEL MODULO REAL TIME CLOCK DS 3231 L' DS3231 è un modulo orologio in tempo reale (R.T.C.) a basso costo, con interfaccia di comunicazione I2C estremamente preciso con "a bordo" un oscillatore integrato compensato in temperatura a cristallo di quarzo (TCXO). Il dispositivo incorpora anche una batteria al Litio (sostituibile), che mantiene aggiornato l'orologio anche in assenza della alimentazione principale (5V). L'oscillatore integrato migliora l'accuratezza a lungo termine del dispositivo e riduce il numero di componenti esterni. Il DS3231 è disponibile in gamme di temperature commerciali e industriali, l'rtc mantiene secondi, minuti, ore, giorno, data, mese e anno. Per i mesi con meno di 31 giorni, la data di fine viene regolata automaticamente, comprese le correzioni per l'anno bisestile. L'orologio funziona in entrambi i formati: 24 ore oppure / AM / PM per l'indicazione del formato a 12 ore; fornisce due sveglie configurabili, indirizzo e dati sono trasferiti in serie attraverso un bus bidirezionale I2C. Il dispositivo integra un sensore di temperatura digitale (on-chip), interoperabile attraverso l'interfaccia I2C, la precisione del sensore di temperatura è ± 3 C; il circuito di controllo dell'alimentazione può rilevare automaticamente e gestire l'alimentazione principale e di standby. Se si verifica una interruzione dell alimentazione principale, il dispositivo può continuare a fornire tempi precisi e temperature, detta interruzione non influenzano le prestazioni del dispositivo. Parametri dell'unità: Dimensioni: 38mm (lunghezza) * 22mm (larghezza) * 14mm (altezza) Peso: 8 gr Tensione di esercizio: 3,3-5 V ±0,5 V Clock chip: DS3231 circuito integrato dell'orologio di alta precisione Precisione Orologio: 0-40 gamma, il 2 ppm accuratezza, l'errore è stato di circa 1 minuto Sveglie programmabili n 2 Uscita onda quadra programmabile Tempo reale del generatore di clock secondi, minuti, ore, giorno, data, mese e anno valido fino al 2100 bisestile compensazione anno Sensore di temperatura del circuito integrato è dotato di una precisione di ± 3 C Chip di memoria: AT24C32 (32Kb) Interfaccia bus I2C ( velocità di trasmissione massima di 400KHz con tensione di lavora pari a 5V) Batteria al litio CR 2032 (o LIR 2032) per assicurare che il sistema dopo un'interruzione di corrente continui a tenere aggiornato tempo e data. Precisione: ± 1 sec/mese ± 63 secondi/anno Pin da utilizzare SCL A5 (for Arduino old version) SDA A4 (for Arduino old version) VCC 5V GND GND

Una volta collegati correttamente tutti i pin possiamo scaricare la libreria DS 3231 di Eiric Ayars sul nostro IDE Arduino dal seguente link: http://m5.img.dxcdn.com/cddriver/cd/sku.222910.rar e caricare il seguente codice di esempio direttamente dalla sezione esempi dell'ide Arduino. Leggeremo i dati direttamente sul serial monitor. Ovviamente dovremo impostare manualmente data e ora agendo sul codice. Purtroppo il modulo non contempla l'ora legale quindi, dovremo aggiornarla quando c'è il cambio (a marzo e a ottobre). Ecco il codice di Eric Ayars: /* DS3231_test.pde Eric Ayars 4/11 Test/demo of read routines for a DS3231 RTC. Turn on the serial monitor after loading this to check if things are working as they should. */ #include <DS3231.h> #include <Wire.h> DS3231 Clock; bool Century=false; bool h12; bool PM; byte ADay, AHour, AMinute, ASecond, ABits; bool ADy, A12h, Apm; byte year, month, date, DoW, hour, minute, second;

void setup() { // Start the I2C interface Wire.begin(); Clock.setSecond(50);//Set the second Clock.setMinute(59);//Set the minute Clock.setHour(11); //Set the hour Clock.setDoW(5); //Set the day of the week Clock.setDate(31); //Set the date of the month Clock.setMonth(5); //Set the month of the year Clock.setYear(16); //Set the year (Last two digits of the year) // Start the serial interface Serial.begin(115200); void ReadDS3231() { int second,minute,hour,date,month,year,temperature; second=clock.getsecond(); minute=clock.getminute(); hour=clock.gethour(h12, PM); date=clock.getdate(); month=clock.getmonth(century); year=clock.getyear(); temperature=clock.gettemperature(); Serial.print("20"); Serial.print(year,DEC); Serial.print(month,DEC); Serial.print(date,DEC); Serial.print(hour,DEC); Serial.print(minute,DEC); Serial.print(second,DEC); Serial.print("Temperature="); Serial.print(temperature); void loop() {ReadDS3231();delay(1000); // send what's going on to the serial monitor. // Start with the year /* Serial.print("2"); if (Century) { // Won't need this for 89 years. Serial.print("1"); else { Serial.print("0"); Serial.print(Clock.getYear(), DEC);

// then the month Serial.print(Clock.getMonth(Century), DEC); // then the date Serial.print(Clock.getDate(), DEC); */ // and the day of the week /*Serial.print(Clock.getDoW(), DEC); */ // Finally the hour, minute, and second /*Serial.print(Clock.getHour(h12, PM), DEC); Serial.print(Clock.getMinute(), DEC); Serial.print(Clock.getSecond(), DEC); // Add AM/PM indicator if (h12) { if (PM) { Serial.print(" PM "); else { Serial.print(" AM "); else { Serial.print(" 24h "); // Display the temperature Serial.print("T="); Serial.print(Clock.getTemperature(), 2); // Tell whether the time is (likely to be) valid if (Clock.oscillatorCheck()) { Serial.print(" O+"); else { Serial.print(" O-"); */ // Indicate whether an alarm went off /*if (Clock.checkIfAlarm(1)) { Serial.print(" A1!"); if (Clock.checkIfAlarm(2)) { Serial.print(" A2!"); */ // New line on display // // delay(1000); // Display Alarm 1 information /* Serial.print("Alarm 1: "); Clock.getA1Time(ADay, AHour, AMinute, ASecond, ABits, ADy, A12h, Apm); Serial.print(ADay, DEC); if (ADy) { Serial.print(" DoW"); else { Serial.print(" Date");

/* Serial.print(AHour, DEC); Serial.print(AMinute, DEC); Serial.print(ASecond, DEC); if (A12h) { if (Apm) { Serial.print('pm '); else { Serial.print('am '); if (Clock.checkAlarmEnabled(1)) { Serial.print("enabled"); // Display Alarm 2 information Serial.print("Alarm 2: "); Clock.getA2Time(ADay, AHour, AMinute, ABits, ADy, A12h, Apm); Serial.print(ADay, DEC); if (ADy) { Serial.print(" DoW"); else { Serial.print(" Date"); Serial.print(AHour, DEC); Serial.print(AMinute, DEC); if (A12h) { if (Apm) { Serial.print('pm'); else { Serial.print('am'); if (Clock.checkAlarmEnabled(2)) { Serial.print("enabled"); */ /* display alarm bits Serial.print('Alarm bits: '); Serial.print(ABits, DEC); */ delay(1000); // Display the time once more as a test of the gettime() function

Clock.getTime(year, month, date, DoW, hour, minute, second); Serial.print(year, DEC); Serial.print("/"); Serial.print(month, DEC); Serial.print("/"); Serial.print(date, DEC); Serial.print("day of the week :"); Serial.println(DoW, DEC); Serial.print(hour, DEC); Serial.print(":"); Serial.print(minute, DEC); Serial.print(":"); Serial.println(second, DEC);*/