SlideShare a Scribd company logo
1 of 8
Download to read offline
Textul si imaginile din acest document sunt licentiate
Attribution-NonCommercial-NoDerivs
CC BY-NC-ND
Codul sursa din acest document este licentiat
Public-Domain
Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare,
sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document
poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.
Arduino – RTC
Daca doresti ca placa Arduino sa interactioneze cu notiunea de timp, atunci iti este necesar un
RTC sau Real Time Clock. RTC-ul este un circuit integrat creat special pentru a mentine timpul, adica
functioneaza exact ca un ceas. In acest mod, placa Arduino nu este obligata sa mentina singura timpul,
deoarece nu este destinata pentru acest lucru.
In majoritatea situatiilor nu este necesar ca un microcontroller sa cunoasca timpul, dar cum
procedezi atunci cand vrei sa construiesti o alarma, un ceas, cronometru sau un data logger ? In acest
caz iti este necesar un RTC DS1307Z+, ceas foarte popular care functioneaza la o tensiune de 5V
impreuna cu placa Arduino.
Pentru o aplicatie simpla, in care placa Arduino trebuie sa afiseze timpul vei avea nevoie de
urmatoarele componente:
• O placa Arduino - http://www.robofun.ro/arduino
• Un Real Time Clock DS1307Z+
http://www.robofun.ro/forum
http://www.robofun.ro/index.php?route=product/product&product_id=1333
• Fire de conexiune - http://www.robofun.ro/cabluri
• O bareta de pini - http://www.robofun.ro/conectori/bareta_40pini
• O baterie litiu 3V CR1216 - http://www.robofun.ro/baterie-CR1216
Cum se conecteaza placuta RTC cu placa Arduino ?
Inainte de a conecta RTC-ul impreuna cu placa Arduino, trebuie sa realizezi cateva lipituri
simple cu letconul asupra placutei RTC. Tot ce trebuie sa faci este sa lipesti bareta de pini in gaurile
placutei RTC (doar 6 pini iti sunt necesari). Vezi cum s-au realizat lipiturile in imaginile de mai jos:
http://www.robofun.ro/forum
Dupa ce ai realizat lipiturile urmeaza sa conectezi RTC-ul impreuna cu placa Arduino, dupa
urmatorul tabel. Te vei folosi de firele de conexiune cu capete mama-tata si tot ce trebuie sa faci este sa
infigi firele in pinii placutei RTC si in pinii placii Arduino:
Arduino pin 5V RTC DS1307Z+ pin 5V
Arduino pin GND RTC DS1307Z+ pin GND
Arduino pin SDA RTC DS1307Z+ pin SDA
Arduino pin SCL RTC DS1307Z+ pin SCL
http://www.robofun.ro/forum
http://www.robofun.ro/forum
Urmeaza sa conectezi bateria ceasului care este absolut necesara, altfel RTC-ul nu ar functiona
corect. Bateria se conecteaza cu borna + spre exterior, asa cum iti indica si slotul bateriei.
Sketch-ul Arduino ?
Tot ce iti ramane de facut, este sa incarci in placa Arduino un sketch care iti permite sa vezi
care este timpul si totodata sa il reglezi. Copiaza codul sursa de mai jos, incarca-l in Arduino si imediat
dupa ce ai facut acest lucru deschide Monitorul Serial. Vei observa ca la fiecare secunda iti vor aparea
mai multe informatii: data si ora.
#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
void setup(){
Wire.begin();
Serial.begin(9600);
setDateTime(); //MUST CONFIGURE IN FUNCTION
}
void loop(){
printDate();
delay(1000);
}
void setDateTime(){
byte second = 45; //0-59
byte minute = 17; //0-59
byte hour = 22; //0-23
byte weekDay = 2; //1-7
byte monthDay = 16; //1-31
byte month = 5; //1-12
byte year = 14; //0-99
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero); //stop Oscillator
Wire.write(decToBcd(second));
Wire.write(decToBcd(minute));
Wire.write(decToBcd(hour));
Wire.write(decToBcd(weekDay));
Wire.write(decToBcd(monthDay));
Wire.write(decToBcd(month));
http://www.robofun.ro/forum
Wire.write(decToBcd(year));
Wire.write(zero); //start
Wire.endTransmission();
}
byte decToBcd(byte val){
// Convert normal decimal numbers to binary coded decimal
return ( (val/10*16) + (val%10) );
}
byte bcdToDec(byte val) {
// Convert binary coded decimal to normal decimal numbers
return ( (val/16*10) + (val%16) );
}
void printDate(){
// Reset the register pointer
Wire.beginTransmission(DS1307_ADDRESS);
Wire.write(zero);
Wire.endTransmission();
Wire.requestFrom(DS1307_ADDRESS, 7);
int second = bcdToDec(Wire.read());
int minute = bcdToDec(Wire.read());
int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
int monthDay = bcdToDec(Wire.read());
int month = bcdToDec(Wire.read());
int year = bcdToDec(Wire.read());
//print the date EG 3/1/11 23:59:59
Serial.print(month);
Serial.print("/");
Serial.print(monthDay);
Serial.print("/");
Serial.print(year);
Serial.print(" ");
Serial.print(hour);
Serial.print(":");
Serial.print(minute);
Serial.print(":");
Serial.println(second);
}
http://www.robofun.ro/forum
Daca doresti sa reglezi ceasul trebuie mai intai sa modifici variabilele second, minute, hour,
weekDay, monthDay, month, year din functia setDateTime(). Imediat cum ai modificat aceste variabile
trebuie sa incarci din nou sketch-ul in placa Arduino si sa deschizi din nou Monitorul Serial.
Daca doresti sa afli cum se poate construi un ceas care sa iti arate timpul printr-un afisaj LCD,
atunci acceseaza link-ul de mai jos:
http://www.electroschematics.com/8921/digital-clock-with-arduino-and-ds1307/
Daca doresti sa afli cum se poate construi un data logger care sa inregistreze date la intervale
precise de timp folosind un RTC, atunci acceseaza link-urile de mai jos:
http://www.bajdi.com/arduino-temperature-logging-and-webserver-with-rtc/
http://jobs.arduinoexperts.com/2013/03/02/simple-data-logging-using-arduino/
http://www.robofun.ro/forum

