Arduino: RTC DS1302

From OnnoWiki
Jump to navigation Jump to search

Sumber: http://domoticx.com/arduino-modules-rtc-tijdklok-ds1302/

Download Library

Lakukan

cp *7z /usr/share/arduino/libraries/
cd /usr/share/arduino/libraries/
mkdir DS1302
mkdir DS1307
mkdir DS3231
mkdir DS3234


cd ~/Arduino/libraries
mkdir DS3102
wget http://domoticx.phoenixinteractive.nl/arduino/libraries/ds13xx_ds32xx/DS1302%20v2.2.7z
mv DS1302\ v2.2.7z DS1302/
cd DS1302
7z x DS1302\ v2.2.7z


mv DS1307* DS1307
cd DS1307
7z x DS1307\ v1.1.7z
cd /usr/share/arduino/libraries/
cd ~/Arduino/libraries
mkdir DS3231
wget http://domoticx.phoenixinteractive.nl/arduino/libraries/ds13xx_ds32xx/DS3231%20v1.01.7z
wget http://145.130.102.57/domoticx/arduino/libraries/ds13xx_ds32xx/DS3231%20v1.01.7z
mv DS3231* DS3231
cd DS3231
7z x DS3231\ v1.01.7z 
mv DS3234* DS3234
cd DS3234
7z x DS3234\ v1.0.7z
cd /usr/share/arduino/libraries/

Rangkaian

Arduino-DS1302-schema.png

Pin

Arduino   RTC
+5v	  01 - VCC1 (+5v)
GND	  02 - GND
D6	  03 - CLK (serial clock)
D7	  04 - DAT (data)
D8	  05 - RST (reset)


Code

#include <DS1302.h>
 
// Init the DS1302
// DS1302 rtc([CE/RST], [I/O], [CLOCK]);
DS1302 rtc(8, 7, 6);
Time waktu;
 
void setup() {
  // Set the clock to run-mode, and disable the write protection
  rtc.halt(false);
  // rtc.writeProtect(false);
  rtc.writeProtect(true);
  
  // Setup Serial connection
  Serial.begin(9600);
 
  // The following lines can be commented out to use the values already stored in the DS1302
  // rtc.setDOW(MONDAY);        // Set Day-of-Week to MONDAY
  // rtc.setTime(13, 0, 0);     // Set the time to 12:00:00 (24hr format)
  // rtc.setDate(29, 2, 2016);   // Set the date to Feb 2, 2016
}
 
void loop() {
  waktu = rtc.getTime();
  int dataJam = waktu.hour;     
  int dataMenit = waktu.min;
  int dataDetik = waktu.sec;
  
  // Send Day-of-Week
  Serial.print(rtc.getDOWStr());
  Serial.print(" ");
  
  // Send date
  Serial.print(rtc.getDateStr());
  Serial.print(" -- ");
 
  // Send time
  Serial.println(rtc.getTimeStr());
 
  // Wait one second before repeating :)
  delay (1000);
}

Referensi