一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Arduino實(shí)時(shí)時(shí)鐘的制作圖解

454398 ? 來(lái)源:wv ? 2019-10-24 17:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

步驟1:關(guān)于DS 1307

Arduino實(shí)時(shí)時(shí)鐘的制作圖解

簡(jiǎn)介:

除了arduino,DS1307集成電路是該項(xiàng)目的核心因?yàn)樗洚?dāng)計(jì)時(shí)器,并告知arduino什么時(shí)候應(yīng)該將設(shè)備保持打開(kāi)狀態(tài)。 DS 1307專(zhuān)為計(jì)時(shí)而設(shè)計(jì),時(shí)間相當(dāng)準(zhǔn)確,每個(gè)月大約有1分鐘的錯(cuò)誤(時(shí)間漂移)。如果您想消除這種情況,您可以選擇DS3234,它的時(shí)間漂移僅為每年1分鐘。對(duì)于我們的特定應(yīng)用,我們可以選擇DS1307本身。

DS1307的優(yōu)點(diǎn)在于它具有備用的紐扣電池。該紐扣電池通常為CR2032。這種電池對(duì)于IC來(lái)說(shuō)綽綽有余,因?yàn)镈S1307的功耗非常低,因此該電池的備用電池壽命至少約為9年。

因此,現(xiàn)在討論這些規(guī)格讓我們談?wù)劷涣鳌?DS 1307使用I2C通信與arduino通信。只需將芯片以十進(jìn)制形式發(fā)送數(shù)據(jù),使得每個(gè)十進(jìn)制形式都是4位二進(jìn)制數(shù)據(jù),也稱(chēng)為二進(jìn)制編碼十進(jìn)制系統(tǒng)。

重要引腳:

5V引腳: :當(dāng)該引腳為高電平時(shí),ds1307發(fā)送數(shù)據(jù),為低電平時(shí),它在備份按鈕單元上運(yùn)行。

GND: 這是模塊的接地引腳。電池的接地和電源都連接在一起。

SCL: 這是i2c時(shí)鐘引腳-與RTC通信。

SDA: 這是i2c數(shù)據(jù)引腳-與RTC進(jìn)行通信。

現(xiàn)在,介紹已經(jīng)完成。讓我們開(kāi)始實(shí)際制作模塊。該指導(dǎo)書(shū)包含焊接步驟以及板上組件的放置位置。希望這種方法比僅僅提供電路圖更好理解。

步驟2:組裝和焊接-1

因此該模塊只有2 x 3 cm的尺寸,非常緊湊。該模塊具有電線(xiàn)連接器,但您也可以使用公頭或母頭接頭,以便將其直接插入Arduino。無(wú)論如何,除了不焊接方波引腳之外,模塊都具有所有功能。

制造模塊:

步驟1:

將原型板切成上述尺寸,然后插入幣形電池座。然后焊接底端以將電池固定在其位置。

第2步:

將DIP插座插入下一步固定到晶胞支架上,但如圖所示,為晶振留出了空間。焊接一些引腳以將插座固定到位。

第3步:

現(xiàn)在將晶體振蕩器插入第一個(gè)晶體振蕩器附近。 DIP插座的第二個(gè)針腳,如圖所示。然后如圖所示進(jìn)行焊接。

注意1:

此注釋用于顯示我的4針連接器的顏色代碼僅供參考,因?yàn)槟念伾赡苡兴煌?,?qǐng)仔細(xì)檢查是否已正確連接。

注2: p》

現(xiàn)在,我們需要使用如圖所示的走線(xiàn)連接電池端子。這些連接提供備用電源。

步驟3:組裝和焊接-2

第5步:

現(xiàn)在插入來(lái)自Arduino的電源引腳。正引腳連接到DS 1307的第八引腳。然后,IC和紐扣單元的接地是公共的。

步驟6:

在這一步中,我們連接來(lái)自Arduino的其他兩個(gè)數(shù)據(jù)引腳,如圖所示。很抱歉,因?yàn)槲覍⒛K做得很小,所以10k電阻沒(méi)有孔。我將電阻器和導(dǎo)線(xiàn)都插入了相同的引腳,然后進(jìn)行了焊接。

