chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

ArduinoUltraMega計(jì)時器的制作

454398 ? 來源:wv ? 2019-09-20 09:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

第1步:第一步

ArduinoUltraMega計(jì)時器的制作

首先,我們需要設(shè)置LCD,RTC并清除arduinos eeprom。

-LCD lcd必須有一個地址,在代碼的開頭聲明:

LiquidCrystal_I2C lcd(0x3F,16,2);//0x3F是我的lcd地址,也許不是你的地址!

如果您不知道地址,請使用實(shí)用程序“I2C掃描儀”。按如下方式連接你的液晶顯示器:

-VCC到arduino 5V

-GND到arduino GND

-SDA到arduino模擬引腳4

-SCL到arduino模擬引腳5

上傳代碼并打開串口監(jiān)視器,將顯示地址。如果地址不同,則替換地址(0x3F)。

下載:

https://gist.github.com/tfeldmann/5411375

-RTC 我們將使用RTC 3231,但必須對編程時間進(jìn)行編程。將RTClib-master添加到Arduino庫中。轉(zhuǎn)到文件/examples/RTClib/ds3231。上傳代碼。此草圖根據(jù)您正在使用的計(jì)算機(jī)(編譯代碼時的正確性)獲取日期和時間,并使用它來編程RTC。如果您的計(jì)算機(jī)時間設(shè)置不正確,您應(yīng)該先修復(fù)它。然后你必須按上傳按鈕進(jìn)行編譯,然后立即上傳。

警告?。?如果你編譯然后再上傳,時鐘將是離開這段時間。然后打開串行監(jiān)視器窗口以顯示時間已設(shè)置。

按如下方式連接rtc:

-VCC到arduino 5V

-GND到arduino GND

-SDA到arduino模擬引腳4

-SCL到arduino模擬引腳5

如果你不知道,可以連接lcd和rtc同時到I2C總線(模擬4 SDA,模擬5 SCL)。

-EEPROM清除通常,eeprom值是255 x地址,我們需要將這些值設(shè)置為0. eeprom庫已包含在您的arduino IDE中。

轉(zhuǎn)到文件/示例/EEPROM/eeprom_clear。

上傳代碼并等待引腳13導(dǎo)通。您可以使用eeprom_read代碼檢查您的值。

觀看視頻!

教程中使用的RTC和LCD庫:

步驟2:計(jì)時器的詭計(jì)

這里的挑戰(zhàn)之一是比較“準(zhǔn)時”和“關(guān)閉時間”隨時了解當(dāng)前時間。人們可以這樣思考:

if(now hour == on hour && now minute == on minute && now second == on second)

relay on

if(now hour == off hour && now minute == off minute && now second == off second)

relay off

這可能會有效,但是如果你的設(shè)定點(diǎn)是12 :30:00,你的設(shè)定點(diǎn)15:45:15,當(dāng)前時間是13:00:00?好吧,你會等到第二天打開你的設(shè)備!或者如果你在12:30:00和15:45:15失去力量怎么辦?同樣的事情:等待觸發(fā)設(shè)置。

如果你查看我以前的計(jì)時器,有很多if/else語句來控制繼電器,因?yàn)闀r間是循環(huán)的,我們需要涵蓋所有可能的情況。但要添加分鐘和秒鐘則是別的。所有值都可以高于或低于開/關(guān)設(shè)置或當(dāng)前時間,并嘗試比較它將是一團(tuán)糟。

所以我想在軍事時間或字符串?dāng)?shù)字從0到235959,和這就是這些計(jì)時器的訣竅。因此,我們將當(dāng)前時間,設(shè)定值和關(guān)閉設(shè)定值轉(zhuǎn)換為單個數(shù)字。

我將解釋定時器工作原理,因?yàn)楦脑O(shè)置和顯示值等的界面可以是在我的多屏幕教學(xué)中學(xué)習(xí)。介紹中的鏈接。

首先,我們?yōu)橛?jì)時器創(chuàng)建變量(開/關(guān)):

