相關(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實驗連接線 進(jìn)口優(yōu)質(zhì)彩色單芯杜邦線(20CM)單片機(jī)
  • Arduino 8位靜態(tài)數(shù)碼管 掃描顯示器 SPI LED 數(shù)碼管 擴(kuò)展顯示模塊
  • 1602液晶顯示器 藍(lán)白屏 LCD1602液晶Arduino互動界面 機(jī)器人配件
  • Arduino LCD12864 點陣液晶擴(kuò)展板 12864液晶屏 送Arduino庫文件
  • Arduino IIC/I2C LCD1602 字符液晶顯示器 送庫文件 電子積木
  • 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長 超聲波傳感器線
  • Arduino實驗連接線 20P杜邦線 單片機(jī)
  • Arduino Yun Arduino官方原裝 Arduino Yún WiFi Linux
  • LCD2004字符液晶顯示器 2004液晶屏 Arduino力薦顯示 超越LCD1602
  • Arduino IIC LCD2004 I2C接口字符液晶顯示器 帶庫文件 電子積木
  • 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 升級 原裝
  • Arduino uno 配套 傳感器擴(kuò)展板 Arduino XBee Sensor Shield
  • 原裝進(jìn)口 Arduino M0 開發(fā)板 ATSAMD21G1 ARM 控制器 A000103
  • 原裝進(jìn)口 Arduino Mega 2560 控制器板 Arduino uno升級 A000067
  • 原裝 Arduino UNO R3 控制器 ATmega328 單片機(jī) 官方中文版
  • Arduino UNO WiFi 控制器 ATmega328 ESP8266wifi無線模塊開發(fā)板
  • Arduino四位七段數(shù)碼管 LED數(shù)碼管 4位共陽數(shù)碼管 顯示屏模塊
  • Arduino兼容 RTC時鐘傳感器 IIC時鐘模塊 DS1307時鐘模塊 RTC模塊
  • 相關(guān)文章

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

    【產(chǎn)品測評】RTC Module 制作電子時鐘

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

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

    接下來我們就開始制作電子時鐘

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

    * Carduino UNO R3 控制器 * 1個

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

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

    * RTC Module 模塊 * 1 個

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

    * 傳感器連接線 * 若干

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


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

    #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è)置初始時間和日期

      }

    }

    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;

    }

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

    程序效果

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

    總結(jié)

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

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


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

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

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

    QQ群: 271230889(討論,解惑)

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

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

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

    • 用戶評價

    暫時還沒有任何用戶評論

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

    Hi,大家好,我是小奧!

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

    需要咨詢服務(wù)請點小奧哦!

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