Rellotge RTC en temps real DS1307 amb Arduino: 4 passos
Rellotge RTC en temps real DS1307 amb Arduino: 4 passos
Anonim
Rellotge RTC en temps real DS1307 amb Arduino
Rellotge RTC en temps real DS1307 amb Arduino

En aquest tutorial, aprendrem sobre el rellotge en temps real (RTC) i sobre com es combinen Arduino i rellotge en temps real IC DS1307 com a dispositiu de sincronització.

El rellotge en temps real (RTC) s’utilitza per controlar el temps i mantenir un calendari. Per poder utilitzar un RTC, primer cal programar-lo amb la data i l’hora actuals. Un cop fet això, es poden llegir els registres RTC en qualsevol moment per conèixer l’hora i la data. DS1307 és un RTC que funciona amb protocol I2C. Les dades de diversos registres es poden llegir accedint a les seves adreces per llegir mitjançant la comunicació I2C.

Pas 1: coses que necessiteu

Coses que necessiteu
Coses que necessiteu
Coses que necessiteu
Coses que necessiteu
Coses que necessiteu
Coses que necessiteu

Aquestes són les següents coses que necessiteu per a aquest instructable:

Arduino uno

Mòdul rsc DS1307

Filferros de pont

Cèl·lula de moneda de 3,7 v

Pas 2: connexions

Connexions
Connexions
Connexions
Connexions

Seguiu els esquemes adjunts a la secció d'imatges i connecteu-ho tot d'acord amb els esquemàtics.

Pas 3: Part de codificació

Part de codificació
Part de codificació

Programació d'Arduino per alimentar RTC amb data i hora actuals; i llegint la data i l'hora des del RTC.

Aquí utilitzarem la biblioteca DS1307 de Watterott de GitHub.

Descarregueu aquesta biblioteca des d’aquí.:

Extraieu la biblioteca i afegiu la carpeta anomenada DS1307 al camí de la carpeta de biblioteques de l'IDE Arduino.

Un cop s'ha afegit la biblioteca a l'IDE Arduino, obriu l'IDE i obriu l'esbós d'exemple anomenat Exemple de la biblioteca DS1307 afegida.

Avís de precaució: a l'esbós d'exemple, en el bucle de configuració, s'utilitza la funció rtc.set (). Passeu els arguments de data i hora actuals tal com s'esmenta a aquesta funció. A l'esbós d'exemple, es comentarà aquesta afirmació. Descomenteu-lo i pengeu l’esbós. Un cop s'ha carregat l'esbós, torneu a comentar l'extracte i pengeu l'esbós. Si no es fa això, cada vegada que la placa Arduino UNO es reinicia o s’encén després d’apagar-se, la data i l’hora que definiu s’establiran una i altra vegada i no podreu llegir l’hora i la data exactes actuals.

/ * Exemple DS1307 RTC (temps real)

Uno A4 (SDA), A5 (SCL) Mega 20 (SDA), 21 (SCL) Leonardo 2 (SDA), 3 (SCL) * /

#include "Wire.h"

#include "DS1307.h"

DS1307 rtc;

void setup () {/ * init Port sèrie * / Serial.begin (9600); mentre que (! sèrie); / * espereu que es connecti el port sèrie: només és necessari per a Leonardo * /

/ * init RTC * / Serial.println ("Init RTC …");

/ * només configureu la data i l'hora una vegada * / rtc.set (0, 0, 8, 24, 12, 2014); / * 08: 00: 00 24.12.2014 // seg, mín, hora, dia, mes, any * /

/ * stop / pause RTC * / // rtc.stop ();

/ * start RTC * / rtc.start (); }

bucle buit () {uint8_t seg, min, hora, dia, mes; uint16_t any;

/ * obtenir temps de RTC * / rtc.get (& seg, & min, & hora, & dia, & mes, i any);

/ * sortida de sèrie * / Serial.print ("\ nHora:"); Serial.print (hora, DEC); Serial.print (":"); Serial.print (min, DEC); Serial.print (":"); Serial.print (sec, DEC);

Serial.print ("\ nData:"); Serial.print (dia, DEC); Serial.print ("."); Serial.print (mes, DEC); Serial.print ("."); Serial.print (any, DEC);

/ * espereu un segon * / delay (1000); }

Copieu el codi anterior i pengeu-lo a la vostra placa arduino

Pas 4: Obtenir temps

Obtenir temps
Obtenir temps
Obtenir temps
Obtenir temps

Després de connectar-ho tot i carregar el codi a la vostra placa arduino, obriu el monitor sèrie al vostre ide arduino i, a continuació, podreu obtenir la data i l'hora com a meves al vostre monitor sèrie, ja que podeu veure el meu Time & data al meu monitor sèrie, per a la sortida de demostració, consulteu la sortida de la imatge anterior i divertiu-vos afegint un rellotge RTC al vostre projecte.

Recomanat: