今天,我將向您展示如何構(gòu)建字幕時鐘。它基本上是一個使用文字顯示時間的時鐘。我還將向您展示如何使用微控制器來使用移位寄存器和RTC。 移位寄存器可以非常方便,如果你在微控制器中耗盡引腳,那么了解它們是一件好事。
不要再等了,直接進入它。
第1步:了解所有步驟
第2步:獲取所需的部件。
74HC595移位注冊:
DS3231 RTC:
步驟3:測試移位寄存器。
有四種移位寄存器 - 串并輸出(SIPO), SISO,PISO和PIPO。
我們將使用74HC595這是一個8位的SIPO移位寄存器,這意味著它需要8位串行數(shù)據(jù),并將其轉(zhuǎn)換為8位并行數(shù)據(jù)。您可能想知道我們?yōu)槭裁葱枰莆患拇嫫鳌W屛覀儊砜纯础?Uno有14個數(shù)字I/O引腳和6個模擬輸入引腳。即使在組合它們之后,我們也只有20個引腳,其中并非所有引腳都能輸出。這就是問題所在,因為我們將在這個項目中使用大量的LED。
移位寄存器消耗的微控制器引腳數(shù)量非常少,在這種特殊情況下為3,并且可以用它來控制大量的LED,在這種情況下,這是8。那不是它。該移位寄存器也可以與另一個移位寄存器進行菊花鏈連接,以控制更多的LED,第二個移位寄存器可以與下一個移位寄存器進行菊花鏈連接,依此類推。我想說的只是使用三個引腳,你可以控制很多很多數(shù)字設(shè)備。
參見移位寄存器的引腳圖。引腳號1到7以及引腳15是并行輸出數(shù)據(jù)。
引腳14 - 也稱為串行輸入,引腳12 - 也稱為鎖存器,引腳11 - 又稱時鐘,是我所談到的控制引腳。
引腳10稱為串行清零,用于清除移位寄存器的輸出,在整個項目中保持高電平;名為輸出使能的引腳13,顧名思義,使能輸出,保持低電平。
引腳9用于菊花鏈并連接到下一個74595。
讓我們看看工作情況。在發(fā)送串行數(shù)據(jù)之前,鎖存器被拉低。然后逐個發(fā)送8位中的每一位。移位寄存器通過檢查時鐘引腳的狀態(tài)確定新數(shù)據(jù)即將到來,如果時鐘引腳為高電平,則數(shù)據(jù)為新數(shù)據(jù)。當(dāng)所有位完全發(fā)送時,鎖存器被拉高以實際反映8個輸出引腳中的數(shù)據(jù)。
要在Arduino IDE中執(zhí)行所有這些操作,有一個名為shift out的函數(shù)有四個參數(shù)(見圖)。前兩個是自解釋,第四個是8位串行數(shù)據(jù),這里用二進制格式寫。如果第三個參數(shù)是MSB優(yōu)先,那么串行數(shù)據(jù)的MSB將首先被發(fā)送,并且實際上將反映在剩余數(shù)據(jù)之前的寄存器的‘Qh’中,如果第三個參數(shù)是LSB優(yōu)先,則LSB將是引腳‘Qh’中顯示。
現(xiàn)在這個移位寄存器的電流輸出能力僅為每個引腳20 mA,我們將需要更多,這就是ULN2803的用武之地。
如果你想測試移位寄存器的功能,我在這個草圖中附上了一個草圖和圖片,只需施加電源,將引腳11,12和14連接到Arduino的任何數(shù)字引腳并上傳草圖。請參閱視頻以便更好地理解。
步驟4:設(shè)置RTC的日期和時間。
我像其他任何I2C設(shè)備一樣將RTC連接到Arduino (SDA到A4和SCL到A5),以及應(yīng)用電源。然后我打開了此步驟中附加的草圖,并通過參考其上方的注釋行設(shè)置“setDS3231time”的參數(shù),以設(shè)置RTC的正確日期和時間。然后我取消注釋該行并將程序上傳到Arduino。在沒有斷開任何連接的情況下,我再次評論該線路并將草圖上傳到Arduino?,F(xiàn)在斷開RTC的電源,保持一兩分鐘,再次連接到Arduino,然后打開串行監(jiān)視器。如果顯示器上顯示的日期和時間正確,則表示RTC工作正常。
步驟5:制作電路板。
此步驟附有連接圖。您可以手工焊接或訂購PCB。這一切都取決于你。我訂購了PCB,因為我曾經(jīng)手工焊接過PCB,而且它的使用時間很長,底部也非常笨拙。
我從JLCPCB訂購了我的PCB。
原理圖鏈接和PCB:https://easyeda.com/Tesalex/Word_Clock_copy-c7c7a7.。.
第6步:準(zhǔn)備LED。
1。用3V電池檢查所有LED。
2。切掉LED的頂部。
3??s短LED的電阻和陽極(長腿)的一條腿。
4。將電阻短路和陽極焊接在一起。
對要使用的所有LED執(zhí)行此操作。
步驟7:構(gòu)建主干和最終測試。
LED完成后,我從一個尺寸為8x8英寸的器具包裝中取出紙板。
我在白色上打印了這個步驟附帶的模板紙和透明紙上的兩份副本,因為墨水有點輕。
現(xiàn)在我將模板切成實際尺寸,然后用膠水粘在紙板上。在此之后,我根據(jù)字的長度為LED打孔,以便在LED發(fā)光時它們看起來不暗。然后我拿了4根實心銅線,將它們粘在兩排LED之間。然后我將LED推入孔中,保持電阻器靠近銅線。在此之后,我將電阻器焊接到銅線上并將相同字的LED的陰極焊接在一起。然后我切掉了多余的導(dǎo)線。
現(xiàn)在我拿了三條帶狀電纜,每根電線有8根電線,一端焊接公頭,另一端焊接到LED上。然后這些標(biāo)題將轉(zhuǎn)到PCB的母頭。但是哪根線會被焊接成什么字?根據(jù)我編寫的程序,連接此步驟的是連接頭的連接順序。因此,標(biāo)題1的第一個線應(yīng)該轉(zhuǎn)到二十五,二到三十,第二個標(biāo)題的第一個線到一個,依此類推。
現(xiàn)在您將注意到最后4個標(biāo)題未連接到任何事情你可能會注意到背面的銅線必須焊接到5伏特。所以,我將它們?nèi)靠s短并將它們連接到最后一個標(biāo)題,如果你還記得也將最后一個母標(biāo)題連接到Vcc或5伏特。 “it is”和“o‘clock”這個詞必須始終打開,因此我將它們焊接到接頭的第二個引腳上,然后在PCB上將它接地。最后,“分鐘”字并不總是打開,并且也需要控制,所以我把它焊接到第三個插頭的第五個引腳,這就是為什么我們將引腳3縮短到第五個母頭,同時將PCB組裝為引腳3控制我寫的程序中的單詞分鐘。
話雖如此,現(xiàn)在是時候通過連接各自位置的標(biāo)題檢查功能,將草圖上傳到Arduino和施加5伏特,我的工作很好。我快速將DC桶形連接器焊接到電源引腳上,因為我將使用5伏適配器,否則我會使用7805,我已經(jīng)在PCB上留下了一個空間。
步驟8:去除輕度出血。
用于消除輕微出血換句話說,我使用了1厘米高的紙板片,并在每個單詞之間用一些熱膠粘住它。我從中心開始然后一路走來。在此之后,我測量并切割每個地方的紙板,然后再用兩滴熱膠粘貼它。
步驟9:將所有物品放入機箱中。
我用內(nèi)徑為8x8英寸的12毫米MDF制作了一個外殼,并確保紙板完美貼合。我還剪了一個適合大小的亞克力板,請記住,這次,它一定不能太厚。我附上了丙烯酸板材,并在外殼的一側(cè)為桶形千斤頂打了一個孔。
現(xiàn)在我通過移除角落將每個乙烯基塑料帶到尺寸,然后將它們堆疊在一起并裝上它們兩個相反的方面。在黑膠唱片的背面,我用不透明的膠帶貼上沒用的字樣。
然后我把膠水放到了外殼上,還有我準(zhǔn)備好的紙板和電源,一切看起來
我從角落切下一塊紙板,以便在需要時可以輕松將其取下。
幾點變化(非必要):
我將電源線更換為更厚的規(guī)格,以便它可以輕松承載所需的電流,并使用母頭(推薦)連接RTC,因為它有時需要更改日期和時間。如果需要,你可以添加熱膠將紙板固定到位,但是即使在地震中我也有足夠的摩擦力。
步驟10:完成。
-
時鐘
+關(guān)注
關(guān)注
10文章
1733瀏覽量
131474 -
Arduino
+關(guān)注
關(guān)注
188文章
6469瀏覽量
187037
發(fā)布評論請先 登錄
相關(guān)推薦
評論