資料介紹
描述
之前創(chuàng)建了一個(gè)教程 ( Binary DVM ),它利用二進(jìn)制的有限顯示區(qū)域。
之前創(chuàng)建用于十進(jìn)制到二進(jìn)制轉(zhuǎn)換的主代碼模塊以創(chuàng)建二進(jìn)制時(shí)鐘只是一小步,但唯一缺少的是 RTC(實(shí)時(shí)時(shí)鐘)。
但是,Microbit 沒有內(nèi)置 RTC。
RTC 支持使用備用電池實(shí)現(xiàn)時(shí)鐘項(xiàng)目。
因此,以下項(xiàng)目使用 Microbit 和 Kitronik RTC 創(chuàng)建具有二進(jìn)制顯示的 24 小時(shí)時(shí)鐘,并且還具有鬧鐘選項(xiàng)。
將在 Microbit 上運(yùn)行的項(xiàng)目軟件將在 Makecode Blocks 中創(chuàng)建。
補(bǔ)給品
這些用品可從多個(gè)網(wǎng)點(diǎn)購買,您可能有自己的首選供應(yīng)商。
第 1 步:定義顯示區(qū)域

盡管顯示區(qū)域在任何時(shí)候可以顯示的數(shù)據(jù)量都受到限制,但它非常適合于位數(shù)據(jù)的顯示。
因此,有足夠的區(qū)域來顯示 4 x 4 位二進(jìn)制字,以通過通知和選擇模式來表示時(shí)間。
顯示屏分為 3 個(gè)主要區(qū)域;時(shí)間、選擇和模式。
時(shí)間
16 個(gè) LED 分配給時(shí)間,每列 4 個(gè) LED 分配給一個(gè)時(shí)間間隔,間隔的形式為 H、H、M 和 M。
二進(jìn)制字的每個(gè)位的權(quán)重為 1、2、4 和 8,LSB 在第 4 行,MSB 在第 1 行。
每個(gè)二進(jìn)制 4 位字允許 0 到 15 的計(jì)數(shù),這對(duì)于 24 小時(shí)時(shí)間格式來說綽綽有余,要求每列的最大計(jì)數(shù)為 2、9、5 和 9。
選擇
第 0 行的一行 4 個(gè) LED 用于識(shí)別輸入時(shí)間時(shí)選擇的時(shí)間列。
模式
第 4 列的一列 5 個(gè) LED 用于識(shí)別模式、功能和操作。
Tick - LED 4、0 閃爍開和關(guān),用于指示秒數(shù)和操作。
時(shí)間 - LED 4、1 亮?xí)r指示時(shí)間模式。(開機(jī)默認(rèn)模式)
警報(bào) - LED 4、2 亮起時(shí)指示警報(bào)模式。
警報(bào)通知 - LED 4、3 和 LED 4、4 會(huì)在警報(bào)觸發(fā)時(shí)閃爍。
.
第 2 步:RTC(實(shí)時(shí)時(shí)鐘)

RTC 是應(yīng)用程序的跳動(dòng)心臟,允許設(shè)置和保持準(zhǔn)確的時(shí)間。
有關(guān) RTC 的更多詳細(xì)信息,請(qǐng)?jiān)L問Kitronik 。
RTC 提供穩(wěn)壓電源,無需通過自己的 USB 或 JST 連接器為 Microbit 供電,并提供備用電池以在斷電時(shí)保持時(shí)間。
在使用 RTC 之前,您需要加載擴(kuò)展包。
使用設(shè)置圖標(biāo)中的 Makecode,選擇擴(kuò)展并在搜索中鍵入 Kitronik RTC。
選擇要安裝的軟件包,它將被添加到其他擴(kuò)展中。
有許多代碼塊可以讀取和寫入 RTC。
對(duì)于二進(jìn)制時(shí)鐘,我們只需要其中的 4 個(gè)代碼塊。
這些將用于將設(shè)置的時(shí)間寫入 RTC 并讀回時(shí)間以更新時(shí)鐘顯示。
第 3 步:對(duì)時(shí)鐘進(jìn)行編碼