//------ First Timer

byte onhour1;

字節(jié)onmin1;

字節(jié)onsec1;

字節(jié)offhour1;

字節(jié)offmin1;

字節(jié)offsec1;

字節(jié)數(shù)據(jù)類型(0到255無符號)用于存儲值。一個字節(jié)可以很容易地存儲在eeprom(1個數(shù)據(jù)x地址)中,較大的數(shù)字將是59(分鐘或秒)。我們從最初的eeprom值0開始,因?yàn)閑eprom被清除了。其中()是eeprom地址。

void setup 。..。..。

//-------- eePROM讀取值-------//

//------第一個定時器

onhour1 = EEPROM.read(0 );

onmin1 = EEPROM.read(1);

onsec1 = EEPROM.read(2);

offhour1 = EEPROM.read(3);

offmin1 = EEPROM.read(4);

offsec1 = EEPROM.read(5);

這些值可以更改和保存,稍后再進(jìn)行按鈕接口。

但是我們不能用字節(jié)進(jìn)行數(shù)學(xué)運(yùn)算(轉(zhuǎn)換為單個數(shù)字),因?yàn)槲覀兊妮^大數(shù)字將是235,959或int = 32,767(正數(shù))或無符號int = 65,535。所以,unsigned long將是。

我們創(chuàng)建另一個變量來將字節(jié)轉(zhuǎn)換為unsigned long。此外,使用的最終值:on_Time1和off_Time1

//------將第一個計(jì)時器轉(zhuǎn)換為單個數(shù)字

無符號長整數(shù)on_Time1;

unsigned long on_hour1;

unsigned long on_min1;

unsigned long on_sec1;

unsigned long off_Time1;

unsigned long off_hour1;

unsigned long off_min1;

unsigned long off_sec1;

//-------將時鐘轉(zhuǎn)換為單個數(shù)字

unsigned long Time;

unsigned long Hour;

unsigned long Min;

unsigned long Sec;

轉(zhuǎn)換在void循環(huán)中執(zhí)行。對于當(dāng)前時間,我們從庫函數(shù)now(),hour,minute,second獲取rtc中的值,并將此值分配給Hour,Min和Sec。 “時間”是小時* 10000的總和的結(jié)果; Min * 100和Sec。

示例:15:45:34 =(15 * 10000 + 45 * 100 + 34)= 154,534

//------- ------轉(zhuǎn)換----------//

//---------將時鐘時間轉(zhuǎn)換為單個數(shù)字

Hour = now.hour();

Min = now.minute();

秒= now.second();

時間=(小時* 10000 +最小* 100 +秒* 1);

與開/關(guān)設(shè)置相同。這里我們從開頭(字節(jié))獲取值并按如下方式分配這些值:

//--------將firt定時器開/關(guān)轉(zhuǎn)換為單個數(shù)字

on_hour1 = onhour1;

on_min1 = onmin1;

on_sec1 = onsec1;

on_Time1 =(on_hour1 * 10000 + on_min1 * 100 + on_sec1);

off_hour1 = offhour1;

off_min1 = offmin1;

off_sec1 = offsec1;

off_Time1 =(off_hour1 * 10000 + off_min1 * 100 + off_sec1 );

最終結(jié)果是我們將要工作的3個變量:Time,on_Time1和off_Time1

現(xiàn)在是繼電器功能。在這里,我們將“Time”與“on_Time1”和“off_Time1”進(jìn)行比較以打開或關(guān)閉繼電器。我們有3個主要的“if”語句:

1)if(onhour1 == offhour1 && onmin1 == offmin1 && onsec1 == offsec1){

digitalWrite(Relay,LOW); }

此語句是啟用/禁用功能。我們使用字節(jié)值,因?yàn)檫@里我們不需要任何轉(zhuǎn)換。如果所有值都相同,則繼電器關(guān)閉。如果你改變,即使是一秒,計(jì)時器也會工作。

