相關(guān)商品

  • Arduino Leonardo 萊昂納多控制器 原裝進(jìn)口
  • 1602液晶擴(kuò)展板 v2.0 Arduino LCD 1602 Keypad Shield
  • USB接口連接線 USB轉(zhuǎn)TTL Arduino 數(shù)據(jù)下載線 USB cable for Arduino
  • Arduino實(shí)驗(yàn)連接線 進(jìn)口優(yōu)質(zhì)彩色單芯杜邦線(20CM)單片機(jī)
  • Arduino 8位靜態(tài)數(shù)碼管 掃描顯示器 SPI LED 數(shù)碼管 擴(kuò)展顯示模塊
  • 1602液晶顯示器 藍(lán)白屏 LCD1602液晶Arduino互動(dòng)界面 機(jī)器人配件
  • Arduino LCD12864 點(diǎn)陣液晶擴(kuò)展板 12864液晶屏 送Arduino庫(kù)文件
  • Arduino IIC/I2C LCD1602 字符液晶顯示器 送庫(kù)文件 電子積木
  • Arduino Serial LCD1602 字符液晶顯示器 串行液晶 電子積木
  • Arduino UNO R3 控制器 ATmega328P-PU+ATmega16U2 arduino 原裝進(jìn)口
  • 原裝進(jìn)口 Arduino Mega ADK 2560 開發(fā)板 Arduino uno R3 控制器
  • 奧松機(jī)器人 Arduino UNO R3 V5.0傳感器擴(kuò)展板 電子積木 正品保障 傳感器套件專配 單片機(jī)開發(fā)
  • 奧松機(jī)器人 傳感器連接線 防插反接口 杜邦線  Arduino 正品保證
  • Arduino 通用傳感器連接線 4P杜邦連接線 25cm長(zhǎng) 超聲波傳感器線
  • Arduino實(shí)驗(yàn)連接線 20P杜邦線 單片機(jī)
  • Arduino Yun Arduino官方原裝 Arduino Yún WiFi Linux
  • LCD2004字符液晶顯示器 2004液晶屏 Arduino力薦顯示 超越LCD1602
  • Arduino IIC LCD2004 I2C接口字符液晶顯示器 帶庫(kù)文件 電子積木
  • Arduino Mini 05 Sparkfun原裝進(jìn)口 ATmega328 控制器
  • Arduino UNO R3 SMD 控制器 ATmega16U2 開發(fā)版 單片機(jī) sparkfun原裝進(jìn)口
  • Starduino UNO R3 控制器 ATmega328P-PU+ATmega32U2 (直插) 兼容Arduino
  • Arduino M0 Pro 電路板 ATSAMD21G18 Arduino UNO 升級(jí) 原裝
  • Arduino uno 配套 傳感器擴(kuò)展板 Arduino XBee Sensor Shield
  • 原裝進(jìn)口 Arduino M0 開發(fā)板 ATSAMD21G1 ARM 控制器 A000103
  • 原裝進(jìn)口 Arduino Mega 2560 控制器板 Arduino uno升級(jí) A000067
  • 原裝 Arduino UNO R3 控制器 ATmega328 單片機(jī) 官方中文版
  • Arduino UNO WiFi 控制器 ATmega328 ESP8266wifi無(wú)線模塊開發(fā)板
  • Arduino四位七段數(shù)碼管 LED數(shù)碼管 4位共陽(yáng)數(shù)碼管 顯示屏模塊
  • Arduino兼容 RTC時(shí)鐘傳感器 IIC時(shí)鐘模塊 DS1307時(shí)鐘模塊 RTC模塊
  • 相關(guān)文章

    當(dāng)前位置: 首頁(yè) > 產(chǎn)品評(píng)測(cè) > 【產(chǎn)品測(cè)評(píng)】RTC Module 制作電子時(shí)鐘

    【產(chǎn)品測(cè)評(píng)】RTC Module 制作電子時(shí)鐘

    編輯:neil2016-10-09 瀏覽次數(shù):1405

    Arduino 可以不連接其他硬件使用時(shí)鐘和日期功能,這是使用了 Arduino 板子自帶的晶振,再配合上Arduino的Time函數(shù)庫(kù),這可以精確到每天只有幾秒的誤差。但是這樣做有一個(gè)弊端,就是當(dāng)你斷開了Arduino的電源時(shí),因?yàn)锳rduino并沒(méi)有電池,所以無(wú)法將時(shí)間保存起來(lái),每次執(zhí)行時(shí),都會(huì)從程序設(shè)定的時(shí)間開始,所以為了時(shí)間的準(zhǔn)確,必須每次自行設(shè)定時(shí)間。RTC時(shí)鐘模塊可以解決這個(gè)問(wèn)題, 它使用DS1307作為時(shí)鐘芯片, 時(shí)鐘頻率為32.768Khz,IIC接口設(shè)計(jì),節(jié)約Arduino控制器引腳,只需要占用兩個(gè)控制器的數(shù)據(jù)引腳就可以控制,RTC Module可安裝一個(gè)3V CR1220紐扣電池,當(dāng)Arduino斷電后,RTC模塊還保持供電,可以繼續(xù)記錄時(shí)間,這樣就不需要每次校對(duì)時(shí)間。

    接下來(lái)我們就開始制作電子時(shí)鐘

    首先,準(zhǔn)備要使用到的硬件

    * Carduino UNO R3 控制器 * 1個(gè)

    * 傳感器擴(kuò)展板 V5.0 * 1個(gè)

    * USB 數(shù)據(jù)下載線 * 1 條

    * RTC Module 模塊 * 1 個(gè)

    * 四位七段數(shù)碼管模塊 * 1 個(gè)

    * 傳感器連接線 * 若干

    如下圖所示,連接所有的硬件設(shè)備,傳感器與傳感器擴(kuò)展板V5.0連接非常方便,只需要使用杜邦線連接相應(yīng)引腳即可,傳感器擴(kuò)展板使用了防呆設(shè)計(jì),信號(hào)S、電源正、電源負(fù),分別使用黃色、紅色、黑色排針區(qū)分開。


    硬件連接無(wú)誤情況下,我們就可以給控制器上傳程序,程序如下所示,程序中會(huì)用到函數(shù)庫(kù),是你在編譯和上傳程序之前必須要安裝的,否則會(huì)出現(xiàn)編譯出錯(cuò)的情況,程序源文件及程序代碼可以從文章底部的鏈接中下載。

    #include <TimerOne.h>

    #include "TM1637.h"

    #include <Wire.h>

    #include "RTClib.h"

    #define ON 1

    #define OFF 0

    #if defined(ARDUINO_ARCH_SAMD)

    #define Serial SerialUSB

    #endif

     

    RTC_DS1307 rtc;

     

    int8_t TimeDisp[] = {0x00,0x00,0x00,0x00};

    unsigned char ClockPoint = 1;

    unsigned char Update;

    unsigned char minute = 0;

    unsigned char hour = 12;

    int stem,val;

     

    #define CLK 5

    #define DIO 4

    TM1637 tm1637(CLK,DIO);

     

    void setup()

    {

      tm1637.set();

      tm1637.init();

      Timer1.initialize(500000);

      Timer1.attachInterrupt(TimingISR);

      #ifndef ESP8266

      while (!Serial);

      #endif

      Serial.begin(57600);

      if (! rtc.begin()) {

        Serial.println("Couldn't find RTC");

        while (1);

      }

      if (! rtc.isrunning()) {

        Serial.println("RTC is running!");

         rtc.adjust(DateTime(2016, 7, 27, 11,16, 00)); // 設(shè)置初始時(shí)間和日期

      }

    }

    void loop()

    {

      DateTime now = rtc.now();  

      if(Update == ON)

      {  

        TimeUpdate();

        tm1637.display(TimeDisp);

      }

        stem = now.hour();

        val = now.minute();

    }

     

    void TimingISR()

    {

        ClockPoint = (~ClockPoint) & 0x01;

        Update = ON;

    }

    void TimeUpdate(void)

    {

      if(ClockPoint)tm1637.point(POINT_ON);

      else tm1637.point(POINT_OFF);

      TimeDisp[0] = stem/ 10;

      TimeDisp[1] = stem % 10;

      TimeDisp[2] = val / 10;

      TimeDisp[3] = val % 10;

    }

    注意:通過(guò)修改時(shí)間和日期可以設(shè)置模塊的初始狀態(tài),如果給模塊安裝上3V電池,模塊在斷電后就會(huì)繼續(xù)計(jì)時(shí),下次再通電使用時(shí),顯示的會(huì)是正確的系統(tǒng)時(shí)間,無(wú)需再次初始化。

    程序效果

    如圖所示,為程序上傳后的效果,數(shù)碼管會(huì)顯示當(dāng)前時(shí)間,圖中所示時(shí)間為11時(shí)16分

    總結(jié)

    雖然Arduino是有時(shí)鐘功能的,但是斷電不能保存,RTC模塊完美解決了這個(gè)問(wèn)題,本實(shí)驗(yàn)中,使用了4位數(shù)碼管顯示,所以不能將現(xiàn)在是多少秒,或者現(xiàn)在的日期顯示出來(lái),我們可以換用 SPI 8位數(shù)碼管顯示模塊,再制作一個(gè)精美的外殼,就可以制作屬于自己的電子時(shí)鐘了,快來(lái)試一下吧。、

    注意此程序需要使用到庫(kù)文件,大家可以點(diǎn)擊此處,進(jìn)入奧松機(jī)器人官方技術(shù)論壇進(jìn)行下載。


    ----------------------------------------------------------------------------------------------------------------

    奧松機(jī)器人官網(wǎng):www.robotbase.cn

    微信號(hào):搜索公眾號(hào)“奧松機(jī)器人”

    QQ群: 271230889(討論,解惑)

    微博:@奧松機(jī)器人基地

    ----------------------------------------------------------------------------------------------------------------

    溫馨提示:予人玫瑰,手留余香;如果你喜歡這篇文章,不妨轉(zhuǎn)發(fā)推薦給你身邊的朋友!

    • 用戶評(píng)價(jià)

    暫時(shí)還沒(méi)有任何用戶評(píng)論

    總計(jì) 0 個(gè)記錄,共 1 頁(yè)。 第一頁(yè) 上一頁(yè) 下一頁(yè) 最末頁(yè)
    用戶名: 匿名用戶
    E-mail:
    評(píng)價(jià)等級(jí):
    評(píng)論內(nèi)容:
    驗(yàn)證碼:
    captcha

    Hi,大家好,我是小奧!

    歡迎來(lái)到奧松機(jī)器人的世界!

    需要咨詢服務(wù)請(qǐng)點(diǎn)小奧哦!

    • 銷售咨詢: 銷售咨詢
    • 銷售咨詢: 銷售咨詢
    • 技術(shù)支持: 技術(shù)支持
    • 咨詢電話:
      0451-86628691
    Top