More Related Content

Viewers also liked

Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Iulius Bors
 
Curs gratuitarduino lectia4-modalitati decomunicare
Curs gratuitarduino lectia4-modalitati decomunicareCurs gratuitarduino lectia4-modalitati decomunicare
Curs gratuitarduino lectia4-modalitati decomunicareIulius Bors
 
Arduino toraspberrypi firmata
Arduino toraspberrypi firmataArduino toraspberrypi firmata
Arduino toraspberrypi firmataIulius Bors
 
Raspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionRaspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionIulius Bors
 
Curs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaCurs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaIulius Bors
 
Arduino indicatoare cp-usiram
Arduino indicatoare cp-usiramArduino indicatoare cp-usiram
Arduino indicatoare cp-usiramIulius Bors
 
Asamblare statie meteo
Asamblare statie meteoAsamblare statie meteo
Asamblare statie meteoIulius Bors
 
Arduino uno rfidid-12
Arduino uno rfidid-12Arduino uno rfidid-12
Arduino uno rfidid-12Iulius Bors
 
Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilorIulius Bors
 
Arduino shield wifi-monitorizarelocuinta
Arduino shield wifi-monitorizarelocuintaArduino shield wifi-monitorizarelocuinta
Arduino shield wifi-monitorizarelocuintaIulius Bors
 
Curs gratuitarduino lectia2-senzorianalogici
Curs gratuitarduino lectia2-senzorianalogiciCurs gratuitarduino lectia2-senzorianalogici
Curs gratuitarduino lectia2-senzorianalogiciIulius Bors
 
Curs gratuitarduino lectia1-arduinoblink
Curs gratuitarduino lectia1-arduinoblinkCurs gratuitarduino lectia1-arduinoblink
Curs gratuitarduino lectia1-arduinoblinkIulius Bors
 
Arduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxArduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxIulius Bors
 
Curs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsCurs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsIulius Bors
 
Arduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretArduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretIulius Bors
 
Raspberry pi lcd-shield20x4
Raspberry pi lcd-shield20x4Raspberry pi lcd-shield20x4
Raspberry pi lcd-shield20x4Iulius Bors
 
Arduino matriceled8x8
Arduino matriceled8x8Arduino matriceled8x8
Arduino matriceled8x8Iulius Bors
 
Curs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelCurs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelIulius Bors
 
Arduino flexsensorbrickbionicfinger
Arduino flexsensorbrickbionicfingerArduino flexsensorbrickbionicfinger
Arduino flexsensorbrickbionicfingerIulius Bors
 

Viewers also liked (20)

Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298Arduino wifi shield-drivermotoarel298
Arduino wifi shield-drivermotoarel298
 
Curs gratuitarduino lectia4-modalitati decomunicare
Curs gratuitarduino lectia4-modalitati decomunicareCurs gratuitarduino lectia4-modalitati decomunicare
Curs gratuitarduino lectia4-modalitati decomunicare
 
Arduino toraspberrypi firmata
Arduino toraspberrypi firmataArduino toraspberrypi firmata
Arduino toraspberrypi firmata
 
Raspberry pi bmp085blueedition
Raspberry pi bmp085blueeditionRaspberry pi bmp085blueedition
Raspberry pi bmp085blueedition
 
Curs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastaturaCurs gratuitarduino lectia13-mousesitastatura
Curs gratuitarduino lectia13-mousesitastatura
 
Arduino indicatoare cp-usiram
Arduino indicatoare cp-usiramArduino indicatoare cp-usiram
Arduino indicatoare cp-usiram
 
Asamblare statie meteo
Asamblare statie meteoAsamblare statie meteo
Asamblare statie meteo
 
Arduino uno rfidid-12
Arduino uno rfidid-12Arduino uno rfidid-12
Arduino uno rfidid-12
 
Arduino multiplexarea le-durilor
Arduino multiplexarea le-durilorArduino multiplexarea le-durilor
Arduino multiplexarea le-durilor
 
Arduino shield wifi-monitorizarelocuinta
Arduino shield wifi-monitorizarelocuintaArduino shield wifi-monitorizarelocuinta
Arduino shield wifi-monitorizarelocuinta
 
Curs gratuitarduino lectia2-senzorianalogici
Curs gratuitarduino lectia2-senzorianalogiciCurs gratuitarduino lectia2-senzorianalogici
Curs gratuitarduino lectia2-senzorianalogici
 
Curs gratuitarduino lectia1-arduinoblink
Curs gratuitarduino lectia1-arduinoblinkCurs gratuitarduino lectia1-arduinoblink
Curs gratuitarduino lectia1-arduinoblink
 
Arduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linuxArduino yun arduino-wifi-ethernet-linux
Arduino yun arduino-wifi-ethernet-linux
 
Curs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocsCurs gratuitarduino lectia12-conexiunewifi-googledocs
Curs gratuitarduino lectia12-conexiunewifi-googledocs
 
Arduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecretArduino yala electronicabazatapecodsecret
Arduino yala electronicabazatapecodsecret
 
Raspberry pi lcd-shield20x4
Raspberry pi lcd-shield20x4Raspberry pi lcd-shield20x4
Raspberry pi lcd-shield20x4
 
Arduino sht11
Arduino sht11Arduino sht11
Arduino sht11
 
Arduino matriceled8x8
Arduino matriceled8x8Arduino matriceled8x8
Arduino matriceled8x8
 
Curs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcelCurs gratuitarduino lectia15-seismografcuexcel
Curs gratuitarduino lectia15-seismografcuexcel
 
Arduino flexsensorbrickbionicfinger
Arduino flexsensorbrickbionicfingerArduino flexsensorbrickbionicfinger
Arduino flexsensorbrickbionicfinger
 

Similar to Arduino rtc

Conector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcConector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcIulius Bors
 
Arduino comparatorul intern
Arduino comparatorul internArduino comparatorul intern
Arduino comparatorul internIulius Bors
 
Arduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aArduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aIulius Bors
 
Arduino alcoolmetru
Arduino alcoolmetruArduino alcoolmetru
Arduino alcoolmetruIulius Bors
 
Arduino releemodio2
Arduino releemodio2Arduino releemodio2
Arduino releemodio2Iulius Bors
 
