步驟1:讀取BCD二進(jìn)制時(shí)鐘
所描述的時(shí)鐘使用二進(jìn)制編碼的十進(jìn)制(bcd)顯示方法,首先進(jìn)行描述。在這種方法中,時(shí)間的每個(gè)數(shù)字都被隔離并顯示為二進(jìn)制數(shù)。例如,一分鐘的37分鐘顯示為0000 0011(二進(jìn)制3)和0000 0100(二進(jìn)制7)。
每個(gè)分段的每個(gè)數(shù)字(小時(shí),分鐘,秒)占據(jù)一列。空白列分隔每個(gè)對(duì),則使用8列。有時(shí)候事情不是很整潔嗎?
步驟2:所需的設(shè)備
我使用了Nano,因?yàn)槲铱梢詫⑺袞|西都放在一塊面包板上。我購(gòu)買了一個(gè)品牌外的產(chǎn)品。
顯示
一個(gè)MAX 72xx LED矩陣分支板。請(qǐng)注意,MAX72xx引腳可能因型號(hào)而異,請(qǐng)檢查)。
我顛倒安裝了地雷,因此在其控制引腳上使用了公母跳線。
I2C DS3231實(shí)時(shí)時(shí)鐘(RTC)轉(zhuǎn)接板。
電源,地線和兩條信號(hào)線。
小面包板。
我將所有東西都擠在了400針板上。
用于Arduino的電池或交流適配器(未顯示)。
第3步:接線
MAX72xx的五個(gè)引腳根據(jù)ledControl庫(kù)頁(yè)面進(jìn)行接線。我的7219的針腳順序與所述的不同。
VCC-+ 5V
GND--接地
DIN(數(shù)據(jù)輸入)-D10
CS(在庫(kù)中稱為“ LOAD”。)-D11
CLK(時(shí)鐘)-D12
時(shí)鐘已連接到I2C引腳(檢查您的Arduino模型)。對(duì)于Nano 。..
VCC-+ 5V
GND--接地
SCL--模擬5
步驟4:關(guān)于算法的注釋
LED矩陣的每一列均表示一位。分離。將小時(shí),分鐘和秒轉(zhuǎn)換為兩位數(shù)是微不足道的。..
通過(guò)將小時(shí)除以10(沒(méi)有余數(shù))來(lái)將第一個(gè)數(shù)字隔離。
將第二個(gè)模塊除以10(僅余數(shù))()(僅余數(shù))。
我們點(diǎn)亮一列LED,以對(duì)應(yīng)于適當(dāng)數(shù)字的二進(jìn)制表示形式。為此,我們使用ledcontrol.h庫(kù)的setRow()函數(shù),該函數(shù)需要三個(gè)參數(shù)
矩陣編號(hào)(每個(gè)實(shí)例庫(kù)最多可處理8個(gè))。計(jì)數(shù)從0開(kāi)始,這就是本草圖中使用的數(shù)字,因?yàn)槲覀冎挥幸粋€(gè)矩陣。
列號(hào)(從左側(cè)開(kāi)始,編號(hào)為0-7)。如所使用的,列0和1分別對(duì)應(yīng)于小時(shí)的第一位和第二位數(shù)字。
從上到下描述要打開(kāi)的LED的字節(jié)(1 = on)。
小時(shí)/分鐘/秒個(gè)位數(shù)字以十進(jìn)制整數(shù)形式返回值(即0-9)。必須使用byte()函數(shù)將它們轉(zhuǎn)換為所需的字節(jié)(二進(jìn)制)值(以編程方式來(lái)說(shuō)就是“轉(zhuǎn)換”)。
SetRow(),在我的矩陣上,將LED填充為與輸入/輸出引腳,但最低有效位(“底部”)更靠近輸出引腳-我將其顛倒安裝。 (嘗試使用您自己的矩陣LED)。請(qǐng)注意,您需要按位數(shù)學(xué)求逆順序,以便將LED矩陣右側(cè)向上安裝,如果要橫向安裝LED矩陣,請(qǐng)使用SetColumn函數(shù)。
第5步:草圖
第6步:改進(jìn)和注釋
構(gòu)建并運(yùn)行起來(lái)后,我發(fā)現(xiàn)令人驚訝的是,顯示屏的體積很小,這當(dāng)然是LED矩陣尺寸的函數(shù)。
我有一個(gè)座鐘,如果可以找到一個(gè)便宜的鐘表的話,我會(huì)拉出馬達(dá)外殼,用一圈煙熏玻璃或丙烯酸玻璃代替鐘面。 (我將嘗試在當(dāng)?shù)氐淖詣?dòng)窗戶著色處停下來(lái)并要求報(bào)廢)。因此,LED矩陣的電路板和芯片將隱藏起來(lái)。另一個(gè)可能的方法是切割一個(gè)染色或涂漆的木質(zhì)圓圈,以形成很好的對(duì)比度,并在其中切出一個(gè)方孔,以刺穿LED面。我懷疑我的卷軸看到了技能,因此,我需要偽造某種邊框。也許是黃銅的臉?我可以使用飛刀,立銑刀或研磨復(fù)合物在車床上制作出光滑的光潔度,或在漂亮的渦旋形圖案上進(jìn)行加工,但需要找出一種方法來(lái)在導(dǎo)孔中獲得相對(duì)直角,而立銑刀則無(wú)法實(shí)現(xiàn), -也許是縱切鋸。
目前,可以通過(guò)重新編程Arduino Nano來(lái)調(diào)整時(shí)間,這是最不切實(shí)際的。可以添加三個(gè)按鈕,每個(gè)分段分別為一個(gè)小時(shí),分鐘,秒,每個(gè)按鈕分別按小時(shí),分鐘和秒,然后按相應(yīng)的按鈕將當(dāng)前分段增加一個(gè)單位。那是最簡(jiǎn)單的編程。但是,一個(gè)按鈕會(huì)更優(yōu)雅:長(zhǎng)按進(jìn)入小時(shí)數(shù)調(diào)整模式,短按遞增,等等。
我想將草圖轉(zhuǎn)移到ATTiny85并收回我的Nano板(也更容易轉(zhuǎn)移到時(shí)鐘盒中。)
-
時(shí)鐘
+關(guān)注
關(guān)注
11文章
1879瀏覽量
132836 -
Arduino
+關(guān)注
關(guān)注
188文章
6491瀏覽量
190083 -
LED矩陣
+關(guān)注
關(guān)注
0文章
71瀏覽量
17846
發(fā)布評(píng)論請(qǐng)先 登錄
評(píng)論