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

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

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

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

如何使用三個(gè)4位7段顯示制作學(xué)校倒計(jì)時(shí)日歷

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

掃碼添加小助手

加入工程師交流群

步驟1:4位7段顯示

明顯的出發(fā)點(diǎn)是熟悉4位7段顯示器。這些單元來(lái)自我們?yōu)榻淌沂褂枚?gòu)買(mǎi)的一些Elegoo stater套件,但最有可能與您在上圖中看到的部件一起購(gòu)買(mǎi)。除了上面的物理設(shè)備圖像,您還可以看到該設(shè)備的引腳和原理圖。將Arduino編程為單獨(dú)的顯示字符非常簡(jiǎn)單,但是要同時(shí)顯示整個(gè)單詞或數(shù)字是有趣的。與任何7段顯示一樣,可以通過(guò)打開(kāi)字母段的不同組合來(lái)顯示數(shù)字和一些字符;使用4位7段單元的扭曲是每個(gè)數(shù)字的所有單個(gè)段都連接在一起,每個(gè)數(shù)字只有它自己的共用陰極或陽(yáng)極單獨(dú)控制。實(shí)際上,使這些單元顯示單詞或數(shù)字的唯一方法仍然是一次一位數(shù);然而,數(shù)字的開(kāi)啟和關(guān)閉速度都很快,以至于人眼看起來(lái)一直都在。

第2步:理解(和使用)Arduino端口

為了避免使用數(shù)以千計(jì)的“digitalWrite”命令打開(kāi)和關(guān)閉我需要的所有組合,我決定熟悉Arduino上端口的使用平臺(tái)。使用此命令(例如:PORTA = B01110101;)可以同時(shí)打開(kāi)和關(guān)閉8個(gè)數(shù)字I/O引腳,其中1表示等于向該引腳寫(xiě)入“高電平”,0表示與寫(xiě)入“低電平”相同到針。每個(gè)端口對(duì)應(yīng)Arduino上的8個(gè)引腳,可以用二進(jìn)制(我使用的)或十六進(jìn)制寫(xiě)入。一個(gè)簡(jiǎn)單的例子是上面的引腳輸出中顯示的Arduino Mega上的端口F和K,PORTF對(duì)應(yīng)于模擬引腳A0-A7和PORTK,對(duì)應(yīng)于模擬引腳A8-A15。非常感謝Adafruit社區(qū)在這個(gè)壯觀的引腳上的工作!

第3步:全力以赴

雖然上面的圖片很難看,但我決定未來(lái)編程的最合理布局是將每個(gè)4位7段分成上半部分和下半部分,然后將每一半分配給特定端口。這將允許我輕松查看我需要的數(shù)字,然后使用二進(jìn)制輸出打開(kāi)相應(yīng)的段到相關(guān)端口。使用port命令的十六進(jìn)制版本會(huì)使每個(gè)命令(實(shí)際上是命令調(diào)用的2D數(shù)組)更短但在布局代碼時(shí)看起來(lái)更容易看到高/低組合而不是必須以十六進(jìn)制轉(zhuǎn)換那些相同的組合,即使代碼從長(zhǎng)遠(yuǎn)來(lái)看會(huì)更緊湊。為了幫助完成這個(gè)過(guò)程,我創(chuàng)建了一個(gè)圖表來(lái)顯示哪些數(shù)字/段與哪個(gè)端口分配相關(guān)聯(lián)。您還可以在上圖中看到,通過(guò)每個(gè)數(shù)字的共陰極引腳實(shí)現(xiàn)限流,而不是限制每個(gè)單獨(dú)的電流

步驟4:代碼 - CountUpDownTimer

在幾次嘗試運(yùn)行一系列嵌套for循環(huán)以控制時(shí)序和顯示失敗后,我開(kāi)始研究適用于Arduino的并行處理。最后我遇到了一個(gè)名為“CountUpDownTimer”的預(yù)先存在的庫(kù),可以在這里找到Arduino Playgound。該庫(kù)在后臺(tái)為您執(zhí)行計(jì)時(shí),允許您在需要時(shí)撥打小時(shí),分鐘和秒。然后將這些值作為參數(shù)傳遞給一個(gè)數(shù)組,該數(shù)組打開(kāi)適當(dāng)?shù)亩我燥@示相應(yīng)的數(shù)字。唯一的復(fù)雜因素(除了創(chuàng)建數(shù)組 - 下一步更多)是我必須修改庫(kù)以添加“ShowDays”方法,該方法不是原始代碼的一部分。