Adxl345 raspberry pi
Adxl345 raspberry piAdxl345 raspberry pi
Adxl345 raspberry piIulius Bors
 
Controlul unui motor pas cu pas
Controlul unui motor pas cu pasControlul unui motor pas cu pas
Controlul unui motor pas cu paskramactar
 
HOBBY.21-1-2009.pdf
HOBBY.21-1-2009.pdfHOBBY.21-1-2009.pdf
HOBBY.21-1-2009.pdfivan ion
 
Curs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoCurs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoIulius Bors
 
Arduino gsm gprs shield
Arduino   gsm gprs shieldArduino   gsm gprs shield
Arduino gsm gprs shieldIulius Bors
 
Arduino protocolul 1 wire
Arduino   protocolul 1 wireArduino   protocolul 1 wire
Arduino protocolul 1 wireIulius Bors
 
Curs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia6-senzorifortaCurs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia6-senzorifortaIulius Bors
 
Arduino gyro stabilizator
Arduino gyro stabilizatorArduino gyro stabilizator
Arduino gyro stabilizatorIulius Bors
 
curs microprocesoare si microcontrolere ASC Curs 2008.ppt
curs microprocesoare si microcontrolere ASC Curs 2008.pptcurs microprocesoare si microcontrolere ASC Curs 2008.ppt
curs microprocesoare si microcontrolere ASC Curs 2008.ppt9cqrb8vkfp
 
Raspberry pi firmata - arduino
Raspberry pi   firmata - arduinoRaspberry pi   firmata - arduino
Raspberry pi firmata - arduinoIulius Bors
 

Similar to Arduino rtc (19)

Conector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pcConector bluetoothmatesilver arduino-pc
Conector bluetoothmatesilver arduino-pc
 
Arduino comparatorul intern
Arduino comparatorul internArduino comparatorul intern
Arduino comparatorul intern
 
Arduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-aArduino gsmgprs-shield-partea-a-2-a
Arduino gsmgprs-shield-partea-a-2-a
 
Proiect PP
Proiect PPProiect PP
Proiect PP
 
Arduino alcoolmetru
Arduino alcoolmetruArduino alcoolmetru
Arduino alcoolmetru
 
Arduino releemodio2
Arduino releemodio2Arduino releemodio2
Arduino releemodio2
 
Adxl345 raspberry pi
Adxl345 raspberry piAdxl345 raspberry pi
Adxl345 raspberry pi
 
Controlul unui motor pas cu pas
Controlul unui motor pas cu pasControlul unui motor pas cu pas
Controlul unui motor pas cu pas
 
HOBBY.21-1-2009.pdf
HOBBY.21-1-2009.pdfHOBBY.21-1-2009.pdf
HOBBY.21-1-2009.pdf
 
Curs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduinoCurs gratuitarduino lectia11-muzicacuarduino
Curs gratuitarduino lectia11-muzicacuarduino
 
Arduino gsm gprs shield
Arduino   gsm gprs shieldArduino   gsm gprs shield
Arduino gsm gprs shield
 
Arduino mod-gps
Arduino mod-gpsArduino mod-gps
Arduino mod-gps
 
Arduino protocolul 1 wire
Arduino   protocolul 1 wireArduino   protocolul 1 wire
Arduino protocolul 1 wire
 
Curs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia6-senzorifortaCurs gratuitarduino lectia6-senzoriforta
Curs gratuitarduino lectia6-senzoriforta
 
Arduino gyro stabilizator
Arduino gyro stabilizatorArduino gyro stabilizator
Arduino gyro stabilizator
 
curs microprocesoare si microcontrolere ASC Curs 2008.ppt
curs microprocesoare si microcontrolere ASC Curs 2008.pptcurs microprocesoare si microcontrolere ASC Curs 2008.ppt
curs microprocesoare si microcontrolere ASC Curs 2008.ppt
 
Raspberry pi firmata - arduino
Raspberry pi   firmata - arduinoRaspberry pi   firmata - arduino
Raspberry pi firmata - arduino
 
Arduino - GPIO
Arduino - GPIOArduino - GPIO
Arduino - GPIO
 
Arduino - PWM
Arduino - PWMArduino - PWM
Arduino - PWM
 

More from Iulius Bors

