資料介紹


成分
|
DS3231S#
|
× 1 |
|
1N4007B-G
康芯科技
|
× 1 |
|
C503B-RBS-CW0Z0AA2
科銳LED
|
× 1 |
|
106CKR063M
伊利諾伊電容器
|
× 1 |
|
CR2302 電池
麥克塞爾
|
× 1 |
描述
DIY RTC 模塊
?
?
?
DS3231 RTC芯片
?
該模塊的核心是 Maxim 的低成本、極其精確的 RTC 芯片 – DS3231。它管理所有計時功能,并具有一個簡單的兩線 I2C 接口,可輕松與您選擇的任何微控制器連接。
?

?
該芯片維護秒、分、小時、星期、日期、月份和年份信息。對于少于 31 天的月份,月末的日期會自動調(diào)整,包括閏年的更正(直到 2100 年有效)。
時鐘以 24 小時制或 12 小時制運行,帶有 AM/PM 指示器。它還提供兩個可編程的時間警報。
該板的另一個很酷的功能是 SQW 引腳,它可以輸出 1Hz、4kHz、8kHz 或 32kHz 的漂亮方波,并且可以通過編程方式進行處理。在許多基于時間的應(yīng)用程序中,這可以進一步用作由于警報條件而產(chǎn)生的中斷。
溫度補償晶體振蕩器(TCXO)
大多數(shù) RTC 模塊都帶有一個用于計時的外部 32kHz 晶體。但是這些晶體的問題是外部溫度會影響它們的振蕩頻率。這種頻率變化可以忽略不計,但肯定會增加。
為避免晶體出現(xiàn)如此輕微的漂移,DS3231 由一個 32kHz 溫度補償晶體振蕩器 (TCXO) 驅(qū)動。它對外部溫度變化具有很強的免疫力。
?
?
?

?
TCXO 封裝在 RTC 芯片內(nèi)部,使整個封裝體積龐大。緊挨著集成晶體的是一個溫度傳感器。
該傳感器通過添加或刪除時鐘節(jié)拍來補償頻率變化,從而使計時保持在正軌上。
這就是 TCXO 提供穩(wěn)定且準(zhǔn)確的參考時鐘并將 RTC 保持在每年 ±2 分鐘以內(nèi)的原因。
?
將 DS3231 RTC 模塊連接到 Arduino UNO
讓我們將 RTC 連接到 Arduino。
連接相當(dāng)簡單。首先將 VCC 引腳連接到 Arduino 上的 5V 輸出,然后將 GND 接地。
現(xiàn)在我們剩下用于 I2C 通信的引腳。請注意,每個 Arduino 板都有不同的 I2C 引腳,應(yīng)相應(yīng)地連接。在具有 R3 布局的 Arduino 板上,SDA(數(shù)據(jù)線)和 SCL(時鐘線)位于靠近 AREF 引腳的引腳接頭上。它們也被稱為 A5 (SCL) 和 A4 (SDA)。
如果您有 Mega,則針腳不同!您需要使用數(shù)字 21 (SCL) 和 20 (SDA)。請參閱下表以快速了解。
?
代碼說明:
?
草圖首先包含用于與模塊通信的wire.h 和RTClib.h 庫。然后我們創(chuàng)建一個 RTClib 庫對象并定義 daysOfTheWeek 二維字符數(shù)組來存儲天數(shù)信息。
?
在代碼的設(shè)置和循環(huán)部分,我們使用以下函數(shù)與 RTC 模塊進行交互。
begin() 函數(shù)確保 RTC 模塊已連接。
?
lostPower() 函數(shù)讀取 DS3231 的內(nèi)部 I2C 寄存器以檢查芯片是否丟失了時間跟蹤。如果函數(shù)返回 true,我們就可以設(shè)置日期和時間。
?
adjust() 函數(shù)設(shè)置日期和時間。這是一個過載功能。
?
一種重載方法 DateTime(F(__DATE__), F(__TIME__)) 設(shè)置草圖編譯的日期和時間。
第二個重載方法 DateTime(YYYY, M, D, H, M, s) 使用明確的日期和時間設(shè)置 RTC。例如,要將 2017 年 1 月 27 日的 12:56 設(shè)置為: rtc.adjust(DateTime(2017, 1, 27, 12, 56, 0));
?
now() 函數(shù)返回當(dāng)前日期和時間。它的返回值通常存儲在數(shù)據(jù)類型 DateTime 的變量中。
year() 函數(shù)返回當(dāng)前年份。
month() 函數(shù)返回當(dāng)前月份。
day() 函數(shù)返回當(dāng)前日期。
dayOfTheWeek() 函數(shù)返回當(dāng)前星期幾。此函數(shù)通常用作 2D 字符數(shù)組的索引,該數(shù)組存儲天數(shù)信息,如上述程序 daysOfTheWeek 中定義的
hour() 函數(shù)返回當(dāng)前小時。
minute() 函數(shù)返回當(dāng)前分鐘。
second() 函數(shù)返回當(dāng)前秒數(shù)。
?
unixtime() 函數(shù)以秒為單位返回 unix 時間。Unix 時間是用于描述時間點的系統(tǒng)。它是自 00:00:00(稱為協(xié)調(diào)世界時 - 1970 年 1 月 1 日星期四)以來經(jīng)過的秒數(shù)。
?
TimeSpan() 函數(shù)用于從當(dāng)前時間添加/減去時間。您可以添加/減去天、小時、分鐘和秒。它也是一個重載函數(shù)。
?
now() + TimeSpan(seconds) 返回當(dāng)前時間加上秒數(shù)的未來時間。
now() - TimeSpan(days,hours, minutes, seconds) 返回過去的時間。
?
Arduino 代碼 – 在 24C32 EEPROM 中讀/寫
使用 DS3231 RTC 模塊,您可以獲得 32 字節(jié)的電可擦除 ROM。即使設(shè)備的主電源中斷,其內(nèi)容也不會被刪除。
?
以下程序從 24C32 EEPROM 寫入然后讀取消息。您可以使用此程序來保存設(shè)置或密碼或其他任何東西。
?
#include
?
無效設(shè)置()
{
char somedata[] = "lastminuteengineers.com"; //要寫入的數(shù)據(jù)
Wire.begin(); //初始化連接
序列號.開始(9600);
Serial.println("正在寫入內(nèi)存...");
?
// 寫入 EEPROM
i2c_eeprom_write_page(0x57, 0, (byte *)somedata, sizeof(somedata));
?
延遲(100);//添加一個小延遲
Serial.println("內(nèi)存寫入");
}
?
無效循環(huán)()
{
Serial.print("讀取內(nèi)存:");
int地址=0;//第一個地址
?
// 訪問內(nèi)存中的第一個地址
字節(jié) b = i2c_eeprom_read_byte(0x57, 0);
?
而 (b!=0)
{
Serial.print((char)b); //打印內(nèi)容到串口
地址++; //增加地址
b = i2c_eeprom_read_byte(0x57, addr); //從內(nèi)存中訪問一個地址
}
序列號.println(" ");
延遲(2000);
}
?
void i2c_eeprom_write_byte(int deviceaddress, unsigned int eeaddress, byte data) {
int rdata = 數(shù)據(jù);
Wire.beginTransmission(設(shè)備地址);
Wire.write((int)(eeaddress >> 8)); // 最高位
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.write(rdata);
Wire.endTransmission();
}
?
// 警告:address 是頁地址,6 位結(jié)束會回繞
// 另外,數(shù)據(jù)最大可以是 30 字節(jié)左右,因為 Wire 庫有一個 32 字節(jié)的緩沖區(qū)
void i2c_eeprom_write_page(int deviceaddress, unsigned int eeaddresspage, byte* data, byte length) {
Wire.beginTransmission(設(shè)備地址);
Wire.write((int)(eeaddresspage >> 8)); // 最高位
Wire.write((int)(eeaddresspage & 0xFF)); // LSB
字節(jié) c;
對于 ( c = 0; c < 長度; c++)
Wire.write(data[c]);
Wire.endTransmission();
}
?
byte i2c_eeprom_read_byte(int deviceaddress, unsigned int eeaddress) {
字節(jié) rdata = 0xFF;
Wire.beginTransmission(設(shè)備地址);
Wire.write((int)(eeaddress >> 8)); // 最高位
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(deviceaddress,1);
if (Wire.available()) rdata = Wire.read();
返回rdata;
}
?
// 也許我們一次不能讀取超過 30 或 32 個字節(jié)!
void i2c_eeprom_read_buffer(int deviceaddress, unsigned int eeaddress, byte *buffer, int length) {
Wire.beginTransmission(設(shè)備地址);
Wire.write((int)(eeaddress >> 8)); // 最高位
Wire.write((int)(eeaddress & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(設(shè)備地址,長度);
詮釋 c = 0;
對于 ( c = 0; c < 長度; c++ )
if (Wire.available()) 緩沖區(qū)[c] = Wire.read();
}
?
特征:
?
兩個時間警報。
數(shù)字溫度傳感器輸出。
注冊老化修剪。
DS 3231 RTC 與 2032 電池座。
高度準(zhǔn)確的 RTC 完全管理所有計時功能。
實時時鐘計數(shù)秒、分、小時、月日期、月、星期幾和年,閏年補償有效至 2100。
使用 PCB 上的 SMD 跳線(A0、A1、A2)為 AT24C32 配置 I2C 設(shè)備地址。
可編程方波輸出信號。
用于連續(xù)計時的備用電池輸入。
低功耗操作可延長電池備用運行時間。
?
?
- 愛普生實時時鐘模塊RTC
- RX4901CE (RTC模塊)
- RTC第二個功能和應(yīng)用程序
- ESP32 Feather RTC與SD開源分享
- 4位RTC時鐘開源分享
- DIY空中足球開源
- DIY PCB BassWasp HAT 2.0開源分享
- DIY的XT IDE開源分享
- Tiny Cairoduino開源DIY套件
- DIY PCB徽章開源項目
- DIY水位傳感器開源
- DIY電源DC PCB開源
- DIY LED矩陣6*24開源分享
- STM32內(nèi)部RTC的學(xué)習(xí)筆記資料說明 8次下載
- STM32單片機RTC模塊的分析 36次下載
- 愛普生RTC實時時鐘模塊解析與選型指南 62次閱讀
- 【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(14)RTC 模塊介紹 2.2k次閱讀
- 什么是RTC模塊? 1.5k次閱讀
- 什么是RTC?RTC的基礎(chǔ)知識 4.4w次閱讀
- 基于全志A133處理器DIY的平板電腦 8.7k次閱讀
- 一文看懂RTC實時時鐘 5.9k次閱讀
- RTC時鐘源和RTC寄存器的基本知識 8.7k次閱讀
- RTC時鐘講解(一) 1.1w次閱讀
- 如何利用Arduino UNO設(shè)計無RTC模塊簡單時鐘 5.7k次閱讀
- RTC模塊的三個具體應(yīng)用 5.3k次閱讀
- 微雪電子RTC 時鐘模塊 DS1302簡介 4.2k次閱讀
- 微雪電子RTC時鐘模塊PCF8563 PCF8563T介紹 8.7k次閱讀
- dfrobotI2C DS1307 RTC實時時鐘模塊介紹 5.8k次閱讀
- STM32單片機RTC時鐘的使用方法及步驟 3.6w次閱讀
- 電能表RTC模塊的補償校準(zhǔn)裝置的原理及設(shè)計 2.4k次閱讀
下載排行
本周
- 1矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費
- 2HT81696H 內(nèi)置升壓的30W立體聲D類音頻功放數(shù)據(jù)手冊
- 1.21 MB | 1次下載 | 免費
- 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數(shù)據(jù)手冊
- 0.87 MB | 次下載 | 免費
- 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
- 88.16 KB | 次下載 | 免費
- 5矽力杰 Silergy SY7065 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 910.67 KB | 次下載 | 免費
- 6矽力杰 Silergy SY7066 同步升壓轉(zhuǎn)換器 規(guī)格書 Datasheet 佰祥電子
- 989.14 KB | 次下載 | 免費
- 7WD6208A產(chǎn)品規(guī)格書
- 631.24 KB | 次下載 | 免費
- 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數(shù)據(jù)手冊
- 1.64 MB | 次下載 | 2 積分
本月
- 1EMC PCB設(shè)計總結(jié)
- 0.33 MB | 12次下載 | 免費
- 2PD取電芯片 ECP5702規(guī)格書
- 0.88 MB | 5次下載 | 免費
- 3矽力杰 Silergy SY7215A 同步升壓調(diào)節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費
- 4氮化鎵GaN FET/GaN HEMT 功率驅(qū)動電路選型表
- 0.10 MB | 3次下載 | 免費
- 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數(shù)據(jù)手冊
- 0.88 MB | 3次下載 | 免費
- 6SY50655 用于高輸入電壓應(yīng)用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
- 1.01 MB | 3次下載 | 免費
- 7怎么為半導(dǎo)體測試儀選擇精密放大器
- 0.65 MB | 2次下載 | 免費
- 8SY52341 次級側(cè)同步整流英文手冊
- 0.94 MB | 2次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191469次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論