#include

CountUpDownTimer T(DOWN, HIGH); //Create the timer object void setup(){

//Setting all digital pins as outputs

for (int i=3; i《=53; i++)

pinMode(i, OUTPUT);

//Setting all analog pins as outputs

for (int a=A0; a《=A15; a++)

pinMode(a, OUTPUT);

T.SetTimer(52,07,17,00); // (days, hours, minutes, seconds)

T.StartTimer();

} void loop() {

T.Timer();

int stepDelay = 50;

long sm = T.ShowMinutes();

long sh = T.ShowHours();

long sd = T.ShowDays();

for(int c = 0; c 《 4; c++){

PORTB = upperArray[sm][c];

PORTL = lowerArray[sm][c];

PORTA = upperArray[sh][c];

PORTC = lowerArray[sh][c];

PORTF = upperArray[sd][c];

PORTK = lowerArray[sd][c];

delayMicroseconds(stepDelay);

}

}

步驟5:代碼 - 2D數(shù)組

驅(qū)動(dòng)端口的值被放置在一個(gè)單獨(dú)的2D陣列中,該陣列分成兩半,一個(gè)用于顯示器的上半部分,另一個(gè)用于下半部分。部分。端口分配基于顯示器的引腳,每列代表相應(yīng)的數(shù)字。這里的關(guān)鍵是將高點(diǎn)和低點(diǎn)的適當(dāng)組合應(yīng)用于每個(gè)連續(xù)數(shù)字的各個(gè)段和適當(dāng)?shù)墓碴帢O。 2D陣列長(zhǎng)270行,占整個(gè)學(xué)年,四列寬,每個(gè)顯示四位數(shù)。盡管小時(shí)和分鐘從不調(diào)用陣列的大多數(shù),但使用相同的結(jié)構(gòu)來(lái)驅(qū)動(dòng)這些顯示器而不是每個(gè)部分的自定義陣列似乎更容易。上半部分和下半部分的前幾行如下所示。我還創(chuàng)建了您在上面看到的圖表,顯示哪些端口輸出與哪些段相對(duì)應(yīng),以最大限度地減少錯(cuò)誤并保持理智。

byte upperArray[270][4]

{B00011111,B00111011,B00111101,B00111111}, //00u

{B00011111,B00111011,B00111101,B00100111}, //01u

{B00011111,B00111011,B00111101,B00110111}, //02u

{B00011111,B00111011,B00111101,B00110111}, //03u

{B00011111,B00111011,B00111101,B00101111}, //04u

{B00011111,B00111011,B00111101,B00111110}, //05u

{B00011111,B00111011,B00111101,B00111110}, //06u

{B00011111,B00111011,B00111101,B00110111}, //07u

{B00011111,B00111011,B00111101,B00111111}, //08u

{B00011111,B00111011,B00111101,B00111111}, //09u

{B00011111,B00111011,B00100101,B00111111}, //10u byte lowerArray[270][4]{

{B00110101,B00110101,B00110101,B00110100}, //00

{B00110101,B00110101,B00110101,B00000100}, //01

{B00110101,B00110101,B00110101,B00110010}, //02

{B00110101,B00110101,B00110101,B00010110}, //03

{B00110101,B00110101,B00110101,B00000110}, //04

{B00110101,B00110101,B00110101,B00010110}, //05

{B00110101,B00110101,B00110101,B00110110}, //06

{B00110101,B00110101,B00110101,B00000100}, //07

{B00110101,B00110101,B00110101,B00110110}, //08

{B00110101,B00110101,B00110101,B00010110}, //09

{B00110101,B00110101,B00000101,B00110100}, //10

步驟6:LCD屏幕 - 后想法