代碼的第一部分是變量、數(shù)組和信息文本的程序初始化。
在里面
Bclk——二進(jìn)制時(shí)鐘
>Inc – B 按鈕增加時(shí)間。
同時(shí)按下 A 和 B 按鈕可更改時(shí)間和鬧鐘之間的模式。
Strval – 是包含從 RTC 返回的“HH:MM:SS”形式的時(shí)間的字符串值
只有 HH 和 MM 用于顯示或設(shè)置時(shí)間。
Mode – 保留使用 A+B 按鈕組合選擇的 Time = 1 和 Alarm = 2 的模式值。
Period – 是時(shí)間列的值,使用 A 按鈕選擇。
0 = 第 0 列 (H), 1 = 第 1 列 (H), 2 = 第 2 列 (M), 3 = 第 3 列 (M)
Tick_en – Enables = 1 或 Disables = 0 滴答(秒)指示器。
Inc – 增量時(shí)間設(shè)置值的中間存儲(chǔ)。
Tm_list[] – 存儲(chǔ)設(shè)置期間每個(gè)時(shí)間列的值。
警報(bào) – 啟用或禁用警報(bào)指示器。
永遠(yuǎn)不斷地調(diào)用刻度函數(shù)。
打鉤
通常啟用的刻度功能在右上角顯示交替的開/關(guān) LED 以指示操作和秒數(shù)。
此外,它調(diào)用 showtm 函數(shù)讀取 RTC 并將其處理為二進(jìn)制顯示,同時(shí)還調(diào)用 alarm_mode,如果啟用,則在右下角顯示警報(bào)通知 LED。
Showtm
函數(shù) showtm,調(diào)用 rdtime 并且從中使用的值是包含時(shí)間字符串的 strval。
創(chuàng)建了一個(gè)循環(huán),該循環(huán)通過 strval 提取每個(gè)單個(gè)數(shù)字并忽略分隔符“:”而遞增。
然后使用函數(shù) dec2bin 將每個(gè)單個(gè)數(shù)字轉(zhuǎn)換為其二進(jìn)制等效項(xiàng)并分配給正確的列。
時(shí)間
函數(shù) rdtime,讀取從 RTC 返回的字符串中的前 5 個(gè)字符(忽略秒部分),并將其傳遞給 strval。
如果設(shè)置了警報(bào)(模式 = 2),則將警報(bào)設(shè)置值與 RTC 返回的值進(jìn)行比較,如果匹配,則警報(bào) = 1,如果不匹配,則警報(bào) = 0。
啟用后的 Alarm_mode 在第 4 列的右下角顯示兩個(gè)交替開/關(guān)的 LED。
Dec2bin
函數(shù) dec2bin 將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)并將其顯示在正確的列中。
需要轉(zhuǎn)換的數(shù)字通過 value 傳入,顯示列通過 col 傳入。
List2[] 是存儲(chǔ)來自二進(jìn)制轉(zhuǎn)換過程的 4 位二進(jìn)制字的數(shù)組。
啟動(dòng)一個(gè)循環(huán),繼續(xù)將該值除以 2,余數(shù)存儲(chǔ)在數(shù)組元素中,整數(shù)值除以 2,重復(fù)此操作直到整數(shù)值 <=1,并將最后一個(gè)值放入數(shù)組中。
最大的一位十進(jìn)制值是 9,在二進(jìn)制中這是 1001 作為 4 位字。
然后需要以相反的順序處理數(shù)組以獲得正確的結(jié)果。
然后啟動(dòng)一個(gè)循環(huán)以打開相應(yīng)列中的正確 LED,這是在 4 位二進(jìn)制字中每次出現(xiàn)一個(gè) 1 時(shí)完成的。
人機(jī)界面是通過按鈕完成的。
A 按鈕。
這將選擇要輸入時(shí)間值的列,并在第 4 行的所選列上顯示一個(gè)發(fā)光的 LED。
更新所有時(shí)間列后,將選擇增加到第 5 列會(huì)更新時(shí)間變量。
如果模式 = 1,則更新 RTC,否則更新鬧鐘時(shí)間。
B 按鈕
這是遞增按鈕,用于遞增選定的時(shí)間列。
為了減少錯(cuò)誤并節(jié)省獲取正確值的時(shí)間,每列可以輸入的最大值根據(jù) 24 小時(shí)制時(shí)間值設(shè)置上限。
這些最大值存儲(chǔ)在 tm_max[] 中,每個(gè)時(shí)間列一個(gè),并根據(jù)時(shí)間列自動(dòng)選擇。
最大值為 H = 2、H = 9、M = 5、M = 9
增量值在 dec2bin 中轉(zhuǎn)換為二進(jìn)制并更新顯示。
按鈕 A+B 模式選擇。
同時(shí)按下兩個(gè)按鈕可以在時(shí)間模式或警報(bào)模式之間進(jìn)行選擇,相應(yīng)的模式將顯示在顯示屏上。
根據(jù)選擇的模式,顯示屏?xí)乱燥@示時(shí)間或警報(bào)設(shè)置時(shí)間。
第四步:操作

