iL學習板第16課七段顯示器(新)

七段顯示器(Seven-segment display):為常用顯示數字的電子元件,七段顯示器由四個直向、三個橫向及上右下角一點的發光二極體組成,七段顯示器分為共陽極共陰極

詳細原理及說明請看:
http://thats-worth.blogspot.tw/2014/06/arduino-7-seven-segment-display-1.html

    

共陰極七段顯示器接線圖如下:下圖中P(小數點)未接,但是我們可以同前面加電阻接D9,讓小數點也可以亮起來。

下表列出對應顯示 0~9 的數字及HELLO,各接腳的明亮狀態,這邊用 1 表示高電位,0 表示低電位。

注意:下表的A~G排列順序是由右到左 

 (以上圖片來源:http://thats-worth.blogspot.tw/2014/06/arduino-7-seven-segment-display-1.html)

如前面所說將共陰極七段顯示器的各腳,分別接上220歐姆電阻後,再接到D2~D8。

顯示器中間的COM腳接GND。

iL學習板內建共陰極的七段顯示器,已經接好電阻,共用的負極也已經內接了。

 

 

使用Jump直接將第1排(紅色)7段顯示器的八支腳和第2排(黑色)arduino的數位腳位D2~D9依序連接,就會像上圖一樣。

一、基本測試

讓各節點輪流亮起來。

先製作一個變數[顯示]。

因為要從數位腳2開始,所以[設定變數(顯示)為2]

接下來再依序讓各腳位輸出1(高電位),節點亮;輸出0(低電位),節點滅。

程式下載: 輪流亮.sb2

二、7段顯示器積木

一般可以使用掃描的方式來顯示字元,讓每個腳位依序輸出高電位。(請參考WFduino第十六課七段顯示器)

這裡改用[7段顯示]積木,讓7段顯示器的8個腳位同時輸出高電位(全亮),或低電位(全滅)

例如:下面腳位2~9全部節點都輸出1(亮),就顯示8

如果不要亮的節點,就將腳位刪除。

例如:下面C、F原來是腳位4、7,刪除後,除了腳位4、7其他節點都輸出1(亮),就變成顯示2

記得顯示下一個數字前,要先將原來所有的腳位都輸出0(關燈)

 

延伸:

1.讓七段顯示器外圈LED輪流亮起來。

2.讓七段顯示器上面LED像口字形亮起來,再換下面LED像口字形亮起來,輪流亮。

3.自行設計圖形。

輪流出現上表所示的0~9 的數字

A.掃描的方式

用[製做積木]指令來讓顯示器顯示字元。

[清除顯示]積木:輪流將顯示器每一段都設為低電位,讓顯示器熄滅。

[顯示字元]積木:用[如果…就…]來判斷要顯示的字元,每一個腳位要亮或暗。

然後重複輪流顯示各個字元。

加上等待0.5秒,可以清楚的觀察每個字。

這種寫法的執行效率並不好。(重複30次時間232.98秒)

程式下載: 輪流數字(舊).sb2

延伸:

請參考第十五課七段顯示器,使用字串的方式來顯示。

B.使用7段顯示器積木

用[製做積木]指令來讓顯示器顯示字元。

[顯示字元]積木:用[如果…就…],來判斷要顯示的字元,7段顯示器每一個腳位要亮或暗。

使用[7段顯示]積木,讓7段顯示器的8個腳位同時輸出高電位(全亮),或低電位(全滅)

然後重複輪流顯示各個字元。

加上等待0.5秒,可以清楚的觀察每個字。

這種寫法的執行效率比掃描式好。(重複30次時間173.50秒)

程式下載:7段積木輪流數字.sb2

、用鍵盤控制七段顯示器顯示結果

依照鍵盤按下的結果來顯示字元,例如:按下鍵盤的[0],就顯示器顯示[0]。

注意:

記得先檢查[輸入法]是否為[],當輸入法不對時,鍵盤按鍵對應的值是錯的,無法正確反應動作。 
按數字鍵盤上的數字沒有作用,請按文字鍵盤上面的數字鍵才有作用。

基本程式同上,將輪流顯示字元,改成按下字元後顯示。

程式下載:鍵盤控制.sb2

五、依據輸入內容顯示,類似跑馬燈效果

點綠旗開始後,先詢問想要顯示的數字,輸入完畢後,依照輸入數字,輪流顯示。

 

先將原有的顯示清除(各節點輸出0)。

接下來用[提問(…)並等待],來輸入要顯示的字串

[變數(字串)設為(答案)],將要顯示的字串填入

[設定變數(第幾個字)為0],從第0個字開始。

[循環(字串長度(字串)次)],讓字串的每一個字都能依序顯示。(字串長度(字串)次),用來計算字串長度,才知道要重複幾次才能將字串顯示完。

[顯示字元(字串中第(第幾個字) 字(字串))] ,判斷要顯示的字元是什麼。

[等待0.5秒],可以清楚的觀察每個字。

製作一個 [顯示字元(number1) ] 積木。

[顯示字元(number1) ] 這個積木,就是要判斷字串裡面的字要顯示什麼。

[變數(顯示)設為(number1)],將字串裡面的字轉換為[顯示]變數,下面才能做顯示判斷。

接下來用[如果…那麼…] ,來判斷要顯示的字元,7段顯示器每一個腳位要亮或暗。

[顯示字元(number1) ] ,這個積木用到特別的製作指令功能。

在[更多積木]區下,先按[建立自訂積木]後,輸入積木名稱(顯示字元),形成(顯示字元)的積木指令。

然後再按[選項],再點[(添加數字輸入方塊)後面的圓角方形,輸入(number1),再按[確定],就可以了。 

程式下載: 輸入內容顯示.sb2

延伸:

請參考WFduino第十六課七段顯示器,使用字串的方式來顯示。

六、模擬十字路口綠、黃、紅燈(紅燈時,顯示倒數計時)

模擬紅綠燈的運作,配合燈號做變換。

配合第四課(LED紅綠燈),將螢幕顯示倒數計時改成由七段顯示器顯示。

調整一下iL學習板上的JUMP,腳位2~8分別接7段顯示器的引出接腳。另外再將腳位10、11分別接RGB LED的綠色(10LDG)和紅色(11LDR),腳位13接13LDY。

螢幕主畫面

A.原始程式說明:

1.一開始先讓7段顯示器熄滅(輸出0 )

記得點的腳位要刪除。

2.主程式: 

重複執行綠、黃、紅燈的函式

當輪到紅燈亮時,7段顯示器執行倒數計時

螢幕畫面的倒數計時程式

 

程式下載:紅綠燈倒數.sb2

B.修正:

上面程式執行時,會發現螢幕主畫面的倒數計時和iL學習板上的倒數顯示不同步,為什麼?

請修正。

程式說明:

看看跟上一個程式哪裡不一樣?

iL學習板上的倒數顯示比螢幕畫面的倒數計時程式執行速度慢,因為程式要呼叫學習板會有延遲,因此將等待時間縮短,將延遲時間加進去,就是正確的倒數時間了。

程式下載:紅綠燈倒數(修正).sb2

七、計數顯示器

配合第八課(按鍵)或第十五課(主動式紅外線感測器)做計數器的顯示。

八、抽獎機

按下按鍵,七段顯示器開始亂數隨機顯示0~9,鬆開按鍵,停止隨機顯示,顯示最後一個數字。

九、數字猜猜機

設計一個遊戲機器,讓玩家猜數字。

在螢幕上先出現0~9數字讓玩家選擇(或是問問題給玩家回答(猜)),選好後玩家按下板子上的按鍵,七段顯示器開始亂數隨機顯示0~9,鬆開按鍵時,停止隨機顯示,顯示最後一個數字。

如果猜中數字,就說[猜對了],如果猜錯,就說[猜錯了]。

——————

註:

生活中的應用

——————————-

相關連結:

iL學習板課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/111175/727272

WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433 

新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192

roc

宜蘭縣國小資訊小站

您可能也會喜歡…