我最初并不想包括靜態(tài)顯示倒計(jì)時(shí)的日期/時(shí)間結(jié)束的LCD屏幕;然而,當(dāng)我為該項(xiàng)目購(gòu)買(mǎi)BASE時(shí),有一個(gè)大小與小面包板大小相當(dāng)?shù)拈_(kāi)放空間,因此它似乎是該項(xiàng)目的合理添加。該顯示器是標(biāo)準(zhǔn)的16x2單色白色藍(lán)色顯示屏,也來(lái)自Elegoo套件。除了數(shù)據(jù)和控制線的附加布線外,代碼修改也很簡(jiǎn)單;我添加了預(yù)處理器功能,包括庫(kù)和定義用于每個(gè)所需連接的引腳,以及在void設(shè)置中顯示靜態(tài)消息的代碼,這樣只運(yùn)行一次而不影響時(shí)序計(jì)數(shù)器。兩種修改如下所示:

#include

const int rs = 17, en = 16, d4 = 21, d5 = 20, d6 = 19, d7 = 18;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7); lcd.begin(16, 2);

lcd.setCursor(0, 0);

lcd.print(“Countdown Ends:”);

lcd.setCursor(0, 1);

lcd.print(“5/30/19 @ 3:10pm”);

第7步:結(jié)論 - 問(wèn)題和教訓(xùn)

這個(gè)項(xiàng)目中有問(wèn)題的部分是迄今為止繁瑣的部分。首先,在硬件方面,使得所需的40多條數(shù)據(jù)線的布線看起來(lái)很整潔;接下來(lái)是2D陣列的創(chuàng)建,它包含顯示正確數(shù)字所需的高低組合。我必須做的一個(gè)小的硬件修改是調(diào)整我在每個(gè)顯示器的第四個(gè)數(shù)字上使用的限流電阻的大小;由于時(shí)間(并假設(shè)視覺(jué)的持續(xù)性),數(shù)字總是比其他數(shù)字亮一點(diǎn),所以我增加該值,直到所有四位數(shù)的外觀看起來(lái)均勻。我確信通過(guò)某種時(shí)間共享或多路復(fù)用可能有一種更優(yōu)雅的方式來(lái)實(shí)現(xiàn)這一目標(biāo),但我從經(jīng)驗(yàn)中學(xué)到了很多東西,并意識(shí)到我剛剛開(kāi)始劃清我們所說(shuō)的這個(gè)神奇工具的表面“ Arduino“能夠完成。