第7步:

因此,接下來(lái)插入電線(xiàn),我們需要在兩個(gè)引腳中分別插入10k電阻。兩個(gè)電阻的另一端連接到DS 1307的電源引腳8。然后將導(dǎo)線(xiàn)焊接起來(lái),以供參考。

步驟8:

由于我在此模塊中使用了連接器,因此頻繁使用會(huì)導(dǎo)致電線(xiàn)磨損。所以我用電阻器上的電線(xiàn)剪了一下。首先將電線(xiàn)插入一端并焊接以使其堅(jiān)固。然后制作一個(gè)U形彎頭,并使電線(xiàn)穿過(guò)該U形彎頭,并擰緊U形彎頭以獲得良好的抓地力,然后再焊接另一端以形成接頭。該圖比文字更能說(shuō)明該方法。

該模塊最終完成,因此將電池和DS1307 IC都插入其插槽中。最終圖顯示了完整完整的模塊。

步驟4:檢查和設(shè)置模塊

組裝完模塊后。將模塊連接到Arduino,以便將引腳正確插入Arduino。下面給出了測(cè)試模塊的程序。代碼會(huì)不斷通過(guò)串行端口更新時(shí)間。

為了運(yùn)行模塊,我們需要兩個(gè)庫(kù),而在Arduino軟件中則需要兩個(gè)庫(kù)。以下步驟使用所需的庫(kù)和代碼來(lái)設(shè)置Arduino軟件。

導(dǎo)入庫(kù):

下載庫(kù)“ RealTimeClockDS1307 ”并將其保存在桌面中。

打開(kāi)Arduino,然后轉(zhuǎn)到素描 =》 導(dǎo)入庫(kù) =》 添加庫(kù)。

然后選擇保存在桌面中的庫(kù),然后單擊添加。

現(xiàn)在粘貼下面給出的示例代碼,然后點(diǎn)擊編譯。如果編譯成功,則跳過(guò)其余步驟。

如果沒(méi)有導(dǎo)入第二個(gè)庫(kù)“ Wire ”,重復(fù)相同的過(guò)程并編譯代碼,它將起作用。

代碼正常工作:

代碼是由“ David H. Brown”編寫(xiě)的,我只是用它來(lái)給你DS1307的簡(jiǎn)介。無(wú)論如何,Arduino與RTC模塊通信并通過(guò) Serial Monitor 每秒更新一次時(shí)間。創(chuàng)建者為我們提供了一個(gè)選項(xiàng),用于設(shè)置發(fā)送命令“ ?”的時(shí)間。出現(xiàn)以下菜單。

Try these:

h## - set Hours [range 1..12 or 0..24]

i## - set mInutes [range 0..59]

s## - set Seconds [range 0..59]

d## - set Date [range 1..31]

m## - set Month [range 1..12]

y## - set Year [range 0..99]

w## - set arbitrary day of Week [range 1..7]

t - toggle 24-hour mode

a - set AM p - set PM

z - start clock Z - stop clock

q - SQW/OUT = 1Hz Q - stop SQW/OUT

該代碼將幫助您設(shè)置時(shí)間以及檢查模塊的備用電池供電是否正常。在下一個(gè)教程中,我將向您展示如何設(shè)置LCD顯示器并顯示RTC模塊中的時(shí)間。這是用于測(cè)試模塊及其附件的代碼。

#include

#include

//RealTimeClock RTC;//=new RealTimeClock();

#define Display_Clock_Every_N_Seconds 10 // n.secs to show date/time

#define Display_ShortHelp_Every_N_Seconds 60 // n.secs to show hint for help

//#define TEST_Squarewave

//#define TEST_StopStart

//#define TEST_1224Switch

int count=0;

char formatted[] = “00-00-00 00:00:00x”;

void setup() {

// Wire.begin();

Serial.begin(9600);

pinMode(A3, OUTPUT); //*** pin 16 (Analog pin 2) as OUTPUT ***

digitalWrite(A3, HIGH); //*** pin 16 (Analog pin 2) set to LOW ***

pinMode(A2, OUTPUT); //*** pin 17 (Analog pin 3) as OUTPUT ***

digitalWrite(A2, LOW); //*** pin 17 (Analog pin 3) set to HIGH ***

//*** Analog Pin settings to power RTC module ***

}

void loop() {

if(Serial.available())

{

processCommand();

}

RTC.readClock();

count++;

if(count % Display_Clock_Every_N_Seconds == 0){

Serial.print(count);

Serial.print(“: ”);

RTC.getFormatted(formatted);

Serial.print(formatted);

Serial.println();

}

if(count % Display_ShortHelp_Every_N_Seconds == 0) {

Serial.println(“Send ? for a list of commands.”);

}

#ifdef TEST_Squarewave

if(count%10 == 0)

{

switch(count/10 % 6)

{

case 0:

Serial.print(“Squarewave disabled (low impedance): ”);

RTC.sqwDisable(0);

Serial.println((int) RTC.readData(7));

break;

case 1:

Serial.print(“Squarewave disabled (high impedance): ”);

RTC.sqwDisable(1);

Serial.println((int) RTC.readData(7));

break;

case 2:

Serial.println(“Squarewave enabled at 1 Hz”);

RTC.sqwEnable(RTC.SQW_1Hz);

break;

case 3:

Serial.println(“Squarewave enabled at 4.096 kHz”);

RTC.sqwEnable(RTC.SQW_4kHz);

break;

case 4:

Serial.println(“Squarewave enabled at 8.192 kHz”);

RTC.sqwEnable(RTC.SQW_8kHz);

break;

case 5:

Serial.println(“Squarewave enabled at 32.768 kHz”);

RTC.sqwEnable(RTC.SQW_32kHz);

break;

default:

Serial.println(“Squarewave test not defined”);

}//switch

}

#endif

#ifdef TEST_StopStart

if(count%10 == 0)

{

if(!RTC.isStopped())

{

if(RTC.getSeconds() 《 45)

{

Serial.println(“Stopping clock for 10 seconds”);

RTC.stop();

}//if we have enough time

} else {

RTC.setSeconds(RTC.getSeconds()+11);

RTC.start();

Serial.println(“Adding 11 seconds and restarting clock”);

}

}//if on a multiple of 10 counts

#endif

#ifdef TEST_1224Switch

if(count%10 == 0)

{

if(count %20 == 0)

{

Serial.println(“switching to 12-hour time”);

RTC.switchTo12h();

RTC.setClock();

}

else

{

Serial.println(“switching to 24-hour time”);

RTC.switchTo24h();

RTC.setClock();

}

}

#endif

}

