日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【DS3231 RTC实时时钟模块与Arduino接口构建数字时钟】

發布時間:2023/12/10 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【DS3231 RTC实时时钟模块与Arduino接口构建数字时钟】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

DS3231 RTC實時時鐘模塊與Arduino接口構建數字時鐘

    • 前言
    • DS3231 RTC模塊介紹
    • DS3231 模塊引腳排列
    • DS3231 模塊組成
    • 關于 DS3231 的常見問題
    • DS3231 模塊原理圖
    • 對 DS3231 進行編程和設置時間
    • DS3231中設置時間的代碼
    • 使用 DS3231 和 LCD 制作一個 DIY Arduino 數字時鐘
    • 在 LCD 上顯示時間的代碼
    • 完整代碼

前言

在當今世界,時間就是一切,而對于特定的電子產品,時間至關重要;就像我們人類一樣,他們也需要一種方法來記錄時間。那么電子產品是如何做到的呢?答案是 DS3231,一種實時時鐘,通常稱為 RTC,是一種內置于集成電路或 IC 中的計時設備。它用于許多對時間要求嚴格的應用程序和設備,例如服務器、GPS 和數據記錄器。讓我們看看是什么讓它滴答作響。

DS3231 RTC模塊介紹

DS3231 是一款 I2C 實時時鐘 (RTC),具有內置溫度補償晶體振蕩器 (TCXO) 和低成本且異常精確的晶體。當模塊的電源中斷時,設備有電池輸入并保持精確的時間。該器件的長期精度因包含晶體振蕩器而得到提高。RTC 跟蹤秒、分鐘、小時、天、日期、月和年。對于少于 31 天的月份,月末日期會自動修改,包括閏年更正。時鐘具有 AM/PM 指示,可在 24 小時或 12 小時模式下工作。包括兩個可編程的時間警報,以及一個可編程的方波輸出。I2C 雙向總線用于串行傳輸地址和數據。

DS3231 模塊引腳排列

DS3231 模塊有 6 個引腳,用于從模塊獲取數據并為電路板供電。DS3231的引腳排列如下:
當我們使用示波器探測 DS3231 模塊的 32k 引腳時,我們會從 IC 的內部振蕩器獲得 32kHz 信號。

DS3231 模塊組成

典型 DS3231 RTC 模塊板的關鍵組件是 DS3231 IC 和 AT24C32 EEPROM IC,用于存儲時間和日期數據。其他組件包括電源開啟 LED、一些電阻器、電容器、電池座和用于連接到微控制器的引腳。
當模塊的主電源停止時,DS3231 包含電池輸入并保持準確的時間。內置電源檢測電路不斷檢查 VCC 的狀態,以識別斷電并自動切換到備用電源。因此,即使斷電,您的 MCU 仍然能夠保持時間跟蹤。DS3231 RTC 模塊上有一個 CR2032 電池座。用于 20 毫米 3V 鋰紐扣電池的電池座位于電路板的底部。任何 CR2032 電池都可以使用。

充電能力:

該模塊的設計方式是,當外部供電時,它可以為安裝在模塊上的電池充電。但是使用不可充電的 CR2032 電池時必須小心,因為模塊也會為電池充電。CR2032 是不可充電的 3V 電池,但可充電電池可充電至 4.2V。要阻止模塊對 CR2032 不可充電電池充電,應拆焊 U4(220R) 電阻或 D1 (1N4148) 二極管。

關于 DS3231 的常見問題

問:DS1307 和 DS3231 有什么區別?

DS3231 和 DS1370 之間最顯著的區別在于計時精度。為了計時,DS1307 有一個外部 32kHz 晶體振蕩器,而 DS3231 有一個內部振蕩器。

問:DS3231 的精度如何?

DS3231 和 DS3234 中的溫度補償晶體振蕩器 (TCXO) 符合要求,在 0°C 至 +40°C 的溫度范圍內精度高達 ±2 ppm。

問:DS3231 使用什么電池?

DS3231 使用 CR2032 可充電電池,但如果要使用不可充電電池,則需要對模塊進行小幅修改。

DS3231 模塊原理圖

對 DS3231 進行編程和設置時間

在 DS3231 模塊中設置時間相當簡單。您需要做的就是在以下配置中將其連接到 Arduino。

