1. Home
  2. /
  3. IOT 物聯網
  4. /
  5. Arduino
  6. /
  7. [ Arduino ] –...

[ Arduino ] – RTC 時鐘模組 DS1302

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 1,平均評等: 5]

1.下載相關函式庫 DS1302
https://github.com/msparks/arduino-ds1302
[javascript]
#include <stdio.h>
#include <DS1302.h>
const int kCePin = 5; //RST
const int kIoPin = 6; //DAT
const int kSclkPin = 7; //CLK
DS1302 rtc(kCePin, kIoPin, kSclkPin);
void printTime() {//顯示日期時間的函式
Time t = rtc.time();
char buf[50];
snprintf(buf, sizeof(buf), "%04d-%02d-%02d %02d:%02d:%02d",
t.yr, t.mon, t.date,
t.hr, t.min, t.sec);
Serial.println(buf);
}
void setup(){
Serial.begin(9600);
rtc.writeProtect(false);// 是否防止寫入 (日期時間設定成功後即可改成true)
rtc.halt(false);// 是否停止計時
Time t(2016, 5, 04, 22, 06, 50, Time::kSunday); //年 月 日 時 分 秒 星期幾 (日期時間設定成功後即可註解掉)
rtc.time(t);//設定日期時間 (日期時間設定成功後即可註解掉)
}
void loop(){
printTime();
delay(1000);
}
[/javascript]
//Time::kSunday Time::kMonday Time::kTuesday Time::kWednesday Time::kThursday Time::kFriday Time::kSaturday
註:vcc 與 gnd 腳位一樣要接到主板上才行

評等結果
點擊便能為這篇文章進行評等!
[評等總次數: 1,平均評等: 5]

15 thoughts on “[ Arduino ] – RTC 時鐘模組 DS1302

  1. 你好
    我用你這組Code
    但是會出現兩筆時間
    2011-82-82 11:03:28
    2016-05-04 22:06:51
    請問你有遇過嗎

    1. 這隻程式會每隔一秒會 重新顯示日期時間
      但setup()會在第一次跑 所以只要你有設定 時間應該都會顯示正確的時間
      2011-82-82 11:03:28<=格式好像不是正確的 會不會是你電池已經快沒電之類的?! 我測都有乖乖顯示我給他的日期時間>< ds1302會有時間跑掉的問題,就我目前拿來當時鐘顯示用,用三個月已經慢十一分鐘,建議選更高階一點的會比較好

    1. 先確認你下載 DS1302 函式庫有確定載入了嗎?
      再看腳位對不對
      還有ds1302的電池是否有電

        1. 有了
          我以為他在寫的時候他的電池會給模組供電所以沒接3V3
          現在功能有正常了
          謝謝~~

          1. 哦哦!這樣好像是我的文章沒有寫清楚 sorry~
            我已經補在文章尾端
            如果時間要精準不跑掉 我建議您使用這塊時間模組會比較好 DS3232

  2. 我測試的時間也是顯示…
    2000-00-00 00:00:00
    另外, 水銀電池確定是 3.25V, 杜邦線也插對了D5~7, 5V, GND…
    不知道有沒有可以檢測chip是否壞了的方法,
    我的這組RTC應該是壞了…^^

    1. 檢測晶片這太專業,我也不會可能要問電子科的才知道吧!…
      你先確認 晶片上面是否有 DS1302 的字樣,看是不是用錯函式庫…

  3. 不好意思我又來了XD
    那個我得到的畫面如下:
    2016-05-04 22:06:51
    2005-41-41 08:81:14
    2016-05-04 22:06:53
    2011-82-82 11:03:30
    2016-05-04 22:06:55
    2005-41-41 08:81:15
    2016-05-04 22:06:57
    2011-82-82 11:03:32
    2016-05-04 22:06:59
    2011-82-82 11:03:00
    2016-05-04 22:07:01
    2005-41-41 08:81:40
    2016-05-04 22:07:03
    2011-82-82 11:03:02
    2016-05-04 22:07:05
    只有開頭是2016那幾行是對的
    其他是錯的
    我是使用跟您一樣的程式全部複製貼上的方式
    Vcc及Gnd還有I/O,RESET,SCLK也確定有接到板板上
    請問一下這可能是我哪裡出錯了呢?

      1. 我用一樣的程式碼測 都正常顯示
        你要不要拍你的時鐘模組 跟接線的圖給我看看

    1. 此問題主要是電壓源干擾,DS1302很容易被干擾,請將DS1302電源線縮短,減少干擾可能,問題就可解決

  4. 不好意思,我的DS1302時鐘模組一樣線有接對,電池新的,程式也是對的,第一次執行時會跑出正確時間,但第二次會跑出
    2000-00-00 00:00:00
    2000-00-00 00:00:00
    2000-00-00 00:00:00

  5. 請問一下,我的線有接對、程式正確、電池也是新的,第一次執行時間時,會正確跑出正確時間,但是之後卻變成
    2000-00-00 00:00:00
    2000-00-00 00:00:00
    2000-00-00 00:00:00

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *