在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網>電子資料下載>電子資料>DIY RTC模塊開源

DIY RTC模塊開源

2022-07-04 | zip | 0.03 MB | 次下載 | 2積分

資料介紹

PCB圖如下:
poYBAGKy_TyABbPTAABsRyLRh6I965.png
pYYBAGKy_T6AFMdlAAA1BbSwsMg089.png

成分

DS3231S#
Analog Devices Inc./Maxim Integrated
× 1
1N4007B-G
康芯科技
× 1
C503B-RBS-CW0Z0AA2
科銳LED
× 1
106CKR063M
伊利諾伊電容器
× 1
CR2302 電池
麥克塞爾
× 1

描述

DIY RTC 模塊

?

?

?

DS3231 RTC芯片

?

該模塊的核心是 Maxim 的低成本、極其精確的 RTC 芯片 – DS3231。它管理所有計時功能,并具有一個簡單的兩線 I2C 接口,可輕松與您選擇的任何微控制器連接。

?

pYYBAGKy_UqASrsgAABKeC-Lnmw229.jpg

?

該芯片維護秒、分、小時、星期、日期、月份和年份信息對于少于 31 天的月份,月末的日期會自動調整,包括閏年的更正(直到 2100 年有效)。

時鐘以 24 小時制或 12 小時制運行,帶有 AM/PM 指示器。它還提供兩個可編程的時間警報。

該板的另一個很酷的功能是 SQW 引腳,它可以輸出 1Hz、4kHz、8kHz 或 32kHz 的漂亮方波,并且可以通過編程方式進行處理。在許多基于時間的應用程序中,這可以進一步用作由于警報條件而產生的中斷。

溫度補償晶體振蕩器(TCXO)

大多數 RTC 模塊都帶有一個用于計時的外部 32kHz 晶體。但是這些晶體的問題是外部溫度會影響它們的振蕩頻率。這種頻率變化可以忽略不計,但肯定會增加。

為避免晶體出現如此輕微的漂移,DS3231 由一個 32kHz 溫度補償晶體振蕩器 (TCXO) 驅動。它對外部溫度變化具有很強的免疫力。

?

?

?

pYYBAGKy_U2AW3MxAAAw0oLPz6c285.png

?

TCXO 封裝在 RTC 芯片內部,使整個封裝體積龐大。緊挨著集成晶體的是一個溫度傳感器

傳感器通過添加或刪除時鐘節(jié)拍來補償頻率變化,從而使計時保持在正軌上。

這就是 TCXO 提供穩(wěn)定且準確的參考時鐘并將 RTC 保持在每年 ±2 分鐘以內的原因。

?

將 DS3231 RTC 模塊連接到 Arduino UNO

讓我們將 RTC 連接到 Arduino。

連接相當簡單。首先將 VCC 引腳連接到 Arduino 上的 5V 輸出,然后將 GND 接地。

現在我們剩下用于 I2C 通信的引腳。請注意,每個 Arduino 板都有不同的 I2C 引腳,應相應地連接。在具有 R3 布局的 Arduino 板上,SDA(數據線)和 SCL(時鐘線)位于靠近 AREF 引腳的引腳接頭上。它們也被稱為 A5 (SCL) 和 A4 (SDA)。

如果您有 Mega,則針腳不同!您需要使用數字 21 (SCL) 和 20 (SDA)。請參閱下表以快速了解。

?

代碼說明:

?

草圖首先包含用于與模塊通信的wire.h 和RTClib.h 庫。然后我們創(chuàng)建一個 RTClib 庫對象并定義 daysOfTheWeek 二維字符數組來存儲天數信息。

?

在代碼的設置和循環(huán)部分,我們使用以下函數與 RTC 模塊進行交互。

begin() 函數確保 RTC 模塊已連接。

?

lostPower() 函數讀取 DS3231 的內部 I2C 寄存器以檢查芯片是否丟失了時間跟蹤。如果函數返回 true,我們就可以設置日期和時間。

?

adjust() 函數設置日期和時間。這是一個過載功能。

?

一種重載方法 DateTime(F(__DATE__), F(__TIME__)) 設置草圖編譯的日期和時間。

第二個重載方法 DateTime(YYYY, M, D, H, M, s) 使用明確的日期和時間設置 RTC。例如,要將 2017 年 1 月 27 日的 12:56 設置為: rtc.adjust(DateTime(2017, 1, 27, 12, 56, 0));

?

now() 函數返回當前日期和時間。它的返回值通常存儲在數據類型 DateTime 的變量中。

year() 函數返回當前年份。

month() 函數返回當前月份。

day() 函數返回當前日期。

dayOfTheWeek() 函數返回當前星期幾。此函數通常用作 2D 字符數組的索引,該數組存儲天數信息,如上述程序 daysOfTheWeek 中定義的

hour() 函數返回當前小時。

minute() 函數返回當前分鐘。

second() 函數返回當前秒數。

?

unixtime() 函數以秒為單位返回 unix 時間。Unix 時間是用于描述時間點的系統。它是自 00:00:00(稱為協調世界時 - 1970 年 1 月 1 日星期四)以來經過的秒數。

?

TimeSpan() 函數用于從當前時間添加/減去時間。您可以添加/減去天、小時、分鐘和秒。它也是一個重載函數。

?

now() + TimeSpan(seconds) 返回當前時間加上秒數的未來時間。

now() - TimeSpan(days,hours, minutes, seconds) 返回過去的時間。

?

Arduino 代碼 – 在 24C32 EEPROM 中讀/寫

使用 DS3231 RTC 模塊,您可以獲得 32 字節(jié)的電可擦除 ROM。即使設備的主電源中斷,其內容也不會被刪除。

