🤖
LinkIt 7697 BlocklyDuino 使用指南
  • LinkIt 7697 BlocklyDuino 使用指南
    • 認識 LinkIt 7697
    • 認識 BlocklyDuino
    • BlocklyDuino v2 & v3 比較
    • 安裝開發環境 (v2)
      • 安裝 Arduino 編輯器
      • 安裝驅動並連接開發板
      • 安裝 BlocklyDuino 編輯器
      • 連結兩個編輯器並上傳程式
    • 安裝開發環境 (v3)
    • BlocklyDuino 基礎操作
    • 實作範例教學
      • A01. 內建 LED 閃爍
      • A02. 外接 LED 閃爍
      • A03. 外接 LED 呼吸燈
      • A04. RGB LED 顏色變化
      • A05. 外部按鈕控制開關
      • A06. 蜂鳴器播放聲音
      • A07 .可變電阻控制電壓輸出
      • A08. 伺服馬達控制
      • A21. DHT: 溫濕度感應器
      • A22. HTU21D: 溫溼度感應器
      • A23. PMSX003: PM2.5 感測器
      • A24. HC-SR04P: 超音波測距
      • A25. ADXL345: 加速規(動態)
      • A26. ADXL345: 加速規(手勢)
      • A27. 1602/2004: 液晶顯示模組
      • A28. WS2812: RGB 彩色燈條
      • A29. MFRC522: RFID
      • B00. Grove 相關基礎知識
      • B01. Grove 光感應器
      • B02. Grove 超音波測距感應器
      • B03. Grove 溫溼度感應器
      • B04. Grove 繼電器
      • B05. Grove LED 燈條
      • B06. Grove OLED 顯示器
      • C01. 雲端控制 LED 開關
      • C02. 上傳溫溼度到雲端
      • D01. 手機透過 BLE 讀寫裝置資料
      • E01. 遙控器: 按鈕控制 LED
    • 資源鏈結
  • LinkIt 7697 - Arduino IDE 開發指南
    • 環境設定
      • 設定 Arduino IDE
      • 將 LinkIt 7697 連接到電腦
        • 在 Windows 上安裝 CP2102N 驅動程式
        • 在 macOS 上安裝 CP2102N 驅動程式
      • 執行第一個程式
    • 開發指南
      • GPIO
      • UART
      • ADC
      • EINT (外部中斷 / External Interrupt)
      • I2C
      • SPI
      • EEPROM
      • Timer
      • Flash (索引式儲存空間)
      • RTC (Real-Time Clock)
      • Software Serial
      • 使用 Wi-Fi 函式庫
      • 使用 MCS 函式庫
        • 連接到 MCS
        • 連接到 MCSLite
          • 建立可透過 MCS Lite 控制的 Beacon
        • MCS 函式庫 API 使用手冊
          • MCSDevice
          • MCSLiteDeviceMCSLiteDevice
          • MCSDataChannel 相關類別
      • 使用 BLE 低功耗藍牙
        • 藍牙信標
        • 主控裝置
        • 周邊裝置
        • 已知限制
        • LBLE API 指南
          • LBLE
          • LBLECentral
          • LBLEPeripheral
          • LBLEAdvertisementData
          • LBLEService
          • LBLECharacteristic
          • LBLEAddress
          • LBLEUuid
          • LBLEClient
      • 使用 LinkIt Remote
        • LRemote API
        • LRemote 控制元件 API
      • LinkIt 7697 腳位的初始狀態
      • LinkIt 7697 供電說明
      • 更新 Bootloader 與韌體
      • Flash 燒錄工具
      • FOTA 更新
      • LinkIt 7697 的功能限制
      • 自行編譯 Arduino Package
      • 回報問題
    • 週邊元件連接教學
      • SMD 按鈕
      • RGB 三色 LED
      • 可變電阻
      • 九軸感應器 (MPU-9250)
      • 溫度與濕度感應器 (AM2302)
      • 超音波距離感應器
      • 光感應器 (LM358)
      • 0.96 吋 OLED 顯示模組 (SSD1308Z)
      • 長條型 LED 顯示模組 (MY9221)
      • 繼電器
      • 伺服馬達 (EMAX 9g ES08A Servo)
      • 使用 74HC595 驅動七段顯示器
      • 使用 MAX7219 驅動七段顯示器
      • 使用 MAX7219 驅動 8x8 矩陣式顯示器
      • 使用 OLED 模組 (如 SH1106 / SSD1306... 等模組)
      • 使用 PCF8574 / PCF8574A 驅動 1602 LCD
    • 開發套件與擴充板
      • Grove Starter Kit
      • Robot Shield
        • OTTO97
    • 下載
    • 資源連結
    • BSP 版本更新資訊
  • LinkIt 7697 - Development Guide for Arduino IDE
    • Environment Setup
      • Setup Arduino IDE
      • Connecting LinkIt 7697 to Computer
        • Install CP2102N Driver on Windows
        • Install CP2102N Driver on macOS
      • Run Your First Sketch
    • Developer Guide
      • GPIO
      • UART
      • ADC
      • External Interrupt
      • I2C
      • SPI
      • EEPROM
      • Timer
      • Flash (Key-Pair Storage)
      • RTC (Real-Time Clock)
      • Software Serial
      • Using the Wi-Fi Library
      • Using MCS Library
        • Connecting to MCS
        • Connecting to MCSLite
          • Build a Beacon controlled by MCS Lite
        • MCS Library API Reference
          • MCSDevice
          • MCSLiteDevice
          • MCSDataChannel Classes
      • Using Bluetooth
        • Beacons
        • Central Devices
        • Peripheral Devices
        • Limitations of LBLE library
        • LBLE Library API Guide
          • LBLE
          • LBLECentral
          • LBLEPeripheral
          • LBLEAdvertisementData
          • LBLEService
          • LBLECharacteristic
          • LBLEAddress
          • LBLEUuid
          • LBLEClient
      • Using LinkIt Remote
        • LRemote
        • LRemote Control Classes
      • Initial Pin State of LinkIt 7697
      • Powering the LinkIt 7697
      • Update Bootloader and Firmware
      • Flash Uploading Tool
      • FOTA Update
      • Limitations of LinkIt 7697
      • Source Code of Arduino Package
      • Issue Report
    • Tutorial
      • SMD Buttons
      • RGB LED
      • Potentiometer
      • IMU 9DOF v2.0 (MPU-9250)
      • Temperature and Humidity Sensor Pro (AM2302)
      • Grove Ultrasonic Ranger
      • Light Sensor (LM358)
      • Grove OLED Display 0.96" (SSD1308Z)
      • LED Bar v2.0 (MY9221)
      • Relay
      • Mini Servo (EMAX 9g ES08A Servo)
      • Driving 7-segment Displays with 74HC595
      • Driving 7-segment Displays with MAX7219
      • Driving 8x8 Dot Matrices with MAX7219
      • Using OLED module (SH1106 / SSD1306... etc.)
      • Driving 1602 LCD with PCF8574 / PCF8574A
    • Kits and Shields
      • Grove Starter Kit
      • Robot Shield
        • OTTO97
    • Download
    • Resources
    • BSP Release Notes
