2016年2月14日 星期日

七段顯示器的使用_S4A_mBlock_綜合篇

七段顯示器的使用_S4A_mBlock_綜合篇


本課程會介紹S4A與mBlock在使用七段顯示器的眉角


七段顯示器就是能夠顯示數字或部分符號的LED,最常見是單一位數的,也有二、四位數的,購買模組時得注意是共陽或共陰極(電路接法及程式控制方式不同),以及是否有帶晶片控制(S4A、mBlock是否能用),常見樣式如下,其接腳配置也不一定相同,常見顏色則有紅、綠兩色:

一般一位數的七段顯示器
四位數的七段顯示器
帶控制晶片的模組(S4A、mBlock無法直接使用)

七段顯示器如果要用在S4A和mBlock使用的話,由於先天上控制腳位的不足,買單一位數的七段顯示器即可,建議使用共陰極的零件,在寫程式時比較直覺,使用S4A時,一片Arduino頂多能控制一個LED、mBlock則由於腳位可以自訂的關係,可以控制到兩顆LED,不過因為S4A可以控制多片Arduino(至多30片,com3~32),因此可以擴充,但是mBlock就僅能控制一片Arduino,不行一對多,而且mBlock模擬的時候很當,大改是因為程式太過龐大的關係,而且BUG頗多...,所以要用mBlock時,建議使用直接燒入程式的方式來設計離線使用的作品。


器材準備:

Arduino一片、麵包板一塊、七段顯示器一顆、彩虹排線、排針、220電阻一顆

課程準備:

  1. 安裝S4A使用環境,請參考這裡
  2. 安裝mBlock使用環境,請參考這裡


硬體配置(通吃S4A與mBlock):

  1. 腳位需求:由於S4A的輸出限制,我們在Arduino端只能使用腳位D5、6、9、10、11、12、13來控制七段顯示器的七個筆畫(小數點不用),而且因為mblock腳位可以自由設定,因此,這樣的硬體接線方式可以通吃S4A與mBlock兩個方案。
  2. 本來七段顯示器裡面有八個LED(含小數點,我們沒用),每一個LED都要接限流保護電阻(220歐姆),但是我們偷懶只接一顆在共同接地之前(正式成品這樣做法不好,留給學電子的去解釋),反正看起來亮度也沒什差別,練習階段也不至於弄壞器材。

接腳配置:
















七段顯示器的配置圖,中間通常為共地(共陰極)或5V(共陽極)

接線配置:

Arduino端  LED端
==============
D5 ←→ a
D6 ←→ b
D9  ←→ c
D10 ←→ d
D11 ←→ e
D12 ←→ f
D13 ←→ g
GND ←→220歐姆電阻←→ 共地GND

原理說明:

  1. 共陰極七段顯示器原理其實和LED是一樣的,我們控制的接腳如果送電,電流就會經過LED和電阻到達接地端,形成電源迴路,於是LED就會發光,如果不送電,就會因為沒有電壓落差(壓降),所以電流不會流過去,因此LED不會發亮。
  2. 由這七個筆畫的亮與不亮來決定所顯示的數字,例如:1就是b、c要亮,所以我們只要把D6、D9送電就行了,所以顯示的每一個數字其實就是這七個筆畫所對應的腳位送不送電的結果。
  3. 因為每次要顯示一個數字,都要動到七個腳位,因此我們會習慣先做一張對照表,對照表中1就是送電,0就是不送電,對照表如圖:
  4. 然後我們只要在程式中利用建立對照表的方式,S4A可用廣播、mBlock可用定義新積木,然後把我們要顯示的數字利用廣播、副程式傳遞要顯示的數字即可。

S4A的範例:


  1. 因為我們只要亮和不亮而已,而S4A的D5、6、9是PWM輸出,D10~D13是數位輸出,所以控制的方法不同,比較麻煩,PWM輸出是255全亮、0不亮,而數位輸出就用ON和OFF,原理請大家觀看下方的影片,我沒空打字了...。
  2. 用廣播把0~9每一個數字的顯示方式做起來。
  3. 直接使用廣播,廣播數字或將變數放進去廣播的格子裡就能顯示要顯示的數字了,這個範例是從0開始每隔0.5秒+1顯示到9然後再循環。

mBlock的範例:

  1. 因為我們只要亮和不亮而已,所以直接用數位輸出積木就行了。
  2. 用定義把0~9每一個數字的顯示方式做起來。
  3. 用自己定義的積木,將要顯示的數字放進去或用變數帶入即可。
  4. 原理和說明請大家觀看下方的影片,我沒空打字了...
  5. 圖片晚點處理~


影片教學(詳細的說明都在影片裡):過兩天再錄...

  1. S4A使用七段顯示器
  2. mBlock使用七段顯示器