2016/08/06

Arduino RTC時間模組 DS1302

請先將「DS1302 RTC library」解壓縮至Arduino的Library內
目前在做一個小玩具,需要用到RTC(Real Time Clock)
該模組需先設定初始時間,時間設定好後將其註解
該範例為奇數秒則熄滅Led,偶數則亮起LED

GND接GND
VCC接5V
CLK接Pin12
DAT接Pin11
RST接Pin10
LED正極接13Pin



程式碼如下:

/*
 Name:  Test.ino
 Created: 2016/8/6 下午 23:48:11
 Author: C.Y.Fang
*/

#include <DS1302.h>

const uint8_t LED_PIN = 13;
const uint8_t CE_PIN = 10;
const uint8_t IO_PIN = 11;
const uint8_t SCLK_PIN = 12;
const int DELAY_TIME = 1000;

DS1302 rtc(CE_PIN, IO_PIN, SCLK_PIN);
int count = 0;

void setup()
{
 pinMode(LED_PIN, OUTPUT);
 Serial.begin(9600);
 //防止寫入日期時間
 rtc.writeProtect(true);
 //停止計時
 rtc.halt(false);
 //Time t(2016, 8, 6, 0, 06, 00, Time::kSaturday);
 //rtc.time(t);
}

void loop()
{
 Time time = rtc.time();
 char buff[25];
 snprintf(buff, sizeof(buff), "%04d-%02d-%02d %02d:%02d:%02d", time.yr, time.mon, time.date,
  time.hr, time.min, time.sec);
 if (time.sec % 2 == 0)
  digitalWrite(LED_PIN, HIGH);
 else
  digitalWrite(LED_PIN, LOW);
 Serial.println(buff);
 delay(DELAY_TIME);
}

執行結果:



滅燈

開燈