Powered by GitBook
On this page
  • APIs
  • 範例
  1. LinkIt 7697 - Arduino IDE 開發指南
  2. 開發指南

RTC (Real-Time Clock)

PreviousFlash (索引式儲存空間)NextSoftware Serial

Last updated 3 years ago

需要 v0.9.9 以上的 BSP 版本才有支援此功能。其他更早的 BSP 版本並沒有提供 Arduino 層的 API 供開發者操作 RTC 模組 (不過開發者仍能使用 來操作 RTC)。

LinkIt 7697 內建 Real-Time Clock (RTC) 模組,透過獨立供電給 RTC 模組,它能在 MT7697 主 IC 斷電的狀態下繼續紀錄時間資訊,以達到低功耗的省電目的。原本 LinkIt 7697 設計為主 IC 與 RTC 共用相同的 3V3 輸入電源,所以若將開發板的電源關閉,則 MT7697 與 RTC 皆會因失去電源而停止作用。但透過移除電阻的 rework (下列電路圖中標示為 R2 的 0R 電阻),則能將 MT7697 與 RTC 的供電予以分開,進而達成關閉主 IC 電源時,RTC 仍能繼續運作的模式。

R2 電阻、以及 RTC 的供電輸入接口在 LinkIt 7697 開發板的位置如下:

RTC 的工作電壓範圍為 1.6V 到 3.63V,所以也可以透過 2xAA 電池來對它供電:

下列影片示範了當主 IC 斷電時 RTC 仍繼續運作的典型應用情境:

Description

此範例使用 LCD 顯示儲存於 LinkIt 7697 RTC 裡的時間,並在後方放置時鐘當作標準時間的參考。影片一開始會將開發板斷電,所以開發板的電源指示燈及 LCD 皆會熄滅,但此時 RTC 模組仍持續供電,因此時間資訊可被保存。過了幾秒後,再將開發板上電,此時開發板會從 RTC 模組將時間資訊讀回來並顯示於 LCD 上,對比後方的標準時鐘,可看見時間資訊被正確的保留下來。

APIs

使用 RTC 類別,需於 sketch 開始處加入 LRTC.h 的 header file。

#include <LRTC.h>

在呼叫 RTC API 存取時間資訊前,需先初始化 RTC 模組。建議在 Arduino 的 setup() 裡呼叫 begin() API 來進行初始化:

void setup()
{
  ...
 
  // initialize the RTC module
  LRTC.begin();
 
  ...
}

接著呼叫 get() API,便能取得存在 RTC 裡的時間資訊。當 get() 返回後,可藉由下列函式解析出 "年/月/日/時/分/秒" 等資訊:

APIs
有效值域

LRTC.year()

[2000, 2099]

LRTC.month()

[1, 12]

LRTC.day()

[1, 31]

LRTC.hour()

[0, 23]

LRTC.minute()

[0, 59]

LRTC.second()

[0, 59]

例如以下的範例:

char buffer[64];
 
// get time from the RTC module
LRTC.get();

// display the time
sprintf(buffer, "%ld/%ld/%ld %.2ld:%.2ld:%.2ld",
  LRTC.year(), LRTC.month(), LRTC.day(), LRTC.hour(), LRTC.minute(), LRTC.second());

Serial.println(buffer);
void set(int32_t year, int32_t month, int32_t day, int32_t hour, int32_t minute, int32_t second);

此 API 各參數的有效值域與上表 get() 回傳值的有效值域相同。

範例

除了讀取時間,也可以使用 set() API 設定 RTC 的時間 (例如從 取得標準時間並將之紀錄於 RTC 中):

在 File / Examples / LRTC 選單裡提供了兩個範例。為了方便理解及專注於 RTC 本身的功能,範例中的時間皆為事先定義於程式中的固定資訊,並透過按壓 USR 按鈕進行設定。若 RTC 的時間沒有經過初始化設定,則 RTC 會從 2000/1/1 00:00:00 開始計時。CheckTime 範例會將時間輸出至 Serial Monitor,而 CheckTimeLCD 範例會將時間輸出至 1602 LCD (如同上面影片裡的設置)。在執行使用 LCD 的範例之前,需先安裝 1602 LCD 的。若要獲得更多使用該 LCD 的資訊,請參考 1602 LCD 教學範例。

NTP
驅動程式
LinkIt SDK APIs