完成上述連接后,您需要將 Arduino UNO 連接到您的 PC,打開 Arduino IDE,并安裝 Arduino DS3231 Time Set Library。打開 Arduino IDE 并從菜單欄中選擇 Library Manager。現在查找RTCLib和 DS3231 并獲取最新版本,如下圖所示。

DS3231中設置時間的代碼

代碼非常簡單。它將設置時間,然后將其顯示在串行監視器上。

rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));

rtc 對象在這一行中根據您計算機上的時間設置時間。它將更改您系統的當前時鐘時間。

rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));

您可以通過按以下順序將日期時間值傳遞給函數來手動設置此行中的時間:年、月、日、小時、分鐘和秒。我們將在下面的代碼中設置系統的時間。結果,我們注釋掉了這一行。

#include <RTClib.h> #include <Wire.h> RTC_DS3231 rtc; char t[32]; void setup() {Serial.begin(9600);Wire.begin();rtc.begin();rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));//rtc.adjust(DateTime(2019, 1, 21, 5, 0, 0)); } void loop() {DateTime now = rtc.now();sprintf(t, "%02d:%02d:%02d %02d/%02d/%02d", now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year()); Serial.print(F("Date/Time: "));Serial.println(t);delay(1000); }

使用 DS3231 和 LCD 制作一個 DIY Arduino 數字時鐘

Arduino數字時鐘電路圖 :
將 RTC 模塊的 SCL 連接到 Arduino A5
將 RTC 模塊的 SDA 連接到 Arduino A4
將 VCC 連接到 5v,將 GND 連接到 GND
將 LCD 的 RS 連接到 Arduino 的引腳 7
將 LCD 的 E 連接到 Arduino 的引腳 6
將 LCD 的 D7 連接到 Arduino 的引腳 2
將 LCD 的 D6 連接到 Arduino 的引腳 3
將 LCD 的 D5 連接到 Arduino 的引腳 4
將 LCD 的 D4 連接到 Arduino 的引腳 5
將 VSS、K、RW、D0、D1、D2、D3 連接到 GND
將 VDD 和 A 連接到 5v
將 VO 連接到電位器輸出引腳(用于控制文本的對比度)

在 LCD 上顯示時間的代碼

我們在代碼中包含以下頭文件,Wire.h 用于使用 I2C 與模塊通信,LiquidCrystal.h用于在 LCD 顯示器上顯示時間,RTClib.h用于設置顯示器時間并對其進行格式化。

#include <Wire.h> #include <LiquidCrystal.h> #include <RTClib.h>

代碼中的這一行指定 LCD 的哪個引腳連接到 Arduino 的哪個引腳。

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (rs, e, d4, d5, d6, d7)

如果項目因連接中斷而啟動,代碼將在串行監視器中打印 RTC Module not Present。

if (! rtc.begin()){Serial.println(" RTC Module not Present");while (1);}

如果 RTC 掉電,模塊中的時間出錯,代碼會自動設置模塊中的時間,并從計算機時鐘中獲取時間。因此,請確保在設置時間時將 PC 上的時鐘設置在正確的時間。

if (rtc.lostPower()){Serial.println("RTC power failure, reset the time!");rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));}

這部分代碼將 LCD 上的光標設置為 0,并以 Date/Month/Year 格式打印日期。

void displayDate(){lcd.setCursor(0,0);lcd.print("Date:");lcd.print(now.day());lcd.print('/');lcd.print(now.month());lcd.print('/');lcd.print(now.year());}

這部分代碼將光標設置為 1,并以 Hour:Minute:Second 格式打印時間。

void displayTime(){lcd.setCursor(0,1);lcd.print("Time:");lcd.print(now.hour());lcd.print(':');lcd.print(now.minute());lcd.print(':');lcd.print(now.second());lcd.print(" ");}

上傳代碼后,您將能夠在 LCD 屏幕上看到日期和時間。

完整代碼