將 Hex 文件下載到 Microbit,將 CR2032 電池插入 RTC。
將 Microbit 插入 RTC 并通過 USB 或螺絲端子為 RTC 板供電。
Tick LED 將開始閃爍,此后不久將顯示時(shí)間。
如果這是第一次使用,顯示的時(shí)間很可能是錯(cuò)誤的,需要設(shè)置為正確的時(shí)間。
模式選擇。
同時(shí)按下選擇 (A) 和增量 (B) 按鈕將允許在時(shí)間和警報(bào)之間循環(huán)模式選項(xiàng)。
設(shè)置時(shí)間
時(shí)間設(shè)置為 24H 模式。
使用選擇按鈕 (A) 將 LED 移動(dòng)到頂行,這表示可以更改時(shí)間的列。選擇列對(duì)應(yīng)于 H、H、M 和 M。
其中 H = 小時(shí),M = 分鐘。
選擇一列后,按遞增按鈕 (b),每按一次重復(fù)以將計(jì)數(shù)遞增一。計(jì)數(shù)以二進(jìn)制表示,畢竟它是一個(gè)二進(jìn)制時(shí)鐘。
增量按鈕只會(huì)增加計(jì)數(shù),一旦達(dá)到最大值就會(huì)重置為零,進(jìn)一步按下將再次增加計(jì)數(shù)。
設(shè)置第一列時(shí)間后,按下下一列的選擇按鈕,然后使用增量按鈕設(shè)置列時(shí)間。
注意:*** 當(dāng)您設(shè)置時(shí)間或鬧鐘時(shí),您需要在所選列中輸入時(shí)間,即使列中的時(shí)間保持不變,因?yàn)樘^一列會(huì)將該列時(shí)間設(shè)置為零 ****
重復(fù)該過程,直到使用所有 4 列設(shè)置時(shí)間。
第五次按下選擇按鈕,將其移動(dòng)到第五列,時(shí)間就設(shè)置好了。
設(shè)置鬧鐘
設(shè)置鬧鐘時(shí)間的方式與設(shè)置時(shí)間完全相同。
為了在所需時(shí)間觸發(fā)警報(bào),請(qǐng)將模式設(shè)置為警報(bào)。
要關(guān)閉警報(bào),請(qǐng)將模式設(shè)置為時(shí)間。
要顯示設(shè)置的鬧鐘時(shí)間,請(qǐng)?jiān)跁r(shí)間和鬧鐘之間循環(huán)模式,鬧鐘時(shí)間將顯示一小段時(shí)間,然后恢復(fù)顯示當(dāng)前時(shí)間。
鬧鐘時(shí)間不存儲(chǔ)在 RTC 中,因此如果斷電,則需要重新設(shè)置。
第5步:裝箱

該項(xiàng)目將坐在適當(dāng)?shù)慕嵌扔^看時(shí)鐘,但一個(gè)盒子增加了一種永恒感。
您可以購買一個(gè)大小合適的盒子,然后在適當(dāng)?shù)膮^(qū)域切割和鉆出,以使 Microbit 能夠安裝在插座中。
然而; 此外,我想復(fù)制 Microbit 按鈕以及其他控件和指示器。
通常,需要將圖例應(yīng)用于框以識(shí)別按鈕。
這些可以用手涂抹;涂漆、雕刻或應(yīng)用標(biāo)簽。
實(shí)現(xiàn)所有這些選項(xiàng)的一種方法是 3D 打印盒子,但首先我們需要?jiǎng)?chuàng)建一個(gè) CAD 文件來創(chuàng)建打印機(jī)文件。
文件創(chuàng)建選項(xiàng)是手繪或使用代碼繪制的。
我選擇使用Tinkercad CodeBlocks “用代碼繪制”
Box Lid和Box Base的文件可以在 Tinkercad CodeBlocks 上找到
第 6 步:塊代碼設(shè)計(jì)