聲明:本文內(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í)序設(shè)計(jì)

    關(guān)注

    0

    文章

    21

    瀏覽量

    44084
  • Arduino
    +關(guān)注

    關(guān)注

    190

    文章

    6508

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    廣汽集團(tuán)創(chuàng)新科技產(chǎn)品護(hù)航重大體育賽事

    近日,第十五屆全國(guó)運(yùn)動(dòng)會(huì)開(kāi)幕式迎來(lái)倒計(jì)時(shí)50天,“廣汽賽事用車交付暨十五運(yùn)會(huì)倒計(jì)時(shí)50天活動(dòng)”在廣汽集團(tuán)番禺總部舉行。活動(dòng)上,廣汽集團(tuán)被十五運(yùn)會(huì)和殘?zhí)貖W會(huì)執(zhí)委會(huì)授予“官方合作伙伴”牌匾。
    的頭像 發(fā)表于 09-25 14:10 ?230次閱讀

    ?倒計(jì)時(shí)!米爾-安路飛龍派創(chuàng)意秀獎(jiǎng)品等您領(lǐng)~~

    創(chuàng)意秀活動(dòng)進(jìn)入倒計(jì)時(shí)階段?2025年米爾-安路飛龍派FPGAFPSoC創(chuàng)意開(kāi)發(fā)大賽即將于8月15日正式收官(原定于6月15日,已延期到8月15日)。作為國(guó)產(chǎn)工業(yè)級(jí)FPGA領(lǐng)域的賽事,本次活動(dòng)已吸引多
    的頭像 發(fā)表于 08-08 08:04 ?464次閱讀
    ?<b class='flag-5'>倒計(jì)時(shí)</b>!米爾-安路飛龍派創(chuàng)意秀獎(jiǎng)品等您領(lǐng)~~

    零知開(kāi)源——STM32F4實(shí)現(xiàn)ILI9486顯示屏UI界面系列教程(二):日歷功能實(shí)現(xiàn)

    本教程將指導(dǎo)您在STM32F4平臺(tái)上實(shí)現(xiàn)一個(gè)功能完善的日歷應(yīng)用,通過(guò)ILI9486電阻觸摸屏提供直觀的日期查看和交互體驗(yàn)。該日歷應(yīng)用是智能設(shè)備UI系統(tǒng)中的核心組件,具有以下核心功能:
    發(fā)表于 06-25 17:51

    STM32驅(qū)動(dòng)碼屏,有一個(gè)14數(shù)字,有4個(gè)段位沒(méi)有顯示是怎么回事?

    背景:STM32L433驅(qū)動(dòng)37引腳的碼,第7個(gè)數(shù)字和8個(gè)數(shù)字某些顯示。不
    發(fā)表于 06-20 06:26

    熱力再燃!2025 NEPCON China萬(wàn)人沸騰的電子制造盛宴,今日收官倒計(jì)時(shí)!

    。 NEPCON China 2025熱力再燃!六大特色專區(qū),20 + 國(guó)際品牌原廠獨(dú)家展示尖端技術(shù),30場(chǎng)論壇活動(dòng),100行業(yè)技術(shù)大咖蒞臨,百款新品首發(fā)等硬核亮點(diǎn),感受萬(wàn)人沸騰的電子制造年度盛宴。明日收官倒計(jì)時(shí)4月24日上
    發(fā)表于 04-24 11:32 ?235次閱讀
    熱力再燃!2025 NEPCON China萬(wàn)人沸騰的電子制造盛宴,今日收官<b class='flag-5'>倒計(jì)時(shí)</b>!

    正點(diǎn)原子ND1核輻射檢測(cè)儀支持檢測(cè)x,γ,β射線的輻射強(qiáng)度,高靈敏度J321蓋革-米勒計(jì)數(shù)管,支持約100萬(wàn)個(gè)輻射值記錄!

    ,使用高靈敏度J321蓋革-米勒計(jì)數(shù)管,支持檢測(cè)x射線,γ射線,β射線的輻射強(qiáng)度。集成溫濕度檢測(cè),時(shí)鐘日歷,鬧鐘,倒計(jì)時(shí)功能。 適用范圍廣,功能豐富,一機(jī)多用,可玩性高;深圳計(jì)量院校準(zhǔn)證書(shū),權(quán)威機(jī)構(gòu)檢測(cè)認(rèn)證
    發(fā)表于 04-15 11:09

    無(wú)錫太湖機(jī)床展倒計(jì)時(shí)!高端制造 筑夢(mèng)之展

    無(wú)錫機(jī)床展倒計(jì)時(shí)!2025年2月26-3月1日,第 45 屆無(wú)錫太湖國(guó)際機(jī)床及智能工業(yè)裝備產(chǎn)業(yè)博覽會(huì)(簡(jiǎn)稱:無(wú)錫太湖機(jī)床展)將在無(wú)錫太湖國(guó)際博覽中心迎來(lái)開(kāi)春首展!
    的頭像 發(fā)表于 02-22 17:44 ?458次閱讀
    無(wú)錫太湖機(jī)床展<b class='flag-5'>倒計(jì)時(shí)</b>!高端制造 筑夢(mèng)之展

    倒計(jì)時(shí)8天! 免費(fèi)開(kāi)發(fā)板申領(lǐng)即將截止|2025 Matter 應(yīng)用開(kāi)發(fā)比賽

    ?倒計(jì)時(shí)8天! 2025 Matter應(yīng)用開(kāi)發(fā)比賽 免費(fèi)開(kāi)發(fā)板申領(lǐng)即將截止 ? “讓你的智能設(shè)備能無(wú)縫接入蘋(píng)果、谷歌、亞馬遜的生態(tài)系統(tǒng),而這一切只需一個(gè)協(xié)議——這就是Matter的力量
    發(fā)表于 02-21 14:56 ?328次閱讀
    <b class='flag-5'>倒計(jì)時(shí)</b>8天! 免費(fèi)開(kāi)發(fā)板申領(lǐng)即將截止|2025 Matter 應(yīng)用開(kāi)發(fā)比賽

    AI80C51U倒計(jì)時(shí)

    AI80C51U倒計(jì)時(shí)
    的頭像 發(fā)表于 01-10 11:41 ?663次閱讀

    倒計(jì)時(shí)無(wú)線遙控開(kāi)關(guān)生產(chǎn)多快好省改進(jìn)案例

    倒計(jì)時(shí)無(wú)線遙控開(kāi)關(guān)是奧柯電子獨(dú)立研發(fā)的一款用于農(nóng)用潛水泵灌溉的產(chǎn)品,它采用單片機(jī)自主編程,數(shù)據(jù)傳輸穩(wěn)定,單鍵學(xué)碼方便快捷。可設(shè)置0-999分鐘之間延時(shí)自動(dòng)關(guān)斷,可使用在水泵抽水控制、大型燈具
    的頭像 發(fā)表于 12-24 16:44 ?661次閱讀
    <b class='flag-5'>倒計(jì)時(shí)</b>無(wú)線遙控開(kāi)關(guān)生產(chǎn)多快好省改進(jìn)案例

    系統(tǒng)化課程體系——2天倒計(jì)時(shí)

    ??開(kāi)課倒計(jì)時(shí)2天!?????COURSEINTRODUCTION??課程介紹???01EMC基礎(chǔ)-EMC(電磁兼容性)確保產(chǎn)品不受電磁干擾(EMI),并避免能量泄露至其他設(shè)備。EMC設(shè)計(jì)的
    的頭像 發(fā)表于 12-16 09:52 ?724次閱讀
    系統(tǒng)化課程體系——2天<b class='flag-5'>倒計(jì)時(shí)</b>!

    掌握EMC核心知識(shí)——7倒計(jì)時(shí)!

    賽盛技術(shù)第九期“EMC實(shí)戰(zhàn)特訓(xùn)營(yíng)“開(kāi)課倒計(jì)時(shí)7天”!本期課特訓(xùn)營(yíng)將于12月18日正式開(kāi)課,課程涵蓋電磁兼容(EMC)領(lǐng)域的核心知識(shí)。四資深講師主講,團(tuán)隊(duì)經(jīng)驗(yàn)累計(jì)超過(guò)70年,并結(jié)合賽盛技術(shù)公司19年
    的頭像 發(fā)表于 12-11 09:40 ?737次閱讀
    掌握EMC核心知識(shí)——<b class='flag-5'>7</b>天<b class='flag-5'>倒計(jì)時(shí)</b>!

    51單片機(jī)交通燈仿真

    交通燈直行控制,倒計(jì)時(shí)時(shí)間可調(diào)。資料包含程序源碼和proteus8.6仿真
    發(fā)表于 11-28 14:15 ?15次下載

    VK1616 7x4 LED顯示驅(qū)動(dòng)芯片中文手冊(cè)

    VK1616 是 1/5~1/8 占空比的 LED 顯示控制驅(qū)動(dòng)電路。具有 7輸出、4 根柵輸出,是一個(gè)
    發(fā)表于 11-11 14:36 ?0次下載

    TLV320ADC3101使用的時(shí)候ADC工作的順序是怎么樣的?是ADC三個(gè)通道輪流打開(kāi)輪流使用ADC嗎?

    通道輪流打開(kāi)輪流使用ADC嗎? 抽取濾波器在每個(gè)WCLK時(shí)鐘內(nèi)向串行數(shù)據(jù)接口傳輸32的數(shù)據(jù),這32數(shù)據(jù)是三個(gè)麥克風(fēng)的轉(zhuǎn)換結(jié)果嗎?該如何區(qū)分這些數(shù)據(jù)里哪一來(lái)源于哪個(gè)麥克風(fēng)呢?在co
    發(fā)表于 10-22 07:23