Difference between revisions of "Arduino: RTC DS1302"

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

Revision as of 16:58, 30 May 2018

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
mv DS1302\ v2.2.7z DS1302/
cd DS1302
7z x DS1302\ v2.2.7z
cd /usr/share/arduino/libraries/

mv DS1307* DS1307
cd DS1307
7z x DS1307\ v1.1.7z
cd /usr/share/arduino/libraries/
mv DS3231* DS3231
cd DS3231
7z x DS3231\ v1.01.7z 
cd /usr/share/arduino/libraries/
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