?

以下程序從 24C32 EEPROM 寫入然后讀取消息。您可以使用此程序來保存設置或密碼或其他任何東西。

?

#include

?

無效設置()

{

char somedata[] = "lastminuteengineers.com"; //要寫入的數據

Wire.begin(); //初始化連接

序列號.開始(9600);

Serial.println("正在寫入內存...");

?

// 寫入 EEPROM

i2c_eeprom_write_page(0x57, 0, (byte *)somedata, sizeof(somedata));

?

延遲(100);//添加一個小延遲

Serial.println("內存寫入");

}

?

無效循環(huán)()

{

Serial.print("讀取內存:");

int地址=0;//第一個地址

?

// 訪問內存中的第一個地址

字節(jié) b = i2c_eeprom_read_byte(0x57, 0);

?

而 (b!=0)

{

Serial.print((char)b); //打印內容到串口

地址++; //增加地址

b = i2c_eeprom_read_byte(0x57, addr); //從內存中訪問一個地址

}

序列號.println(" ");

延遲(2000);

}

?

void i2c_eeprom_write_byte(int deviceaddress, unsigned int eeaddress, byte data) {

int rdata = 數據;

Wire.beginTransmission(設備地址);

Wire.write((int)(eeaddress >> 8)); // 最高位

Wire.write((int)(eeaddress & 0xFF)); // LSB

Wire.write(rdata);

Wire.endTransmission();

}

?

// 警告:address 是頁地址,6 位結束會回繞

// 另外,數據最大可以是 30 字節(jié)左右,因為 Wire 庫有一個 32 字節(jié)的緩沖區(qū)

void i2c_eeprom_write_page(int deviceaddress, unsigned int eeaddresspage, byte* data, byte length) {

Wire.beginTransmission(設備地址);

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(設備地址);

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(設備地址);

Wire.write((int)(eeaddress >> 8)); // 最高位

Wire.write((int)(eeaddress & 0xFF)); // LSB

Wire.endTransmission();

Wire.requestFrom(設備地址,長度);

詮釋 c = 0;

對于 ( c = 0; c < 長度; c++ )

if (Wire.available()) 緩沖區(qū)[c] = Wire.read();

}

?

特征:

?

兩個時間警報。

數字溫度傳感器輸出。

注冊老化修剪。

DS 3231 RTC 與 2032 電池座。

高度準確的 RTC 完全管理所有計時功能。

實時時鐘計數秒、分、小時、月日期、月、星期幾和年,閏年補償有效至 2100。

使用 PCB 上的 SMD 跳線(A0、A1、A2)為 AT24C32 配置 I2C 設備地址。

可編程方波輸出信號

用于連續(xù)計時的備用電池輸入。

低功耗操作可延長電池備用運行時間。

?

?


評論

查看更多

下載排行

本周

  1. 1匯川變頻器圖紙
  2. 0.44 MB   |  2次下載  |  免費
  3. 2英威騰變頻器圖紙
  4. 1.10 MB   |  1次下載  |  免費
  5. 351單片機pwm和spwm
  6. 0.19 MB   |  1次下載  |  免費
  7. 4EE-177:SHARC SPI從機引導
  8. 43.67KB   |  次下載  |  免費
  9. 5AN-1191:使用ADSP-BF527 ADV7182全頻率CMRR測量
  10. 187.67KB   |  次下載  |  免費
  11. 6AN136-非隔離式開關電源的PCB布局注意事項
  12. 210.18KB   |  次下載  |  免費
  13. 7AN125-將LTM2881用作隔離式5V電源
  14. 92.52KB   |  次下載  |  免費
  15. 8AN8-電池功率調節(jié)技術
  16. 691.35KB   |  次下載  |  免費

本月

  1. 1ADI高性能電源管理解決方案
  2. 2.43 MB   |  450次下載  |  免費
  3. 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
  4. 5.67 MB   |  137次下載  |  1 積分
  5. 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設計
  6. 0.10 MB   |  128次下載  |  免費
  7. 4使用單片機實現七人表決器的程序和仿真資料免費下載
  8. 2.96 MB   |  44次下載  |  免費
  9. 53314A函數發(fā)生器維修手冊
  10. 16.30 MB   |  31次下載  |  免費
  11. 6美的電磁爐維修手冊大全
  12. 1.56 MB   |  22次下載  |  5 積分
  13. 7如何正確測試電源的紋波
  14. 0.36 MB   |  12次下載  |  免費
  15. 8使用TL431設計電源
  16. 0.67 MB   |  10次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73810次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分
主站蜘蛛池模板: 欧美一欧美一区二三区性| 人人爱人人插| 日本三级2018亚洲视频| 深夜动态福利gif进出粗暴| 天天搞天天爽| 天天干天天操天天透| 日本免费黄色录像| 国产欧美亚洲精品| 天堂伊人| 很黄网站| 欧美最猛性xxxx高清| 中文字幕区| 2021久久天天躁狠狠躁夜夜| 夜夜操天天操| 日日躁夜夜躁狠狠天天| 久久人人爽爽爽人久久久| 永久黄色免费网站| 黄录像欧美片在线观看| 操操操插插插| 国产成人精品影视| 欧美夜夜夜| 在线视频免费播放| 日本在线观看一区| 亚洲29p| 作爱在线观看| 婷婷色站| 天堂国产| 噜噜色综合| 日本三级精品| 国产综合图区| 天堂中文资源在线地址| 天天插天天干| 超黄视频在线观看| 久久水蜜桃网| 美女被强插| 免费在线亚洲| 特黄一级毛片| 日本一区二区精品88| 韩国在线视频| 欧美女同网站| 日本一卡二卡3卡四卡网站精品|