資料介紹
描述
之前創建了一個教程 ( Binary DVM ),它利用二進制的有限顯示區域。
之前創建用于十進制到二進制轉換的主代碼模塊以創建二進制時鐘只是一小步,但唯一缺少的是 RTC(實時時鐘)。
但是,Microbit 沒有內置 RTC。
RTC 支持使用備用電池實現時鐘項目。
因此,以下項目使用 Microbit 和 Kitronik RTC 創建具有二進制顯示的 24 小時時鐘,并且還具有鬧鐘選項。
將在 Microbit 上運行的項目軟件將在 Makecode Blocks 中創建。
補給品
這些用品可從多個網點購買,您可能有自己的首選供應商。
第 1 步:定義顯示區域
盡管顯示區域在任何時候可以顯示的數據量都受到限制,但它非常適合于位數據的顯示。
因此,有足夠的區域來顯示 4 x 4 位二進制字,以通過通知和選擇模式來表示時間。
顯示屏分為 3 個主要區域;時間、選擇和模式。
時間
16 個 LED 分配給時間,每列 4 個 LED 分配給一個時間間隔,間隔的形式為 H、H、M 和 M。
二進制字的每個位的權重為 1、2、4 和 8,LSB 在第 4 行,MSB 在第 1 行。
每個二進制 4 位字允許 0 到 15 的計數,這對于 24 小時時間格式來說綽綽有余,要求每列的最大計數為 2、9、5 和 9。
選擇
第 0 行的一行 4 個 LED 用于識別輸入時間時選擇的時間列。
模式
第 4 列的一列 5 個 LED 用于識別模式、功能和操作。
Tick - LED 4、0 閃爍開和關,用于指示秒數和操作。
時間 - LED 4、1 亮時指示時間模式。(開機默認模式)
警報 - LED 4、2 亮起時指示警報模式。
警報通知 - LED 4、3 和 LED 4、4 會在警報觸發時閃爍。
.
第 2 步:RTC(實時時鐘)
RTC 是應用程序的跳動心臟,允許設置和保持準確的時間。
RTC 提供穩壓電源,無需通過自己的 USB 或 JST 連接器為 Microbit 供電,并提供備用電池以在斷電時保持時間。
在使用 RTC 之前,您需要加載擴展包。
使用設置圖標中的 Makecode,選擇擴展并在搜索中鍵入 Kitronik RTC。
選擇要安裝的軟件包,它將被添加到其他擴展中。
有許多代碼塊可以讀取和寫入 RTC。
對于二進制時鐘,我們只需要其中的 4 個代碼塊。
這些將用于將設置的時間寫入 RTC 并讀回時間以更新時鐘顯示。
第 3 步:對時鐘進行編碼
代碼的第一部分是變量、數組和信息文本的程序初始化。
在里面
Bclk——二進制時鐘
>Inc – B 按鈕增加時間。
同時按下 A 和 B 按鈕可更改時間和鬧鐘之間的模式。
Strval – 是包含從 RTC 返回的“HH:MM:SS”形式的時間的字符串值
只有 HH 和 MM 用于顯示或設置時間。
Mode – 保留使用 A+B 按鈕組合選擇的 Time = 1 和 Alarm = 2 的模式值。
Period – 是時間列的值,使用 A 按鈕選擇。
0 = 第 0 列 (H), 1 = 第 1 列 (H), 2 = 第 2 列 (M), 3 = 第 3 列 (M)
Tick_en – Enables = 1 或 Disables = 0 滴答(秒)指示器。
Inc – 增量時間設置值的中間存儲。
Tm_list[] – 存儲設置期間每個時間列的值。
警報 – 啟用或禁用警報指示器。
永遠不斷地調用刻度函數。
打鉤
通常啟用的刻度功能在右上角顯示交替的開/關 LED 以指示操作和秒數。
此外,它調用 showtm 函數讀取 RTC 并將其處理為二進制顯示,同時還調用 alarm_mode,如果啟用,則在右下角顯示警報通知 LED。
Showtm
函數 showtm,調用 rdtime 并且從中使用的值是包含時間字符串的 strval。
創建了一個循環,該循環通過 strval 提取每個單個數字并忽略分隔符“:”而遞增。
然后使用函數 dec2bin 將每個單個數字轉換為其二進制等效項并分配給正確的列。
時間
函數 rdtime,讀取從 RTC 返回的字符串中的前 5 個字符(忽略秒部分),并將其傳遞給 strval。
如果設置了警報(模式 = 2),則將警報設置值與 RTC 返回的值進行比較,如果匹配,則警報 = 1,如果不匹配,則警報 = 0。
啟用后的 Alarm_mode 在第 4 列的右下角顯示兩個交替開/關的 LED。
Dec2bin
函數 dec2bin 將十進制數轉換為二進制數并將其顯示在正確的列中。
需要轉換的數字通過 value 傳入,顯示列通過 col 傳入。
List2[] 是存儲來自二進制轉換過程的 4 位二進制字的數組。
啟動一個循環,繼續將該值除以 2,余數存儲在數組元素中,整數值除以 2,重復此操作直到整數值 <=1,并將最后一個值放入數組中。
最大的一位十進制值是 9,在二進制中這是 1001 作為 4 位字。
然后需要以相反的順序處理數組以獲得正確的結果。
然后啟動一個循環以打開相應列中的正確 LED,這是在 4 位二進制字中每次出現一個 1 時完成的。
人機界面是通過按鈕完成的。
A 按鈕。
這將選擇要輸入時間值的列,并在第 4 行的所選列上顯示一個發光的 LED。
更新所有時間列后,將選擇增加到第 5 列會更新時間變量。
如果模式 = 1,則更新 RTC,否則更新鬧鐘時間。
B 按鈕
這是遞增按鈕,用于遞增選定的時間列。
為了減少錯誤并節省獲取正確值的時間,每列可以輸入的最大值根據 24 小時制時間值設置上限。
這些最大值存儲在 tm_max[] 中,每個時間列一個,并根據時間列自動選擇。
最大值為 H = 2、H = 9、M = 5、M = 9
增量值在 dec2bin 中轉換為二進制并更新顯示。
按鈕 A+B 模式選擇。
同時按下兩個按鈕可以在時間模式或警報模式之間進行選擇,相應的模式將顯示在顯示屏上。
根據選擇的模式,顯示屏會更新以顯示時間或警報設置時間。
第四步:操作
將 Hex 文件下載到 Microbit,將 CR2032 電池插入 RTC。
將 Microbit 插入 RTC 并通過 USB 或螺絲端子為 RTC 板供電。
Tick LED 將開始閃爍,此后不久將顯示時間。
如果這是第一次使用,顯示的時間很可能是錯誤的,需要設置為正確的時間。
模式選擇。
同時按下選擇 (A) 和增量 (B) 按鈕將允許在時間和警報之間循環模式選項。
設置時間
時間設置為 24H 模式。
使用選擇按鈕 (A) 將 LED 移動到頂行,這表示可以更改時間的列。選擇列對應于 H、H、M 和 M。
其中 H = 小時,M = 分鐘。
選擇一列后,按遞增按鈕 (b),每按一次重復以將計數遞增一。計數以二進制表示,畢竟它是一個二進制時鐘。
增量按鈕只會增加計數,一旦達到最大值就會重置為零,進一步按下將再次增加計數。
設置第一列時間后,按下下一列的選擇按鈕,然后使用增量按鈕設置列時間。
注意:*** 當您設置時間或鬧鐘時,您需要在所選列中輸入時間,即使列中的時間保持不變,因為跳過一列會將該列時間設置為零 ****
重復該過程,直到使用所有 4 列設置時間。
第五次按下選擇按鈕,將其移動到第五列,時間就設置好了。
設置鬧鐘
設置鬧鐘時間的方式與設置時間完全相同。
為了在所需時間觸發警報,請將模式設置為警報。
要關閉警報,請將模式設置為時間。
要顯示設置的鬧鐘時間,請在時間和鬧鐘之間循環模式,鬧鐘時間將顯示一小段時間,然后恢復顯示當前時間。
鬧鐘時間不存儲在 RTC 中,因此如果斷電,則需要重新設置。
第5步:裝箱
該項目將坐在適當的角度觀看時鐘,但一個盒子增加了一種永恒感。
您可以購買一個大小合適的盒子,然后在適當的區域切割和鉆出,以使 Microbit 能夠安裝在插座中。
然而; 此外,我想復制 Microbit 按鈕以及其他控件和指示器。
通常,需要將圖例應用于框以識別按鈕。
這些可以用手涂抹;涂漆、雕刻或應用標簽。
實現所有這些選項的一種方法是 3D 打印盒子,但首先我們需要創建一個 CAD 文件來創建打印機文件。
文件創建選項是手繪或使用代碼繪制的。
我選擇使用Tinkercad CodeBlocks “用代碼繪制”
Box Lid和Box Base的文件可以在 Tinkercad CodeBlocks 上找到
第 6 步:塊代碼設計
盒子是由底座和蓋子組成的兩部分設計。
四個角螺絲孔將用于固定蓋子,左側有一個切口,以便插入 USB 插頭。
蓋子將有一個用于 Microbit 連接器和所需開關的切口,此外,任何文本都將直接打印在蓋子上,螺絲孔將與基柱對齊。
RTC 板將通過 4 個支柱和 4 個螺釘固定在蓋子的底部。
盒子加蓋子的尺寸是 70 x 105 x 31 mm
蓋子和底座的代碼可在 TinkerCad 代碼塊中找到。
第 7 步:3D 打印
將文件加載到 Cura 并應用您喜歡的切片器設置。
應用的設置。
質量:0.15mm
填充物:80%,三六邊形
底座:邊緣
保存文件然后打印。
使用 Cura,您可以將兩個文件一起加載到同一打印區域并一次性打印。
第 8 步:填充
盒蓋印有凹槽文字,將填充彩色 2 部分環氧樹脂。
將樹脂以 2 份樹脂與 1 份硬化劑的比例混合,然后混入不透明的彩色顏料。
選擇的顏色是黃色以與背景形成對比。白色將是另一種選擇。
混合后,使用雞尾酒棒將樹脂滴入凹槽中,以轉移用于逐漸填充字母凹槽的小樹脂團。
不要一次性加入過多的樹脂,因為您最終可能會產生氣泡,或者在周圍表面產生過多的溢出,這意味著一旦固化,您將需要進行更多的清理和打磨。
所以慢慢填充,確保字母的底部被覆蓋,并用輕微的凸起表面完成它。
樹脂固化后,需要輕輕打磨以平整表面,從 P240 等級開始,根據需要逐步升級到更精細的等級,以獲得光滑的飾面,最后用拋光劑完成。
不要施加太大的壓力和太快的速度,否則會使 PLA 和樹脂過熱,從而由于砂粒的吸收而導致表面變暗,在打磨過程中施加的少量水將起到潤滑劑和冷卻劑的作用。
第 9 步:組裝
Microbit 將以兩個方向裝入插槽,面向 RTC 的主要部分或背對。
但是,如果面向 RTC 的主要部分,則無法使用鏈接連接,如果 Microbit 背對板的主要部分,那么我們可以使用這些連接。
組裝首先將直角 SIL 排針焊接到 RTC 上,這是為了能夠使用推入式連接器進行連接。
RTC 由 4 * M3 (10+6mm)、M/F 支架和 M3 螺母安裝,這些螺母用 4 * M3 (8mm) 螺釘固定在預制孔中的蓋子上。
開關安裝在蓋子上的預制孔中。
所需的連接是:
GND, 3V, P1 (set), P2 (alert), P5 (sel) & P11 (inc)
注意 *** P5 和 P11 圖表上的電阻器 (1R) 只是參考連接點,因為此時無法直接連接到 Microbit in Code 塊上的這些引腳。***
P5 是按鈕 A 的外部連接,由 SPST 瞬時開關連接。一個連接到 P5,另一個引腳連接到 GND,此按鈕用于時間設置期間的列選擇。
P11 是按鈕 B 的外部連接,由 SPST 瞬時開關連接。一個連接到 P11,另一個引腳連接到 GND,他的按鈕用于在時間設置期間增加數字。
P1 是一個 SPDT(on-on)開關,用于啟用或禁用設置選項。中心引腳連接到 P1,而一個引腳通過 10k 電阻連接到 GND,另一個連接到 3V。這使得 H (3V) 和 L (0V) 能夠應用于該引腳。當 P1 連接到 3V 時,這將啟用時間設置選項,而當 0V 時禁用時間設置。從而控制A&B按鈕是否有任何作用。
P2 是一個 SPDT(on-off-on)開關,用于啟用或禁用警報發聲器和可選的外部燈。
警報發聲器是壓電蜂鳴器(簡單地貼有雙面粘性墊),需要由 Microbit 提供的脈沖驅動。
第10步:最后
您已經在盒子中組裝了元件,對 Microbit 進行了編程并將其安裝到盒子上的插座中。
接下來應用電源并設置時間。
- Arduino二進制骰子
- 二進制數開源分享
- M5StickC二進制時鐘/手表開源
- 二進制解碼器開源設計
- 基于Arduino Uno的二進制時鐘 0次下載
- Arduino的二進制時鐘屏蔽
- 帶秒的Arduino 24小時二進制時鐘
- 【2021-04-05】二進制中的原碼反碼補碼與二進制數的左移右移
- 基于FPGA的二進制相移鍵控設計方案 11次下載
- KEIL C51二進制數輸入宏的詳細方法程序說明 17次下載
- LabVIEW二進制數組轉換二進制字符串的詳細資料免費下載 16次下載
- “非二進制”中的新結構 5次下載
- 二進制邏輯運算詳解 13次下載
- 二進制加法程序【C語言版】 0次下載
- 二進制加法程序【匯編版】 0次下載
- 二進制處理中的一些技巧 338次閱讀
- 十進制、十六進制和二進制數制的區別 1236次閱讀
- 二進制加法的實現細節 2207次閱讀
- 二進制編碼器和二-十進制編碼器講解 1.1w次閱讀
- 格雷碼與二進制轉換 4547次閱讀
- 數字二進制計數器的設計和實現 1656次閱讀
- 基于FPGA的二進制時鐘設計方案 2065次閱讀
- 二進制解碼器到底是什么 6078次閱讀
- 如何把二進制轉換為格雷碼?格雷碼是如何判斷讀空寫滿呢? 8120次閱讀
- 如何利用二進制數實現BCD碼的轉換 2.7w次閱讀
- 函數轉換BCD編碼二進制數為整型數 6404次閱讀
- 格雷碼與二進制的轉換 1.7w次閱讀
- 8421bcd碼轉換二進制 7.1w次閱讀
- 二進制數據壓縮算法 1.9w次閱讀
- 解析二進制指數退避算法的過程 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多