|

【自造學堂】如何用Arduino x RTC完成LCD時間顯示?

   

作者:黃小棟

這次自造學堂的教學文主題是「用Arduino x RTC完成LCD時間顯示」。在這一章節裡除了介紹RTC模組外,也會教大家如何將RTC模組與上一章節中提到的I2C_LCD模組和Arduino做系統上的整合,讓大家不再只會使用一塊Arduino控制一個模組,或者看到Arduino IDE內資料庫一堆的範例程式,卻一頭霧水,不知該如何整合使用。

學習目標:

大家研讀完這篇文章並且實際操作之後,將會了解下列兩點:

  1. 對 DS3231_RTC模組有初步的認識,並且能夠將時間顯示在Arduino IDE的序列埠監控視窗上。
  2. 學會使用I2C匯流排,讓Arduino、RTC模組和LCD模組做結合,並且整合Arduino的範例程式來完成此專案的控制。

學習背景:

在研讀實作之前,必須知道下面幾點:

  1. 會安裝第三方資料庫libraries。(依然很重要)
  2. 了解麵包板的特性,並且知道如何使用。
  3. 知道I2C匯流排的特性。(可參考【自造學堂】Arduino如何透過I2C控制LCD模組的介紹)

好~話不多說,立刻進入我們的主題吧!

基礎認識:什麼是RTC?

我們可以在Google搜尋到,RTC是Real-time clock的縮寫,指的是負責記錄時間的積體電路元件。它可以跟時鐘一樣輸出實際時間,通常會出現在個人電腦、伺服器或嵌入式系統,因此大家的桌機和筆電內就有這個元件。RTC具有以下特性:

  1. 消耗功率低。
  2. 讓主系統處理更需時效性的工作。
  3. 有時會比其他方式的輸出要更準確。

以上資料皆來自於網路資源,若有興趣深入研究的也可再自行查找。

模組規格及腳位介紹

首先,我們這次所使用的模組為DS3231高精密RTC模組(

本文為會員限定文章

立即加入會員! 全站文章無限看~

                               

已經是會員? 按此登入

只需不到短短一分鐘...

輸入您的信箱與ID註冊即可享有一切福利!

會員福利
1

免費電子報

2

會員搶先看

3

主題訂閱

4

好文收藏

Author: 黃 小棟

機電整合工程師,喜歡遊山玩水。多次參與Maker活動;曾自行設計和製作水下無人載具,現在則是平日手縫泰迪熊。

Share This Post On

22 Comments

  1. 不好意思DS3231_TEST這個網址不見了

    Post a Reply
    • 不好意思,本文時間已久,建議用Google Search看看,有查到這個給你參考:https://gist.github.com/dvsseed/649717d92b8a2d8e7d6dfcc2d3fed145#file-ds3231_test-ino

      Post a Reply
  2. 不好意思那個副檔名的網址不見了,可以再給一次嗎?

    Post a Reply
  3. 有成功了,搞了一天,這個版本是對的。
    感謝教學

    Post a Reply
  4. 請問小時要調整成24HR制該如何設定?
    month=Clock.getMonth(Century);其中Century預設為flase用意何在?謝謝!

    Post a Reply
  5. 程式碼複製過去顯示字串的引號會變全形.所以會出錯無法正常顯示
    例如(lcd.print(‘:’);)裡面的單引號會變全形.雙引號也是.

    Post a Reply
  6. 請問筆者使用arduino版本為何 因為螢幕沒有顯示但有上傳成功

    Post a Reply
  7. 請問筆者使用arduino版本為何??

    Post a Reply
  8. 求大神們指點指點小弟都按照步驟來可是LCD跑不出東西來請問筆者ARDUINO版本是??還跑出exit status 1
    stray ‘\241’ in progra的這串字,專題有點趕求大神們幫幫忙阿

    Post a Reply
    • 因为有中文符号,尝试更换为英文的” 或’

      Post a Reply
  9. rtc ds1307 跟i2c lcd 如何混合在一起我有兩個單獨的程式我要讓ds1307所收到的\時間在lcd上面顯示出來

    Post a Reply
    • 您好,這裡是MakerPRO編輯部,謝謝您的詢問,關於技術問題,需要詢問一下作者再回覆您噢~若急需解答,建議可上MakerPRO社群發問,相信社群中的高手們能很快為您解惑!請上:https://www.facebook.com/groups/makerpro.cc/

      Post a Reply
  10. 請問 我時間顯示當只有一個位數時我希望他能夠補零輸出例如:原本是1,2,3…
    我希望它是 01,02,03
    請問程式要怎麼改呢??

    Post a Reply
    • 您好,這裡是MakerPRO編輯部,謝謝您的詢問,我們詢問一下作者再回覆您噢~~

      Post a Reply
  11. 請問我計數到了59秒之後 他會從09開始計數請問要怎麼調整??才能夠從00開始計數??
    請大大幫我解惑感謝

    Post a Reply
    • 您好,這裡是MakerPRO編輯部,謝謝您的詢問,我們詢問一下作者再回覆您噢~~

      Post a Reply
  12. 想請問一下這個副程式「DS3231_TEST」為什麼不能使用?因為我們也有使用這個程式可是我們下載完後也有把副程式加進去I2C_LCD模組也是去上面建議的地方購買的,可是到後來也找不出什麼錯誤但是I2C_LCD模組上就是沒顯示時間

    Post a Reply
    • 您好,我們是MakerPRO編輯部,感謝您的提問,這是技術問題的部分,我們再請作者來回答噢:)

      Post a Reply
    • I2C_LCD上看一下上面的晶片,如果轉接的晶片是PCF8574T位址是0X27,如果是PCF8574AT位址是0X3F

      Post a Reply

Submit a Comment

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