2)if(on_Time1

if(Time》 = on_Time1 && Time

digitalWrite(Relay,HIGH);

}

否則if(Time》 = off_Time1){

digitalWrite(Relay,LOW);

}

else {

digitalWrite(Relay,LOW);

}

}

3)if(on_Time1》 off_Time1){

if(Time》 = on_Time1 && Time 《= 235959 ){//開始

digitalWrite(Relay,HIGH);

}

否則if(Time

digitalWrite (接力,HIGH);

}

否則if(Time》 = off_Time1 && Time

digitalWrite(Relay,LOW);這兩個函數(shù)涵蓋了兩種可能的設(shè)置:“開啟時間”低于“關(guān)閉時間”和“開啟時間”高于“關(guān)閉時間”。在每個設(shè)置中你可以找到3個以上的語句隨時控制繼電器。通過圖形演示可以很容易地理解功能。觀看圖片!

使用按鈕界面,我們可以更改值(開/關(guān))并存儲新的值。這是存儲值的結(jié)構(gòu)。正如我所說,我們將字節(jié)值存儲在一個地址上。其中:

(地址,字節(jié)值)

EEPROM.write(0,onhour1);

EEPROM.write(1,onmin1);

EEPROM.write(2,onsec1);

EEPROM.write(3,offhour1);

EEPROM.write(4,offmin1);

EEPROM。 write(5,offsec1);

步驟3:1日常計(jì)時器

此計(jì)時器是下一個計(jì)時器的基礎(chǔ)。按照原理圖安裝電路,記住RTC和LCD共用相同的引腳(模擬4 SDA;模擬5 SCL)。

上傳代碼,記得添加庫RTClib和LiquidCrystal_I2C。

您有3個按鈕可以使用向上/向下按鈕移動3個主頁面,然后選擇按鈕進(jìn)入和移動子菜單。

第一頁顯示消息和當(dāng)前時間。

第二頁是開/關(guān)界面,在這里您可以更改設(shè)定值。按選擇按鈕進(jìn)入子菜單,箭頭將放在每個項(xiàng)目的前面,按向上或向下按鈕設(shè)置開啟小時,分鐘,秒和關(guān)閉小時,分鐘,秒。按下選擇按鈕移動beetwen項(xiàng)目(僅限前進(jìn))最后一項(xiàng)是“后退”字符,如果按下,它將退出子菜單,現(xiàn)在您可以移動主頁面。如果按下,箭頭將放在第一個項(xiàng)目的前面。

第三頁是保存設(shè)置。只需按下選擇按鈕,您的所有數(shù)據(jù)都將存儲在eeprom上。消息“已保存!”將顯示并自動重定向到主頁面。

此計(jì)時器每天都會工作,如果出現(xiàn)電源故障或斷開連接,將從eeprom恢復(fù)數(shù)據(jù)再次啟動。

通過繼電器,您可以控制設(shè)備。繼電器通過高信號(5V)激活。

警告!小心繼電器的最大負(fù)載!

步驟4:1定時器,可選日

此計(jì)時器適用于那些想要控制定時器激活日期的人。為此,我們將使用RTC的函數(shù)“now.dayOfTheWeek()”,它的值可以是1到7;周一至周日。要為每個數(shù)字指定星期幾,我們使用此(全局變量):

char daysOfTheWeek [7] [12] = {“Sunday”,“Monday”,“Tuesday”,“Wednesday” “,”星期四“,”星期五“,”星期六“};

要在液晶顯示屏(主頁)上顯示:

lcd.print(daysOfTheWeek [now.dayOfTheWeek( )]);

我們需要新的變量來知道這一天是否被激活/禁用。所以:

//------星期幾

布爾值Sun1;

布爾值Mon1;

布爾值Tue1;

布爾值Wed1;

布爾值Thu1;

布爾值Fri1;

布爾值Sat1;

我們使用布爾值(1或0)作為其他變量,我們從eeprom.Boolean中取值可以存儲在1個地址中。最后使用的地址是5(offsec1),所以我們繼續(xù):

void setup 。..。.

Sun1 = EEPROM.read(6);

Mon1 = EEPROM.read(7);

Tue1 = EEPROM.read(8);

Wed1 = EEPROM.read(9);

Thu1 = EEPROM.read(10);

Fri1 = EEPROM.read(11);

Sat1 = EEPROM.read(12);

請記住,您的第一個值為0(eeprom clear)。因此0表示禁用,1表示啟用日。

為了控制繼電器,我們需要檢查當(dāng)天并檢查當(dāng)天是否啟用/禁用計(jì)時器。

使用另一個開關(guān)函數(shù),其中每個“case”將是“now.dayOfTheWeek()”的值(1到7)

//----每天的中繼函數(shù)--- -//

switch(now.dayOfTheWeek()){//now.dayOfTheWeek值1到7,星期一到星期日

案例1://如果星期一

如果(Mon1 == 1){

First_Timer();

}

else {

digitalWrite(Relay1,LOW);

}

打破;

案例2://如果星期二

if(Tue1 == 1){

First_Timer();

}

else {

digitalWrite(Relay1,LOW);

}休息;

案例3:。..。..。依此類推。..。..

例如:如果今天是星期一(now.dayOfTheWeek()= 1),我們進(jìn)入第一個案例。如果布爾值Mon1 == 1(啟用日期),我們調(diào)用自定義函數(shù)“First_Timer()”,與前一個計(jì)時器相同的中繼函數(shù),現(xiàn)在作為自定義函數(shù)工作,所以我們不需要寫它每個案例。如果我們輸入0,則繼電器功能將為低電平(禁用一天)。所以我們每天使用一個案例并跳過其他案例。

現(xiàn)在我們需要在界面上添加另一個屏幕來更改設(shè)置。

主頁面顯示當(dāng)前日期和時間。

開/關(guān)設(shè)置的第二頁。

這里我們介紹新頁面,您可以選擇激活繼電器的日期,其工作方式與其他工作方式相同:箭頭表示該項(xiàng)目,如果按下向上按鈕,則會在當(dāng)天放置1并啟用。如果按下,您將輸入0并且該日期將被禁用。

第四頁保存設(shè)置,開/關(guān)時間和日期啟用/禁用。要保存的結(jié)構(gòu):

EEPROM.write(0,onhour1);

EEPROM.write(1,onmin1);

EEPROM.write(2,onsec1);

EEPROM.write(3,offhour1);

EEPROM.write(4,offmin1);

EEPROM.write(5,offsec1);

EEPROM.write(6,Sun1);

EEPROM.write(7,Mon1);

EEPROM.write(8,Tue1);

EEPROM.write(9,Wed1);

EEPROM.write(10,Thu1);

EEPROM.write(11,F(xiàn)ri1);

EEPROM.write(12,Sat1);

步驟5:4個定時器1每天接力

來自用戶的另一個請求。此計(jì)時器能夠通過單個輸出在一天內(nèi)控制4個事件。沒什么可說的,因?yàn)槲覀冎粸槎〞r器2,3和4添加更多變量,也是移動設(shè)置的界面。我們繼續(xù)從上次使用的地址讀取和寫入。

注意:小心不要與定時器重疊,因?yàn)樗鼈冎械娜魏我粋€都可以打開或關(guān)閉繼電器。

所以,這里有3個定時器,界面很好。對于“簡單”版本,您只需要更改“///////////“中的值。默認(rèn)值為0。

開/關(guān)1,2,3,4 = 0-23

on/offmin1,2,3,4 = 0-59

on/offsec1,2,3,4 = 0-59

Day啟用/禁用= 1表示啟用0表示禁用。

“簡單”計(jì)時器不需要eeprom保存,因?yàn)槟呀?jīng)存儲了值。如果你想研究定時器的代碼,這也很有用。

