在這個項目中,我們將使用chipKIT Uno32板構建一個數字秒表,該秒表能夠對分鐘,秒和1/10秒進行計時,并具有基本的啟動和停止控制功能。 MAX7219驅動的8位七段LED顯示器用于顯示經過的時間。秒表停止時,Uno32板上的 重置 開關將用于將當前時間重置為0。
chipKIT數字秒表項目插圖
理論
秒表是一種測量時計的時計。從啟動到停止之間經過的時間量。秒表在許多活動中很有用,包括體育,游戲和烹飪,這些活動可以用來計時。我們將使用 chipKIT Uno32開發板和 SPI7SEGDISP8.56-1R顯示模塊構建數字秒表。秒表的時間分辨率為1/10秒或100毫秒,最大可測量間隔為99分鐘,此后秒表將再次翻轉為零。可以在此處找到基于MAX7219的串行七段顯示接口的更多詳細信息。
《表邊框=“ 5” cellspacing =“ 0” cellpadding =“ 2” align =“ center” 》 SPI7SEGDISP8.56-1R 是基于MAX7219的8 -digitseven段LED顯示,僅需MCU的3個I/O引腳即可控制所有數字段。它還支持通過軟件命令進行亮度控制。
從我們的Tindie商店購買SPI7SEGDISP8.56-1R
電路設置
SPI7SEGDISP8.56-1R模塊的電源引腳(VCC和Gnd)連接到Uno32板的5V和Gnd接頭引腳。 DIN,CLK和LOAD信號線由Uno32板的數字輸出引腳7、6和5驅動。還需要一個輕觸開關在秒表的開始/停止之間切換。它連接到Uno32板的中斷引腳INT0(在I/O引腳38上可用)。一個簡單的RC濾波電路用于對開關進行去抖動。下圖顯示了該項目中實現的開關去抖電路及其去抖時間??梢酝ㄟ^如下所示的簡單RC電路瞬態響應方程來計算去抖動時間。對于給定的R2和C1值,去抖動時間計算為?3.5ms。
帶硬件去泡電路的秒表啟動/停止開關
該項目的完整設置如下圖所示。 “開始/停止”開關和去抖動電路建立在面包板上。
項目的完整設置
帶有反跳電路的啟動/停止開關布置在面包板上
chipKIT草圖
該項目使用 millis()函數進行計時。 millis() 是Arduino中的內置函數,因此在MPIDE中,該函數返回自當前草圖開始起經過的毫秒數。此值在大約50天后溢出。此秒表項目的時間分辨率為1/10秒或100 ms。因此,將計數器設置為每100 ms遞增一次,它會溢出并在10個計數中回滾到0,這相當于1秒。定義變量來存儲分鐘,秒和十分之一秒的信息。經過的時間以MM-SS-TS(TS為十分之一秒)格式顯示在七段顯示屏上。 LedControl庫在該項目中用于將基于MAX7219的七段式LED顯示器與chipKIT Uno32板接口。按下連接到INT0(引腳38)引腳的按鈕即可啟動和停止秒表。 INT0觸發模式定義為 FALLING ,這意味著當INT0引腳從高電平變為低電平時,將調用中斷例程??梢詮南旅娴逆溄?a href="http://www.1cnz.cn/soft/special/" target="_blank">下載該項目的完整草圖。將此草圖上傳到您的chipKIT Uno32板上,秒表就可以開始滾動了。
下載秒表草圖
下載 LedControl
輸出
秒表的操作非常簡單,如前所述。開機時,秒表顯示全零。按下輕觸開關啟動秒表。第二次按下時,秒表停止。可以通過按Uno32板上的Reset(重置)按鈕將其重置為零。
秒表從七位LED顯示屏上的所有零開始
按下開關可啟動和停止秒表
責任編輯:wv
-
電路
+關注
關注
172文章
5901瀏覽量
172134 -
顯示器
+關注
關注
21文章
4970瀏覽量
139926 -
秒表
+關注
關注
3文章
77瀏覽量
22012
發布評論請先 登錄
相關推薦
評論