#include <Wire.h>#include <LiquidCrystal.h>#include <RTClib.h>DateTime now;RTC_DS3231 rtc;LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // (rs, e, d4, d5, d6, d7)void displayDate(void);void displayTime(void); void setup (){Serial.begin(9600);lcd.begin(16,2);if (! rtc.begin()) {Serial.println(" RTC Module not Present");while (1);}if (rtc.lostPower()) {Serial.println("RTC power failure, reset the time!");rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));}}void loop () {now = rtc.now();displayDate();displayTime();}void displayDate(){lcd.setCursor(0,0);lcd.print("Date:");lcd.print(now.day());lcd.print('/');lcd.print(now.month());lcd.print('/');lcd.print(now.year());}void displayTime(){lcd.setCursor(0,1);lcd.print("Time:");lcd.print(now.hour());lcd.print(':');lcd.print(now.minute());lcd.print(':');lcd.print(now.second());lcd.print(" ");} To set the Time#include <RTClib.h>#include <Wire.h>RTC_DS3231 rtc;char t[32];void setup() {Serial.begin(9600);Wire.begin();rtc.begin();rtc.adjust(DateTime(F(__DATE__),F(__TIME__)));//rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0)); }void loop(){DateTime now = rtc.now();sprintf(t, "%02d:%02d:%02d %02d/%02d/%02d", now.hour(), now.minute(), now.second(), now.day(), now.month(), now.year()); Serial.print(F("Date/Time: "));Serial.println(t);delay(1000);}

總結

以上是生活随笔為你收集整理的【DS3231 RTC实时时钟模块与Arduino接口构建数字时钟】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品一区二区成人免费视频 | 国产精品久久久久一区二区三区 | 日本一级黄色录像 | 日韩欧美综合视频 | 欧美黑人猛交 | 人妻少妇偷人精品无码 | 人妻少妇精品无码专区二区 | 欧美日韩国产在线观看 | 欧美疯狂做受 | 99ri在线观看 | 中文字幕欧美在线观看 | 四虎库| 超碰国产在线 | 99精品国产99久久久久久97 | 在线观看av网站 | 一区二区三区四区高清视频 | 男人天堂久久 | 国产美女一区 | 影音先锋成人网 | 国产chinese男男网站大全 | 超碰97在线资源站 | 91在线观看免费 | 蜜臀99久久精品久久久久久软件 | 奇米影视77777 | 亚洲国产专区 | 国产网站免费在线观看 | 麻豆changesxxx国产 | 综合国产一区 | 伊人手机在线视频 | 99国产精品国产精品九九 | 日韩精品无码一区二区三区 | 久久草视频在线 | 久久久天堂国产精品女人 | 亚洲视频在线播放 | 91偷拍精品一区二区三区 | 亚洲人成人网 | 一区二区三区免费视频观看 | 亚洲图片自拍偷拍区 | avtt在线观看 | 99久久久国产精品免费蜜臀 | 亚洲在线色 | 成av人在线| 一级黄色大片免费观看 | www.色哟哟 | 91美女片黄 | 久草资源在线 | 老色批av| 日本一区二区三区精品 | 亚洲蜜桃在线 | 性欧美videossex精品 | 麻豆成人久久精品一区二区三区 | 日本少妇作爱视频 | 深夜国产视频 | 色综合啪啪 | 黄色成人免费网站 | 在线观看日本中文字幕 | 国产精品日韩无码 | 日本三级一区二区 | 伊人色综合久久天天 | 嫩草网站入口 | 国产一级一片免费播放放a 丁香六月色 | 每日更新在线观看av | 午夜精品99| 成人a网站 | 国产做爰免费观看 | 久久一级免费视频 | 爱情岛亚洲首页论坛 | 美女视频黄色免费 | 制服丝袜一区 | 成人一区二区三区 | 国产美女一区二区三区 | 日本色片网站 | 日本精品在线播放 | 少妇又紧又爽视频 | 97在线视频观看 | 亚洲第一成年网 | 日本香蕉视频 | 轻轻色在线观看 | 色婷婷香蕉在线一区二区 | 久久久久成人精品无码中文字幕 | 狠狠伊人| 亚洲成年人网 | 午夜精品网站 | 伊人青青草视频 | 欧美高清视频一区 | 亚洲av无码国产综合专区 | 一级免费看片 | 国产毛片一区二区三区va在线 | 在线看免费 | 麻豆影视在线播放 | 亚洲熟妇无码另类久久久 | 99热99热 | 欧美一区二区三区视频在线 | 四虎视频国产精品免费入口 | 欧美午夜激情影院 | 在线视频在线观看 | 日韩欧美一二三 | 玩偶游戏在线观看免费 | 日韩久久久精品 |