void processCommand() {

if(!Serial.available()) { return; }

char command = Serial.read();

int in,in2;

switch(command)

{

case ‘H’:

case ‘h’:

in=SerialReadPosInt();

RTC.setHours(in);

RTC.setClock();

Serial.print(“Setting hours to ”);

Serial.println(in);

break;

case ‘I’:

case ‘i’:

in=SerialReadPosInt();

RTC.setMinutes(in);

RTC.setClock();

Serial.print(“Setting minutes to ”);

Serial.println(in);

break;

case ‘S’:

case ‘s’:

in=SerialReadPosInt();

RTC.setSeconds(in);

RTC.setClock();

Serial.print(“Setting seconds to ”);

Serial.println(in);

break;

case ‘Y’:

case ‘y’:

in=SerialReadPosInt();

RTC.setYear(in);

RTC.setClock();

Serial.print(“Setting year to ”);

Serial.println(in);

break;

case ‘M’:

case ‘m’:

in=SerialReadPosInt();

RTC.setMonth(in);

RTC.setClock();

Serial.print(“Setting month to ”);

Serial.println(in);

break;

case ‘D’:

case ‘d’:

in=SerialReadPosInt();

RTC.setDate(in);

RTC.setClock();

Serial.print(“Setting date to ”);

Serial.println(in);

break;

case ‘W’:

Serial.print(“Day of week is ”);

Serial.println((int) RTC.getDayOfWeek());

break;

case ‘w’:

in=SerialReadPosInt();

RTC.setDayOfWeek(in);

RTC.setClock();

Serial.print(“Setting day of week to ”);

Serial.println(in);

break;

case ‘t’:

case ‘T’:

if(RTC.is12hour()) {

RTC.switchTo24h();

Serial.println(“Switching to 24-hour clock.”);

} else {

RTC.switchTo12h();

Serial.println(“Switching to 12-hour clock.”);

}

RTC.setClock();

break;

case ‘A’:

case ‘a(chǎn)’:

if(RTC.is12hour()) {

RTC.setAM();

RTC.setClock();

Serial.println(“Set AM.”);

} else {

Serial.println(“(Set hours only in 24-hour mode.)”);

}

break;

case ‘P’:

case ‘p’:

if(RTC.is12hour()) {

RTC.setPM();

RTC.setClock();

Serial.println(“Set PM.”);

} else {

Serial.println(“(Set hours only in 24-hour mode.)”);

}

break;

case ‘q’:

RTC.sqwEnable(RTC.SQW_1Hz);

Serial.println(“Square wave output set to 1Hz”);

break;

case ‘Q’:

RTC.sqwDisable(0);

Serial.println(“Square wave output disabled (low)”);

break;

case ‘z’:

RTC.start();

Serial.println(“Clock oscillator started.”);

break;

case ‘Z’:

RTC.stop();

Serial.println(“Clock oscillator stopped.”);

break;

case ‘》’:

in=SerialReadPosInt();

in2=SerialReadPosInt();

RTC.writeData(in, in2);

Serial.print(“Write to register ”);

Serial.print(in);

Serial.print(“ the value ”);

Serial.println(in2);

break;

case ‘《’:

in=SerialReadPosInt();

in2=RTC.readData(in);

Serial.print(“Read from register ”);

Serial.print(in);

Serial.print(“ the value ”);

Serial.println(in2);

break;

default:

Serial.println(“Unknown command. Try these:”);

Serial.println(“ h## - set Hours [range 1..12 or 0..24]”);

Serial.println(“ i## - set mInutes [range 0..59]”);

Serial.println(“ s## - set Seconds [range 0..59]”);

Serial.println(“ d## - set Date [range 1..31]”);

Serial.println(“ m## - set Month [range 1..12]”);

Serial.println(“ y## - set Year [range 0..99]”);

Serial.println(“ w## - set arbitrary day of Week [range 1..7]”);

Serial.println(“ t - toggle 24-hour mode”);

Serial.println(“ a - set AM p - set PM”);

Serial.println();

Serial.println(“ z - start clock Z - stop clock”);

Serial.println(“ q - SQW/OUT = 1Hz Q - stop SQW/OUT”);

Serial.println();

Serial.println(“ 》##,### - write to register ## the value ###”);

Serial.println(“ 《## - read the value in register ##”);

}//switch on command

}

//read in numeric characters until something else

//or no more data is available on serial.

int SerialReadPosInt() {

int i = 0;

boolean done=false;

while(Serial.available() && !done)

{

char c = Serial.read();

if (c 》= ‘0’ && c 《=‘9’)

{

i = i * 10 + (c-‘0’);

}

else

{

done = true;

}

}

return i;

}

步驟5:關(guān)于庫(kù)

開(kāi)始之前在液晶顯示屏上顯示時(shí)間。我想討論一下我們導(dǎo)入的庫(kù)。我省略了需要方波數(shù)據(jù)的庫(kù),因?yàn)樵撃K沒(méi)有方波輸出引腳。讓我們通過(guò)一些示例來(lái)討論該庫(kù)中涉及的各種關(guān)鍵字。

關(guān)鍵字:

起始時(shí)鐘:

RTC.start();

此時(shí)鐘可用于啟動(dòng)時(shí)鐘,它將從停止時(shí)開(kāi)始計(jì)時(shí)。首次使用該模塊以啟動(dòng)模塊時(shí),應(yīng)使用此命令。

停止時(shí)鐘:

RTC.stop();

使用此行,可以暫停該模塊,并且在給出啟動(dòng)命令之前,時(shí)鐘不會(huì)計(jì)時(shí)。它與開(kāi)始時(shí)鐘命令一起使用以控制模塊的狀態(tài)。

讀取時(shí)鐘:

RTC.readClock();

使用“開(kāi)始”命令打開(kāi)時(shí)鐘后。您需要從RTC模塊讀取數(shù)據(jù)。這是通過(guò)readClock函數(shù)完成的。在使用后面的命令之前,此功能必不可少。

讀取時(shí)間:

//integers for holding the various time values.

int hours = 0;

int minutes = 0;

int seconds = 0;

int dates = 0;

int months = 0;

int years = 0;

int date = 0;

//syntax for setting the values to the integers

RTC.readClock(); //This line is essential for the other commands to work.

//Commands for getting the individual time values.

hours = RTC.getHours();

minutes = RTC.getMinutes();

seconds = RTC.getSeconds();

dates = RTC.getDate();

months = RTC.getMonth();

years = RTC.getYear();

date = RTC.getDayofWeek();

//finally just print the stored data (refer next step)。

因此一旦readClock被調(diào)用。接下來(lái),我們需要將各個(gè)值存儲(chǔ)為整數(shù)。我們創(chuàng)建整數(shù)來(lái)保存值。 getDayofWeek函數(shù)提供星期幾。第一天為星期一,最后一天為星期日。請(qǐng)注意,與前面步驟中的代碼相比,此方法效率很低,但這將有助于您了解庫(kù)中各種功能的工作。

注意:

//extra code for finding out whether its AM or PM when the clock is in 12h mode.

//declare an integer and string.

int AP = 0;

String TZ;

//then read the data from the module.

ampm = RTC.isPM();

//use an if loop to find out whether its AM or PM.

if(ampm == 1)

{

am = “PM”;

}

else

{

am =“AM”;

}

此額外的代碼行將在12小時(shí)模式下顯示其上午還是下午。當(dāng)您將其設(shè)置為24小時(shí)制時(shí),請(qǐng)刪除此代碼。

寫(xiě)時(shí)間:

RTC.setHours(4);

RTC.setMinutes(35);

RTC.setSeconds(14);

RTC.setDate(9);

RTC.setMonth(6);

RTC.setYear(14);

RTC.set24h();

//RTC.setAM();

RTC.setPM();

RTC.setDayofWeek(1);

因此,這些是用于設(shè)置模塊時(shí)間的命令。如您所見(jiàn),我已經(jīng)設(shè)置了 4:35:14 PM 的時(shí)間,日期為 9/6/14 。除了這些命令外,還有set24h命令,直接將時(shí)鐘設(shè)置為24小時(shí)模式,并將AM和PM設(shè)置為12小時(shí)模式。 setDayofWeek用于設(shè)置日期。

時(shí)間命令:

//These commands deal with the settings in the module.

//Checks whether the clock is running.

RTC.isStopped();

//Check whether it is AM or PM depending on the output(given above)。

RTC.isPM();

//Checks whether the clock is in 24hour mode.

RTC.is12hour();

//Toggles between the 12hour mode and 24hour mode.

RTC.switchTo24h();

以下是這些命令:控制時(shí)鐘內(nèi)的設(shè)置。

我已經(jīng)盡我所能解釋了這個(gè)庫(kù)。如果發(fā)現(xiàn)任何缺陷或我錯(cuò)過(guò)的東西,請(qǐng)對(duì)其進(jìn)行評(píng)論,以使其盡可能準(zhǔn)確。

步驟6:顯示時(shí)間(簡(jiǎn)單方法)

現(xiàn)在檢查了模塊,現(xiàn)在讓我們開(kāi)始獲取要在LCD上顯示的時(shí)間數(shù)據(jù)。 LCD模塊可以輕松連接到Arduino。顯示了用于連接LCD模塊的電路圖。下面顯示了用于顯示時(shí)間的代碼。

在我制作了此代碼的兩個(gè)版本之前。其中一個(gè)將普通LCD連接到Arduino。這是最簡(jiǎn)單的版本,但是它將占用Arduino中的大多數(shù)引腳。因此,我想出了一個(gè)替代方案,使用移位寄存器僅使用2個(gè)引腳將數(shù)據(jù)發(fā)送到LCD模塊。因此,您可以選擇更方便的方式。

普通版:

更多的引腳,但是更簡(jiǎn)單!

因此,如面包板圖所示,連接LCD。然后將代碼上傳到Arduino,日期和時(shí)間將顯示在LCD顯示屏中。因此,這是代碼。

代碼:

#include

#include

#include

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define Display_Clock_Every_N_Seconds 10

#define Display_ShortHelp_Every_N_Seconds 60

String tz;

int hours = 0;

int minutes = 0;

int seconds = 0;

int dates = 0;

int months = 0;

int years = 0;

int ap = 0;

void setup() {

Serial.begin(9600);

lcd.begin(16,2);

pinMode(A3, OUTPUT);

digitalWrite(A3, HIGH);

pinMode(A2, OUTPUT);

digitalWrite(A2, LOW);

}

void loop() {

RTC.readClock();

if(ap == 1)

{

tz = “PM”;

}

else

{

tz =“AM”;

}

lcd.home();

hours = RTC.getHours();

minutes = RTC.getMinutes();

seconds = RTC.getSeconds();

ap = RTC.isPM();

dates = RTC.getDate();

months = RTC.getMonth();

years = RTC.getYear();

lcd.print(hours);

lcd.print(“:”);

lcd.print(minutes);

lcd.print(“:”);

lcd.print(seconds);

lcd.print(“ ”);

lcd.print(tz);

lcd.setCursor(0, 1);

lcd.print(dates);

lcd.print(“:”);

lcd.print(months);

lcd.print(“:”);

lcd.print(years);

delay(250);

lcd.clear();

lcd.home();

lcd.print(hours);

lcd.print(“ ”);

lcd.print(minutes);

lcd.print(“ ”);

lcd.print(seconds);

lcd.print(“ ”);

lcd.print(tz);

lcd.setCursor(0, 1);

lcd.print(dates);

lcd.print(“ ”);

lcd.print(months);

lcd.print(“ ”);

lcd.print(years);

delay(250);

lcd.clear();

}

在連接RTC模塊并上傳代碼后。液晶顯示屏將在頂部顯示時(shí)間,在底部顯示日期。此版本對(duì)于學(xué)習(xí)基本命令很有用,并允許您在將來(lái)的項(xiàng)目中使用這些命令。

步驟7:顯示時(shí)間(移位寄存器版本)

移位寄存器LCD版本:

此版本使用的移位寄存器模塊僅使用兩個(gè)就可以將數(shù)據(jù)發(fā)送到LCD引腳而不是六個(gè)引腳。可以購(gòu)買(mǎi)此模塊,但我想制造它。即將發(fā)布的鏈接中提供了制作模塊的完整說(shuō)明!因此,只需將Arduino的兩個(gè)引腳連接到模塊,然后上傳下面給出的代碼,就可以像在簡(jiǎn)單版本中一樣觀察到相同的輸出。

CODE:

#include

#include

#include

LiquidCrystal_SR lcd(8,7,TWO_WIRE);

#define Display_Clock_Every_N_Seconds 10

#define Display_ShortHelp_Every_N_Seconds 60

String tz;

int hours = 0;

int minutes = 0;

int seconds = 0;

int dates = 0;

int months = 0;

int years = 0;

int ap = 0;

void setup() {

// Wire.begin();

Serial.begin(9600);

lcd.begin(16,2);

pinMode(A3, OUTPUT);

digitalWrite(A3, HIGH);

pinMode(A2, OUTPUT);

digitalWrite(A2, LOW);

}

void loop() {

RTC.readClock();

ap = RTC.isPM();

if(ap == 1)

{

tz = “PM”;

}

else

{

tz =“AM”;

}

lcd.home();

hours = RTC.getHours();

minutes = RTC.getMinutes();

seconds = RTC.getSeconds();

dates = RTC.getDate();

months = RTC.getMonth();

years = RTC.getYear();

lcd.print(hours);

lcd.print(“:”);

lcd.print(minutes);

lcd.print(“:”);

lcd.print(seconds);

lcd.print(“ ”);

lcd.print(tz);

lcd.setCursor(0, 1);

lcd.print(dates);

lcd.print(“:”);

lcd.print(months);

lcd.print(“:”);

lcd.print(years);

delay(250);

lcd.clear();

lcd.home();

lcd.print(hours);

lcd.print(“ ”);

lcd.print(minutes);

lcd.print(“ ”);

lcd.print(seconds);

lcd.print(“ ”);

lcd.print(tz);

lcd.setCursor(0, 1);

lcd.print(dates);

lcd.print(“ ”);

lcd.print(months);

lcd.print(“ ”);

lcd.print(years);

delay(250);

lcd.clear();

}

如果您已經(jīng)有了此模塊,則第二個(gè)代碼使用另一個(gè)庫(kù),請(qǐng)使用該庫(kù)使上面的代碼正常工作。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1901

    瀏覽量

    133227
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6498

    瀏覽量

    192151
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    內(nèi)置晶振、小封裝的實(shí)時(shí)時(shí)鐘IC-SD

    鴻合智遠(yuǎn)|興威帆電子:內(nèi)置晶振、小封裝的實(shí)時(shí)時(shí)鐘IC-SD
    的頭像 發(fā)表于 05-28 10:01 ?223次閱讀
    內(nèi)置晶振、小封裝的<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>IC-SD

    愛(ài)普生RA4000CE實(shí)時(shí)時(shí)鐘模塊車(chē)載BMS系統(tǒng)的理想選擇

    在新能源汽車(chē)蓬勃發(fā)展的當(dāng)下,電池管理系統(tǒng)(BMS)作為保障電池安全、延長(zhǎng)電池壽命以及提升車(chē)輛性能的核心技術(shù),其重要性不言而喻。而一個(gè)精準(zhǔn)、可靠的實(shí)時(shí)時(shí)鐘模塊,對(duì)于BMS系統(tǒng)的高效運(yùn)行起著關(guān)鍵作用
    的頭像 發(fā)表于 04-03 15:18 ?307次閱讀
    愛(ài)普生RA4000CE<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>模塊車(chē)載BMS系統(tǒng)的理想選擇

    實(shí)時(shí)時(shí)鐘模塊選擇指南和比較表

    愛(ài)普生提供內(nèi)置 32.768 kHz 晶體單元的多種實(shí)時(shí)時(shí)鐘模塊。除了單純的計(jì)時(shí)功能外,還有即使在高溫環(huán)境下也能保持準(zhǔn)確計(jì)時(shí)的產(chǎn)品,以及配備其他各種功能的產(chǎn)品。您可以使用下面的流程圖和產(chǎn)品比較表來(lái)
    發(fā)表于 03-14 10:28 ?0次下載

    基于FPGA的實(shí)時(shí)時(shí)鐘設(shè)計(jì)

    本次設(shè)計(jì)采用了美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路 DS1302,它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線(xiàn)
    的頭像 發(fā)表于 01-06 16:06 ?1268次閱讀
    基于FPGA的<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>設(shè)計(jì)

    LinkedSemi凌思微:DD3225TR實(shí)時(shí)時(shí)鐘模塊

    深圳鴻合智遠(yuǎn)|LinkedSemi凌思微:DD3225TR實(shí)時(shí)時(shí)鐘模塊
    的頭像 發(fā)表于 12-17 10:57 ?542次閱讀
    LinkedSemi凌思微:DD3225TR<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>模塊

    LinkedSemi凌思微:DD3225TS實(shí)時(shí)時(shí)鐘模塊

    深圳鴻合智遠(yuǎn)|LinkedSemi凌思微:DD3225TS實(shí)時(shí)時(shí)鐘模塊
    的頭像 發(fā)表于 12-16 11:20 ?575次閱讀
    LinkedSemi凌思微:DD3225TS<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>模塊

    TPS65950實(shí)時(shí)時(shí)鐘時(shí)序補(bǔ)償分析

    電子發(fā)燒友網(wǎng)站提供《TPS65950實(shí)時(shí)時(shí)鐘時(shí)序補(bǔ)償分析.pdf》資料免費(fèi)下載
    發(fā)表于 10-29 10:01 ?0次下載
    TPS65950<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>時(shí)序補(bǔ)償分析

    使用實(shí)時(shí)時(shí)鐘庫(kù)

    電子發(fā)燒友網(wǎng)站提供《使用實(shí)時(shí)時(shí)鐘庫(kù).pdf》資料免費(fèi)下載
    發(fā)表于 10-22 10:09 ?0次下載
    使用<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>庫(kù)

    適用于智能門(mén)鎖的低功耗RTC實(shí)時(shí)時(shí)鐘模塊RX8010SJ

    隨著智能家居的普及,智能門(mén)鎖已成為保障家庭安全的重要設(shè)備。作為智能門(mén)鎖的關(guān)鍵組件之一,實(shí)時(shí)時(shí)鐘(RTC)模塊負(fù)責(zé)提供準(zhǔn)確的時(shí)間基準(zhǔn),確保門(mén)鎖的各種時(shí)間相關(guān)功能正常運(yùn)行。一款適用于智能門(mén)鎖的低功耗
    的頭像 發(fā)表于 08-28 14:29 ?817次閱讀
    適用于智能門(mén)鎖的低功耗RTC<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>模塊RX8010SJ

    bq32000實(shí)時(shí)時(shí)鐘(RTC)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《bq32000實(shí)時(shí)時(shí)鐘(RTC)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 11:23 ?0次下載
    bq32000<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>(RTC)數(shù)據(jù)表

    BQ32002實(shí)時(shí)時(shí)鐘(RTC)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《BQ32002實(shí)時(shí)時(shí)鐘(RTC)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 11:23 ?0次下載
    BQ32002<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>(RTC)數(shù)據(jù)表

    bq3285E/L實(shí)時(shí)時(shí)鐘(RTC)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《bq3285E/L實(shí)時(shí)時(shí)鐘(RTC)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 11:22 ?0次下載
    bq3285E/L<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>(RTC)數(shù)據(jù)表

    bq3285實(shí)時(shí)時(shí)鐘(RTC)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《bq3285實(shí)時(shí)時(shí)鐘(RTC)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-23 11:21 ?0次下載
    bq3285<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>(RTC)數(shù)據(jù)表

    bq4802Y/bq4802LY實(shí)時(shí)時(shí)鐘數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《bq4802Y/bq4802LY實(shí)時(shí)時(shí)鐘數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-22 11:23 ?0次下載
    bq4802Y/bq4802LY<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>數(shù)據(jù)表

    TCXO RTC實(shí)時(shí)時(shí)鐘模塊的特性

    高精度實(shí)時(shí)時(shí)鐘模塊內(nèi)建TCXO數(shù)字式實(shí)時(shí)時(shí)鐘模塊的特征【序文】時(shí)間是我們?nèi)粘I钪械幕靖拍?。火?chē)運(yùn)行管理、進(jìn)出場(chǎng)管理等各種處理系統(tǒng)和應(yīng)用程序按照時(shí)間信息工作。在金融、股市領(lǐng)域中,時(shí)間操縱著巨大利益
    的頭像 發(fā)表于 08-14 11:44 ?735次閱讀
    TCXO RTC<b class='flag-5'>實(shí)時(shí)時(shí)鐘</b>模塊的特性