顯示具有 跑馬燈 標籤的文章。 顯示所有文章
顯示具有 跑馬燈 標籤的文章。 顯示所有文章

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使用七段顯示器










2015年2月28日 星期六

模組-RGB LED 輸出模組

模組-RGB LED 輸出模組(共陽極)


















本模組為輸出模組,這個模組可以把ARDUINO的數位輸出、類比輸出全部教完,是我基礎課程必備的重要模組,可惜的是它是共陽極設計,因此輸出的數值大小要相反...(待會說明)。

腳位連接四種方式

  • 使用S4A類比型(可控制全彩,每一種0-255階,256*256*256=1677萬種顏色)


模組端    ARDUINO端
---------    ------------------------
V(+5V)←→5V
R(紅)   ←→D5、D6、D9任意,錯開即可
B(藍)   ←→D5、D6、D9任意,錯開即可
G(綠)   ←→D5、D6、D9任意,錯開即可





  • 使用S4A數位型(只有8種狀態,ON/OFF,2*2*2=8種,S4A1.5版之後D12腳也能使用)


模組端    ARDUINO端
---------    ------------------------
V(+5V)←→5V
R(紅)   ←→D10、D11、D13任意,錯開即可
B(藍)   ←→D10、D11、D13任意,錯開即可
G(綠)   ←→D10、D11、D13任意,錯開即可


  • 使用MBLOCK類比型(可控制全彩,每一種0-255階,256*256*256=1677萬種顏色)

    (未完待續...)



模組端    ARDUINO端
---------    ------------------------
V(+5V)←→5V
R(紅)   ←→D5、D6、D9、D10、D11任意,錯開即可
B(藍)   ←→D5、D6、D9、D10、D11任意,錯開即可
G(綠)   ←→D5、D6、D9、D10、D11任意,錯開即可


  • 使用MBLOCK數位型(只有8種狀態,ON/OFF,2*2*2=8種,S4A1.5版之後D12腳也能使用)

    (未完待續...)



模組端    ARDUINO端
---------    ------------------------
V(+5V)←→5V
R(紅)   ←→D4、D7、D8、D12、D13任意,錯開即可
B(藍)   ←→D4、D7、D8、D12、D13任意,錯開即可
G(綠)   ←→D4、D7、D8、D12、D13任意,錯開即可

控制方式


由於是共陽模組,所以輸出得反向才是想要的輸出,也就是說:
本來類比的控制應該輸出ON才是開燈,現在要輸出OFF才是開燈,因為5V→5V沒有電位差,電流流不過去,5V→0V,電流才能留過去,燈才會亮,同樣的道理,類比的控制,輸出0才會全亮,輸出255變成關燈,輸出200亮度只有255-200=55/255的亮度,而RGB三個顏色分別控制九能組合出你所想要的顏色。

RGB配色表可參考這個網站:http://www.colorspire.com/

範例如下

影片:S4A數位控制-霓虹燈

影片:S4A類比控制-呼吸燈

影片:MBLOCK數位控制(待續)

影片:MBLOCK類比控制(待續)

備註:因為RGB LED是由三原色利用各色色階去組合出全彩,因此可以參考網路上RGB的色階組合來組成想要的顏色,若LED太亮看不清楚顏色,建議可在其上方放置一張白紙,將更能看清楚其組合成的顏色。








2015年2月24日 星期二

課程-點亮學習光明燈-數位類比輸出的練習

課程-點亮學習光明燈-S4A


這可以是學習ARDUINO的首部曲,這第一顆LED可以學習到數位/類比輸出的概念,在S4A1.6版裡,數位輸出有D10~D13,一共4隻腳可做數位輸出,因此想做數位輸出,就能接在這4隻腳其中1隻。

我們先將電路連接如圖,LED有分正負極,長腳正極接在ARDUINO的D13作為輸出送電控制,短腳負極接在GND使LED形成迴路(這是偷懶的做法,因為ARDUINO UNO輸出有內電阻,所以我們省略的220歐姆的限流用電阻,同樣的做法在ARDUINO NANO上會燒毀LED)。


















最正確的連接方法應該是下圖,要串連一個220或300歐姆的限流電阻如下圖,電阻沒有正負極之分,因此接在正極或是負極都沒有關係。





數位輸出是甚麼?

數位就是非黑即白,有電或沒電、有輸出或沒輸出、在ARDUINO裡就是5V或0V,沒有其他種狀況,輸出就是給出要控制別人的訊號,只有兩種訊號,開或關,我們用一個簡單的S4A例子來說明,這個程式控制D13腳位上的LED,一直重複開關各1秒鐘,範例如下:










執行程式後有沒有發現LED會隔一秒亮隔一秒暗的閃爍呢?其實你會發現主板上有一顆燈會跟著LED一起亮,因為這個燈和D13是並聯的。

影片在這裡:利用LED學數位輸出
舊版1.4版數位輸出
舊版1.4版紅綠燈01
舊版1.4版紅綠燈02

翻轉:

  1. 請你讓這LED燈閃爍頻率加快
  2. 請你利用這一個LED燈配合按鍵,做出摩斯密碼電報機
  3. 請你利用紅黃綠3的LED燈,模擬出紅綠燈

類比輸出又是甚麼?


類比簡單的說,在ARDUINO上就是在0V~5V中,可以給出任意電壓而非只有ON/OFF訊號,換句話說就是可以控制輸出功力的大小(想像一下武俠小說,都可以用0-10成功力來出招,就是這個意思),在ARDUINO中專業術語叫做PWM頻寬脈波調變,在S4A中因為是數位模擬類比,因此他把0-5V切割成0~255等分,你可以選擇輸出的比重(0~255),而可以控制的腳位是D5、D6、D9這3個腳位,因此如果你想控制輸出的功率,也就是LED的亮度,就得接在這3隻腳上的任1隻腳,而且輸出0和255等同於數位輸出的ON和OFF。我們用一個簡單的S4A例子來說明,這次把LED接在D9,電路如下:



















程式如下,執行後有沒有發現LED的亮度都不同呢?















影片在這裡:利用LED說明類比輸出
舊版1.4版:類比輸出

翻轉:

  1. 請你利用類比輸出的功能做出呼吸燈,就是慢慢變亮又慢慢變暗,像在呼吸一樣的燈,還得知道如何調整速度
  2. 請你用3個LED,做出類似李麥克霹靂車前方能左右掃描的跑馬燈,或是招牌上的霓虹燈


P.S.電阻不用背顏色,有APP可用,都甚麼時代了...