盒子是由底座和蓋子組成的兩部分設(shè)計(jì)。
四個(gè)角螺絲孔將用于固定蓋子,左側(cè)有一個(gè)切口,以便插入 USB 插頭。
蓋子將有一個(gè)用于 Microbit 連接器和所需開關(guān)的切口,此外,任何文本都將直接打印在蓋子上,螺絲孔將與基柱對(duì)齊。
RTC 板將通過 4 個(gè)支柱和 4 個(gè)螺釘固定在蓋子的底部。
盒子加蓋子的尺寸是 70 x 105 x 31 mm
蓋子和底座的代碼可在 TinkerCad 代碼塊中找到。
第 7 步:3D 打印
將文件加載到 Cura 并應(yīng)用您喜歡的切片器設(shè)置。
應(yīng)用的設(shè)置。
質(zhì)量:0.15mm
填充物:80%,三六邊形
底座:邊緣
保存文件然后打印。
使用 Cura,您可以將兩個(gè)文件一起加載到同一打印區(qū)域并一次性打印。
第 8 步:填充
盒蓋印有凹槽文字,將填充彩色 2 部分環(huán)氧樹脂。
將樹脂以 2 份樹脂與 1 份硬化劑的比例混合,然后混入不透明的彩色顏料。
選擇的顏色是黃色以與背景形成對(duì)比。白色將是另一種選擇。
混合后,使用雞尾酒棒將樹脂滴入凹槽中,以轉(zhuǎn)移用于逐漸填充字母凹槽的小樹脂團(tuán)。
不要一次性加入過多的樹脂,因?yàn)槟罱K可能會(huì)產(chǎn)生氣泡,或者在周圍表面產(chǎn)生過多的溢出,這意味著一旦固化,您將需要進(jìn)行更多的清理和打磨。
所以慢慢填充,確保字母的底部被覆蓋,并用輕微的凸起表面完成它。
樹脂固化后,需要輕輕打磨以平整表面,從 P240 等級(jí)開始,根據(jù)需要逐步升級(jí)到更精細(xì)的等級(jí),以獲得光滑的飾面,最后用拋光劑完成。
不要施加太大的壓力和太快的速度,否則會(huì)使 PLA 和樹脂過熱,從而由于砂粒的吸收而導(dǎo)致表面變暗,在打磨過程中施加的少量水將起到潤(rùn)滑劑和冷卻劑的作用。
第 9 步:組裝
Microbit 將以兩個(gè)方向裝入插槽,面向 RTC 的主要部分或背對(duì)。
但是,如果面向 RTC 的主要部分,則無法使用鏈接連接,如果 Microbit 背對(duì)板的主要部分,那么我們可以使用這些連接。
組裝首先將直角 SIL 排針焊接到 RTC 上,這是為了能夠使用推入式連接器進(jìn)行連接。
RTC 由 4 * M3 (10+6mm)、M/F 支架和 M3 螺母安裝,這些螺母用 4 * M3 (8mm) 螺釘固定在預(yù)制孔中的蓋子上。
開關(guān)安裝在蓋子上的預(yù)制孔中。
所需的連接是:
GND, 3V, P1 (set), P2 (alert), P5 (sel) & P11 (inc)
注意 *** P5 和 P11 圖表上的電阻器 (1R) 只是參考連接點(diǎn),因?yàn)榇藭r(shí)無法直接連接到 Microbit in Code 塊上的這些引腳。***
P5 是按鈕 A 的外部連接,由 SPST 瞬時(shí)開關(guān)連接。一個(gè)連接到 P5,另一個(gè)引腳連接到 GND,此按鈕用于時(shí)間設(shè)置期間的列選擇。
P11 是按鈕 B 的外部連接,由 SPST 瞬時(shí)開關(guān)連接。一個(gè)連接到 P11,另一個(gè)引腳連接到 GND,他的按鈕用于在時(shí)間設(shè)置期間增加數(shù)字。
P1 是一個(gè) SPDT(on-on)開關(guān),用于啟用或禁用設(shè)置選項(xiàng)。中心引腳連接到 P1,而一個(gè)引腳通過 10k 電阻連接到 GND,另一個(gè)連接到 3V。這使得 H (3V) 和 L (0V) 能夠應(yīng)用于該引腳。當(dāng) P1 連接到 3V 時(shí),這將啟用時(shí)間設(shè)置選項(xiàng),而當(dāng) 0V 時(shí)禁用時(shí)間設(shè)置。從而控制A&B按鈕是否有任何作用。
P2 是一個(gè) SPDT(on-off-on)開關(guān),用于啟用或禁用警報(bào)發(fā)聲器和可選的外部燈。
警報(bào)發(fā)聲器是壓電蜂鳴器(簡(jiǎn)單地貼有雙面粘性墊),需要由 Microbit 提供的脈沖驅(qū)動(dòng)。
第10步:最后
您已經(jīng)在盒子中組裝了元件,對(duì) Microbit 進(jìn)行了編程并將其安裝到盒子上的插座中。
接下來應(yīng)用電源并設(shè)置時(shí)間。
- Arduino二進(jìn)制骰子
- 二進(jìn)制數(shù)開源分享
- M5StickC二進(jìn)制時(shí)鐘/手表開源
- 二進(jìn)制解碼器開源設(shè)計(jì)
- 基于Arduino Uno的二進(jìn)制時(shí)鐘 0次下載
- Arduino的二進(jìn)制時(shí)鐘屏蔽
- 帶秒的Arduino 24小時(shí)二進(jìn)制時(shí)鐘
- 【2021-04-05】二進(jìn)制中的原碼反碼補(bǔ)碼與二進(jìn)制數(shù)的左移右移
- 基于FPGA的二進(jìn)制相移鍵控設(shè)計(jì)方案 12次下載
- KEIL C51二進(jìn)制數(shù)輸入宏的詳細(xì)方法程序說明 17次下載
- LabVIEW二進(jìn)制數(shù)組轉(zhuǎn)換二進(jìn)制字符串的詳細(xì)資料免費(fèi)下載 16次下載
- “非二進(jìn)制”中的新結(jié)構(gòu) 5次下載
- 二進(jìn)制邏輯運(yùn)算詳解 13次下載
- 二進(jìn)制加法程序【C語言版】 0次下載
- 二進(jìn)制加法程序【匯編版】 0次下載
- base64字符串轉(zhuǎn)換為二進(jìn)制文件 1516次閱讀
- 二進(jìn)制處理中的一些技巧 608次閱讀
- 十進(jìn)制、十六進(jìn)制和二進(jìn)制數(shù)制的區(qū)別 2075次閱讀
- 二進(jìn)制加法的實(shí)現(xiàn)細(xì)節(jié) 2855次閱讀
- 二進(jìn)制編碼器和二-十進(jìn)制編碼器講解 1.3w次閱讀
- 格雷碼與二進(jìn)制轉(zhuǎn)換 5355次閱讀
- 數(shù)字二進(jìn)制計(jì)數(shù)器的設(shè)計(jì)和實(shí)現(xiàn) 1868次閱讀
- 基于FPGA的二進(jìn)制時(shí)鐘設(shè)計(jì)方案 2268次閱讀
- 二進(jìn)制解碼器到底是什么 6270次閱讀
- 如何利用二進(jìn)制數(shù)實(shí)現(xiàn)BCD碼的轉(zhuǎn)換 2.8w次閱讀
- 函數(shù)轉(zhuǎn)換BCD編碼二進(jìn)制數(shù)為整型數(shù) 6586次閱讀
- 格雷碼與二進(jìn)制的轉(zhuǎn)換 1.8w次閱讀
- 8421bcd碼轉(zhuǎn)換二進(jìn)制 7.2w次閱讀
- 二進(jìn)制數(shù)據(jù)壓縮算法 2w次閱讀
- 解析二進(jìn)制指數(shù)退避算法的過程 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論