2014年1月11日 星期六

【S4A小專案】倒數計時 (7段數字顯示器)

一個嘗試把arduino與S4A導入國小資訊課程的探索紀錄



【實做影片】一開始先來看看實際運作的影片

這是執行的影片(畫面有數字,顯示器也會秀數字),arduino旁的是七段數字顯示器,筆電上的是S4A程式,這樣的軟體與硬體互動是如何做出來的?,請看以下說明。


【使用硬體】arduino UNO r3(內已有S4A韌體) 、七段數字顯示器(共陽極)
                       、小麵包板、麵包線

【使用軟體】S4A  (基本安裝設定請參考科藝實作坊文章)

【數字顯示器原理】


七段數字顯示器是7段LED組成的電子零件,可在數位式電子鐘或計時器上發現,可以此引起小學生的學習動機與好奇心,下面是七段數字顯示器的腳位與數字筆劃關係圖
a~g針腳是控制數字筆劃(小數點本例不使用),上與下邊的最中間是7個LED的共同接腳,共同接腳有分成接到正極(共陽極),以及接到負極(共陰極)兩種。2個共同接腳只要一個有接即可。

本文的範例採用共陽極的數字顯示器。為何用共陽極呢?根據參考資料,通常為怕 LED的電壓過高而燒毀,會在a~g針腳上分別串上一個220歐姆的電阻,這樣比較安全,但相對地,接線也會比較複雜。

因為教學的對象是設定在小學生,所以想要簡化電路。我採用的做法是使用共陽極,然後把共陽極接到arduino的3.3V以達降低電壓的功效,也因此省去了接電阻的部份電路達到簡化的目的。但用共陽極有個小缺點,那就是arduino腳位為輸出ON(HIGH)時,會不亮;腳位輸出為OFF(LOW)時才會亮(共陰極則與共陽極相反),所以經過取捨,採用共陽極。如果要去電子材料行買的話,要注意是哪一種。



【arduino接線】
S4A(韌體1.5)預設的數位輸出腳位有10、11、12、13,這樣只有4個,要接數字顯示器還少了3個,怎麼辦?還好還有3個類比輸出腳位可用,分別是5、6、9。以下為元件連接的概念圖,有註明數位輸出或是類比輸出。


接下來的圖是與arduino、小麵包板的接法。



注意共同接腳是接到3.3V,其他的就依概念圖的腳位接線。這樣硬體就完成了

【S4A程式解析】
接下來是S4A的程式(程式檔案下載)。程式裡最核心的積木是以下兩組。



如果數字顯示器上的筆劃是接到數位輸出的話,就要用數位on、off那一組來控制筆劃的亮暗暗;如果是接到類比輸出的話,就要用類比on、off那一組來控制筆畫的亮暗(類比輸出採PWM,最低的0與最高的255直接當成數位輸出使用)。

在實作時,可以先接共同接腳(3.3V)以及一個筆劃的針腳做測試(注意採共陽極數字顯示器時,on時會暗,off時會亮。)一個筆劃成功了,就可以接到7個來組合數字。

其實到此,只要再配合S4A程式,與個人的創意即可。以下簡單介紹我做的程式:

角色arduino(白色電路板)是隱藏,不但是與arduino相連的角色,也是主要迴圈程式
所在,程式如下圖。 

上圖的主要迴圈一直重複判斷數字筆畫的亮與暗,我的做法是用造型當開關,造型如果是「開」,就會讓數字顯示器的筆畫亮起來,反之亦然。


上圖是位於中間筆畫角色的程式,滑鼠點的時候會亮;另外當收到號碼廣播時,會依情形亮或暗,其他筆畫亦然。(配合廣播可一次即秀可數字)


上圖是筆畫的造型(橫或直要依位置而定),全部的筆畫名稱以位置而定。有左上、上、右上、中、左下、下、右下7種。

當一筆一筆ok後,就可以做數字按鈕如上圖,按下去會廣播數字,相關的筆畫會依情形做調整。


等到各別數字好了,可以再做倒數功能,如上圖


【教學規畫】
     1、一開始,可以用日常生活中的例子引起學生興趣(如數位式時鐘,或計時器)。
     2、教學時,先接數位接腳的一條線,找出控制的方法;再來試類比接腳的
           一條線。
     3、七段都接上後,再做測試。
     4、先完成七段筆畫的角色,並有亮與暗的程式。
     5、再進階內容為點選電腦上數字,數字顯示直接秀出數字。
     6、更進階內容為數字倒數(或正數)。
     8、若還有時間,可再做錄音的延伸,如用麥克風錄下9、8…、1的語音,最後
           錄下happy new year,即可做出跨年倒數的情境。
     7、視內容深淺,可設定為一至二節電腦課。



【延伸閱讀】

書籍:超圖解arduino互動設計入門第七章(趙英傑)
Arduino練習:seven-segment display七段顯示器與時鐘Arduino入門教學(7) – 使用七段顯示器製作倒數功能 (作者:Cooper Maa)



沒有留言:

張貼留言