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