Set prizecomandatedinarduino
Set prizecomandatedinarduinoSet prizecomandatedinarduino
Set prizecomandatedinarduinoIulius Bors
 
Raspberry pi wirelesshotspot
Raspberry pi wirelesshotspotRaspberry pi wirelesshotspot
Raspberry pi wirelesshotspotIulius Bors
 
Raspberry piuln2803
Raspberry piuln2803Raspberry piuln2803
Raspberry piuln2803Iulius Bors
 
Raspberry pi timelapse
Raspberry pi timelapseRaspberry pi timelapse
Raspberry pi timelapseIulius Bors
 
Programare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaProgramare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaIulius Bors
 
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...Iulius Bors
 
Curs gratuitarduino lectia7-senzoridistanta
Curs gratuitarduino lectia7-senzoridistantaCurs gratuitarduino lectia7-senzoridistanta
Curs gratuitarduino lectia7-senzoridistantaIulius Bors
 
Cum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiCum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiIulius Bors
 

More from Iulius Bors (8)

Set prizecomandatedinarduino
Set prizecomandatedinarduinoSet prizecomandatedinarduino
Set prizecomandatedinarduino
 
Raspberry pi wirelesshotspot
Raspberry pi wirelesshotspotRaspberry pi wirelesshotspot
Raspberry pi wirelesshotspot
 
Raspberry piuln2803
Raspberry piuln2803Raspberry piuln2803
Raspberry piuln2803
 
Raspberry pi timelapse
Raspberry pi timelapseRaspberry pi timelapse
Raspberry pi timelapse
 
Programare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificialaProgramare in prolog_pentru_inteligenta_artificiala
Programare in prolog_pentru_inteligenta_artificiala
 
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
Curs gratuitarduino lectia14-analogieelectricitatecurgereafluidelor-proiect-f...
 
Curs gratuitarduino lectia7-senzoridistanta
Curs gratuitarduino lectia7-senzoridistantaCurs gratuitarduino lectia7-senzoridistanta
Curs gratuitarduino lectia7-senzoridistanta
 
Cum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypiCum instaleziapachesimysql peraspberrypi
Cum instaleziapachesimysql peraspberrypi
 