正如你所看到的,可以按照邏輯添加更多的定時器,你可以使用“可選日”功能。

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

    關(guān)注

    190

    文章

    6509

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    耐電痕化指數(shù)測定儀:滴液計(jì)時器設(shè)置與終點(diǎn)判據(jù)的深度解讀

    一、滴液計(jì)時器:模擬環(huán)境的“節(jié)奏控制”? 耐電痕化測試的核心是復(fù)刻絕緣材料在潮濕污染環(huán)境中的劣化過程,滴液計(jì)時器則是把控這一過程節(jié)奏的關(guān)鍵。其設(shè)置本質(zhì)是對自然環(huán)境中“污染物累積速率” 的科學(xué)模擬
    的頭像 發(fā)表于 10-16 09:46 ?85次閱讀
    耐電痕化指數(shù)測定儀:滴液<b class='flag-5'>計(jì)時器</b>設(shè)置與終點(diǎn)判據(jù)的深度解讀

    計(jì)數(shù)計(jì)時器頻率表轉(zhuǎn)速表

    測量儀儀器儀表
    西安同步電子科技有限公司
    發(fā)布于 :2025年10月13日 19:32:57

    TPS36-Q1汽車級超低功耗精密監(jiān)控技術(shù)解析

    Texas Instruments TPS36-Q1超低功耗(典型值為 250nA)監(jiān)控是具有可編程窗口看門狗計(jì)時器的精密電壓監(jiān)控。TPS36-Q1支持用于欠壓監(jiān)控的寬閾值電平,在額定溫度范圍內(nèi)
    的頭像 發(fā)表于 08-25 10:08 ?457次閱讀
    TPS36-Q1汽車級超低功耗精密監(jiān)控<b class='flag-5'>器</b>技術(shù)解析

    TPS36-Q1超低功耗精密監(jiān)控技術(shù)解析

    Texas Instruments TPS36-Q1超低功耗(典型值為 250nA)監(jiān)控是具有可編程窗口看門狗計(jì)時器的精密電壓監(jiān)控。TPS36-Q1支持用于欠壓監(jiān)控的寬閾值電平,在額定溫度范圍內(nèi)
    的頭像 發(fā)表于 08-22 14:48 ?503次閱讀
    TPS36-Q1超低功耗精密監(jiān)控<b class='flag-5'>器</b>技術(shù)解析

    零知開源——基于STM32F407VET6零知增強(qiáng)板的四路獨(dú)立計(jì)時器

    本帖最后由 PCB56242069 于 2025-7-1 11:24 編輯 項(xiàng)目概述本教程將指導(dǎo)你如何使用STM32F407VET6零知增強(qiáng)板實(shí)現(xiàn)一個功能強(qiáng)大的四路獨(dú)立計(jì)時器。每個計(jì)時器可以
    發(fā)表于 07-01 10:31

    零知開源——基于STM32F407VET6零知增強(qiáng)板的四路獨(dú)立計(jì)時器

    本教程介紹基于STM32F407VET6零知增強(qiáng)板的四路獨(dú)立計(jì)時器實(shí)現(xiàn)方案。項(xiàng)目采用TFT顯示屏、蜂鳴器和按鈕構(gòu)建交互系統(tǒng),支持各計(jì)時器獨(dú)立控制(開始/暫停/重置)和智能報(bào)警(4小時及以上每小時觸發(fā)
    的頭像 發(fā)表于 07-01 10:13 ?674次閱讀
    零知開源——基于STM32F407VET6零知增強(qiáng)板的四路獨(dú)立<b class='flag-5'>計(jì)時器</b>

    基于STM32F407VET6零知增強(qiáng)板的四路獨(dú)立計(jì)時器

    計(jì)時器
    PCB56242069
    發(fā)布于 :2025年07月01日 09:41:44

    納祥科技客戶案例 | 集計(jì)時、照明、裝飾于一體的電子沙漏計(jì)時器方案

    傳統(tǒng)沙漏作為計(jì)時工具,雖具備儀式感,但存在功能單一、無法實(shí)時調(diào)整具體定時等局限性。應(yīng)客戶需求,納祥科技推出了結(jié)合LED顯示、重力感應(yīng)、低功耗等技術(shù)的電子沙漏計(jì)時器方案,實(shí)現(xiàn)傳統(tǒng)沙漏的美學(xué)與現(xiàn)代
    的頭像 發(fā)表于 06-13 16:32 ?497次閱讀
    納祥科技客戶案例 | 集<b class='flag-5'>計(jì)時</b>、照明、裝飾于一體的電子沙漏<b class='flag-5'>計(jì)時器</b>方案

    如何構(gòu)建一個一次充電可以運(yùn)行數(shù)月的嵌入式設(shè)備?

    想象一下設(shè)計(jì)一個寵物GPS追蹤,它需要跟蹤時間、安排任務(wù)和節(jié)約電力,但保持MCU和GPS全天候活躍將消耗數(shù)小時的電池。 你如何解決這個問題? ? 僅在必要時使用RTC喚醒MCU。 ??使用系統(tǒng)計(jì)時器
    的頭像 發(fā)表于 03-04 11:25 ?540次閱讀
    如何構(gòu)建一個一次充電可以運(yùn)行數(shù)月的嵌入式設(shè)備?

    DS1315隱含時鐘芯片技術(shù)手冊

    DS1315幻象時間芯片集成了CMOS計(jì)時器和非易失性存儲控制。在沒有電源的情況下,外部電池可維持計(jì)時操作并為CMOS靜態(tài)RAM提供電源。該計(jì)時
    的頭像 發(fā)表于 02-28 10:23 ?603次閱讀
    DS1315隱含時鐘芯片技術(shù)手冊

    XMC1402-F064X0128AA——基于 ARM? Cortex?-M 的32位工業(yè)微控制

    - 5.5 V 核心頻率:48[MHZ] 外設(shè)計(jì)時器:96 [MHZ] CORDIC 和 HW 劃分的 MATH 協(xié)同處理 16 x 16 位專用計(jì)時器,死區(qū)時間產(chǎn)生 2 x 霍爾傳感
    發(fā)表于 02-22 17:42

    延時繼電器的工作原理和接線方法

    能源消耗、保護(hù)電氣設(shè)備、安全穩(wěn)定運(yùn)行。 工作原理 延時繼電器的工作原理基于一個或多個可調(diào)的計(jì)時器電路,以及與繼電器相連的控制電路。其核心部件包括計(jì)時器電路和繼電器電路。計(jì)時器電路通常由電容器和電阻
    的頭像 發(fā)表于 02-07 16:09 ?2278次閱讀

    斷電延時繼電器的應(yīng)用

    延時繼電器作為一種重要的電氣控制元件,在現(xiàn)代電氣系統(tǒng)中發(fā)揮著不可或缺的作用。其基于一個或多個可調(diào)的計(jì)時器電路,通過與繼電器相連的控制電路,實(shí)現(xiàn)了在電路中定時閉合或斷開控制的功能。 一、工作原理 延時
    的頭像 發(fā)表于 02-07 16:07 ?1587次閱讀

    EE-109:ADSP2106x:使用2106x SPORT作為計(jì)時器

    電子發(fā)燒友網(wǎng)站提供《EE-109:ADSP2106x:使用2106x SPORT作為計(jì)時器.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:11 ?0次下載
    EE-109:ADSP2106x:使用2106x SPORT作為<b class='flag-5'>計(jì)時器</b>

    看門狗定時的工作原理

    看門狗定時是一種獨(dú)立的計(jì)時器硬件模塊,其核心功能是倒計(jì)時。如果系統(tǒng)軟件在計(jì)時器超時前沒有對其進(jìn)行復(fù)位操作(即“喂狗”),看門狗將觸發(fā)一個預(yù)定義的動作,通常是系統(tǒng)復(fù)位或中斷。
    的頭像 發(fā)表于 10-21 14:18 ?1741次閱讀
    看門狗定時<b class='flag-5'>器</b>的工作原理