• 方案介紹
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

使用Arduino即可獲得準確的時鐘,DIY一個精度高的時鐘

2021/03/03
578
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

原理圖.rar

共3個文件

僅使用Arduino,顯示屏和少量按鈕,在16x2 LCD上顯示日期的準確時鐘。無需RTC模塊。

硬件部件

  • Arduino Nano R3    ×    1個    
  • 字母數(shù)字LCD,16 x 2    ×    1個    
  • 觸覺開關(guān),頂部致動    ×    3    
  • 微調(diào)電位器,10 kohm    ×    1個    
  • 跳線×    1個    

最后得到了一個非常準確的時鐘。運行5天后,它沒有問題。

僅使用Arduino的主要問題是其內(nèi)部時鐘速度并非100%準確。因此,如果僅依賴于此,那么經(jīng)過的毫秒數(shù)將減少一小部分,并且您正在創(chuàng)建的時鐘將丟失或浪費時間。我的方法是測試我使用的Arduino的準確性,并確定每小時損失或獲得多少毫秒。然后,所需要做的只是對速度調(diào)整進行編程,以每小時從內(nèi)部跟蹤的毫秒中增加或減去這種差異。

我的另一個擔(dān)心是Arduino時鐘是否始終不準確,但是如前所述,我編寫的時鐘在5天內(nèi)保持了非常準確的時間,因此看來錯誤是一致的。

第二個問題是內(nèi)部millis()函數(shù)每隔50天左右會重置一次,因此您無法操縱毫秒計數(shù)。因此,答案是使用我可以操縱的計數(shù)器替換millis()中斷,該計數(shù)器將計算從午夜起的毫秒數(shù),每天重置一次,以消除任何運行時限制。

為了評估不準確性,我假設(shè)我的計算機時鐘以及因此Processing中的millis()是準確的。因此,我為Arduino創(chuàng)建了一個程序,每隔2秒將一次握手后經(jīng)過的毫秒數(shù)發(fā)送給Processing,并編寫了一個腳本供Processing處理以讀取它并將其與經(jīng)過的毫秒數(shù)進行比較,以顯示實時結(jié)果,以及一個小時后的差值。過去。這給出了在一小時內(nèi)丟失或獲得的毫秒數(shù),因此給出了時鐘程序中用于速度調(diào)整的值。

附件提供了Arduino程序的代碼和Processing腳本。

  • 原理圖.rar
    下載
    描述:原理圖截圖
  • 源碼.rar
    下載
    描述:源碼
  • 項目詳情.pdf
    下載
    描述:項目細節(jié)

相關(guān)推薦