Arduino rtc

  • 1. Textul si imaginile din acest document sunt licentiate Attribution-NonCommercial-NoDerivs CC BY-NC-ND Codul sursa din acest document este licentiat Public-Domain Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.
  • 2. Arduino – RTC Daca doresti ca placa Arduino sa interactioneze cu notiunea de timp, atunci iti este necesar un RTC sau Real Time Clock. RTC-ul este un circuit integrat creat special pentru a mentine timpul, adica functioneaza exact ca un ceas. In acest mod, placa Arduino nu este obligata sa mentina singura timpul, deoarece nu este destinata pentru acest lucru. In majoritatea situatiilor nu este necesar ca un microcontroller sa cunoasca timpul, dar cum procedezi atunci cand vrei sa construiesti o alarma, un ceas, cronometru sau un data logger ? In acest caz iti este necesar un RTC DS1307Z+, ceas foarte popular care functioneaza la o tensiune de 5V impreuna cu placa Arduino. Pentru o aplicatie simpla, in care placa Arduino trebuie sa afiseze timpul vei avea nevoie de urmatoarele componente: • O placa Arduino - http://www.robofun.ro/arduino • Un Real Time Clock DS1307Z+ http://www.robofun.ro/forum
  • 3. http://www.robofun.ro/index.php?route=product/product&product_id=1333 • Fire de conexiune - http://www.robofun.ro/cabluri • O bareta de pini - http://www.robofun.ro/conectori/bareta_40pini • O baterie litiu 3V CR1216 - http://www.robofun.ro/baterie-CR1216 Cum se conecteaza placuta RTC cu placa Arduino ? Inainte de a conecta RTC-ul impreuna cu placa Arduino, trebuie sa realizezi cateva lipituri simple cu letconul asupra placutei RTC. Tot ce trebuie sa faci este sa lipesti bareta de pini in gaurile placutei RTC (doar 6 pini iti sunt necesari). Vezi cum s-au realizat lipiturile in imaginile de mai jos: http://www.robofun.ro/forum
  • 4. Dupa ce ai realizat lipiturile urmeaza sa conectezi RTC-ul impreuna cu placa Arduino, dupa urmatorul tabel. Te vei folosi de firele de conexiune cu capete mama-tata si tot ce trebuie sa faci este sa infigi firele in pinii placutei RTC si in pinii placii Arduino: Arduino pin 5V RTC DS1307Z+ pin 5V Arduino pin GND RTC DS1307Z+ pin GND Arduino pin SDA RTC DS1307Z+ pin SDA Arduino pin SCL RTC DS1307Z+ pin SCL http://www.robofun.ro/forum
  • 6. Urmeaza sa conectezi bateria ceasului care este absolut necesara, altfel RTC-ul nu ar functiona corect. Bateria se conecteaza cu borna + spre exterior, asa cum iti indica si slotul bateriei. Sketch-ul Arduino ? Tot ce iti ramane de facut, este sa incarci in placa Arduino un sketch care iti permite sa vezi care este timpul si totodata sa il reglezi. Copiaza codul sursa de mai jos, incarca-l in Arduino si imediat dupa ce ai facut acest lucru deschide Monitorul Serial. Vei observa ca la fiecare secunda iti vor aparea mai multe informatii: data si ora. #include "Wire.h" #define DS1307_ADDRESS 0x68 byte zero = 0x00; //workaround for issue #527 void setup(){ Wire.begin(); Serial.begin(9600); setDateTime(); //MUST CONFIGURE IN FUNCTION } void loop(){ printDate(); delay(1000); } void setDateTime(){ byte second = 45; //0-59 byte minute = 17; //0-59 byte hour = 22; //0-23 byte weekDay = 2; //1-7 byte monthDay = 16; //1-31 byte month = 5; //1-12 byte year = 14; //0-99 Wire.beginTransmission(DS1307_ADDRESS); Wire.write(zero); //stop Oscillator Wire.write(decToBcd(second)); Wire.write(decToBcd(minute)); Wire.write(decToBcd(hour)); Wire.write(decToBcd(weekDay)); Wire.write(decToBcd(monthDay)); Wire.write(decToBcd(month)); http://www.robofun.ro/forum
  • 7. Wire.write(decToBcd(year)); Wire.write(zero); //start Wire.endTransmission(); } byte decToBcd(byte val){ // Convert normal decimal numbers to binary coded decimal return ( (val/10*16) + (val%10) ); } byte bcdToDec(byte val) { // Convert binary coded decimal to normal decimal numbers return ( (val/16*10) + (val%16) ); } void printDate(){ // Reset the register pointer Wire.beginTransmission(DS1307_ADDRESS); Wire.write(zero); Wire.endTransmission(); Wire.requestFrom(DS1307_ADDRESS, 7); int second = bcdToDec(Wire.read()); int minute = bcdToDec(Wire.read()); int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday int monthDay = bcdToDec(Wire.read()); int month = bcdToDec(Wire.read()); int year = bcdToDec(Wire.read()); //print the date EG 3/1/11 23:59:59 Serial.print(month); Serial.print("/"); Serial.print(monthDay); Serial.print("/"); Serial.print(year); Serial.print(" "); Serial.print(hour); Serial.print(":"); Serial.print(minute); Serial.print(":"); Serial.println(second); } http://www.robofun.ro/forum
  • 8. Daca doresti sa reglezi ceasul trebuie mai intai sa modifici variabilele second, minute, hour, weekDay, monthDay, month, year din functia setDateTime(). Imediat cum ai modificat aceste variabile trebuie sa incarci din nou sketch-ul in placa Arduino si sa deschizi din nou Monitorul Serial. Daca doresti sa afli cum se poate construi un ceas care sa iti arate timpul printr-un afisaj LCD, atunci acceseaza link-ul de mai jos: http://www.electroschematics.com/8921/digital-clock-with-arduino-and-ds1307/ Daca doresti sa afli cum se poate construi un data logger care sa inregistreze date la intervale precise de timp folosind un RTC, atunci acceseaza link-urile de mai jos: http://www.bajdi.com/arduino-temperature-logging-and-webserver-with-rtc/ http://jobs.arduinoexperts.com/2013/03/02/simple-data-logging-using-arduino/ http://www.robofun.ro/forum