2015年5月13日 星期三

專題-S4A-燈光調色盤-PWM輸出與類比輸入的練習

專題-S4A-燈光調色盤-PWM輸出與類比輸入的練習


利用S4A偵測旋轉電位計或滑動電位計模組輸入,在RGB全彩LED模組上輸出想要的顏色。


教學目標:

1.         了解Arduino如何使用基礎類比輸入與類比輸出
2.         了解基礎電路運作原理
3.         了解RGB全彩LED與電位計模組使用方式
4.         能使用Scratch程式設定讀取類比輸入、PWM輸出至RGB全彩LED
5.         能使用Scratch程式做多媒體輸出與控制流程進行
6.         能運用上述學習天馬行空產生多元的創意
7.          能克服困難將創意展現製作出自己的作品

設計理念:

學習Arduino所需要的電路基礎常識,這些常識國小五年級其實就已經具備,這裡,我們運用簡單的模組(初步組裝即可)或電路(進階電路DIY),讓學生知道開放式硬體的電路部分其實很簡單,利用簡易的硬體加上千變萬化的程式設計,就能讓自己的創意無限延伸,創gk4ru4sxu3su04造出屬於自己的獨特作品,成為小小發明家。

主題架構:


材料:(本教案使用預設為粗體設備)


1.      Arduino開放式硬體,建議預先上傳好S4A韌體
2.      感測器擴充板V4V5均可使用,有擴充板接線比較簡單,無擴充板也能使用
3.      旋轉電位計(0~1023)、滑動電位計模組均可使用
4.      RGB全彩LED共陰模組(0-255),共陽極也行(數值要取255補數)
5.    雙母頭杜邦彩虹排線

電路連接:


電位計模組電路連接說明:

電位計模組為類比輸入,因此其訊號輸出(OUT)要接到ArduinoA0~A5輸入端(本案例三個輸入接在A0A1A2),使用擴充板則接在A0~A5S端,S代表信號的意思,連接腳位如下:
電位計1   Arduino
=======    ======
OUT  ←→ S(A0)
VCC  ←→ V
GND  ←→ G
電位計2   Arduino
=======    ======
OUT  ←→ S(A1)
VCC  ←→ V
GND  ←→ G
電位計3   Arduino
=======    ======
OUT  ←→ S(A2)
VCC  ←→ V
GND  ←→ G

RGB全彩LED連接電路說明:

RGB全彩LED模組有分共陽或共陰,接線和控制方法各有不同,本例以比較直覺之共陰極模組為主,除了“-”即為接地GND外,另三隻接腳分別為三原色的控制訊號,這次我們使用PWM控制,所以我們把它分別接至擴充板上的S5S6S9,也就是Arduino板上的D5D6D9,連接腳位如下:
   RGB模組     Arduino
   =======       =======
    - (GND)   ←→ G(GND)
    R(RED)   ←→ S5(D5)
    G(GREEN) ←→ S6(D6)
    B(BLUE)  ←→ S9(D9)

模組測試、程式撰寫與說明


電位計測試:

本專題將電位計輸入接在ArduinoA0A1A2類比輸入接腳,因此在S4A中請觀察sensor board上的Analog0Analog1Analog2欄位的值,當我們將連接在A0的電位計逆時針旋轉到最左邊時,Analog0的値為0,當順時針旋轉到最右邊時,Analog0的値為1023,任意旋轉時,Analog0的値為0~1023之間,同樣的方法測試另兩個電位計,會得到一樣的結果,Sensor Board的顯示如下圖。

因為電位計模組將0~5V切分成1024份以數位方式來模擬類比輸入,所以數值1相當於0.00488V的電壓,我們可以用一個小程式來轉換顯示目前的輸入電壓,程式如下圖:
  

我們可以寫一小段程式來轉換電位計類比輸入(0~1023),將它變成音階輸出(50~84),因此靠著轉動電位計我們可以達到不同的音樂音階輸出,範例如下。



RGB全彩LED測試:

本例中因為要使用PWM控制全彩LED,因此將R(紅色)G(綠色)B()三隻接腳分別接在D5D6D9,每一支接腳單獨控制一個顏色,由於S4APWM輸出可以從0~255一共有256種變化,因此三隻接腳即可變化出全彩1677萬色(256*256*256),我們先來測試單一顏色,確認一下程式輸出與各接腳亮燈是否正常。
首先,拿出三個“analog 9 value 255 ”積木,將接腳全部改成5用來控制紅色,並將值分別改成2551280,然後分別雙擊點選積木,會發現模組紅燈全亮、半亮、不亮,因此可以知道“值”就是輸出的功力(PWM,脈波頻寬調變),可以控制燈的亮度。
   

測試完畢之後,記得點選“analog 5 value 0”積木,將紅燈關掉,以免測試其他顏色時混到色,接下來請以同樣方法依序測試綠燈(D6)和藍燈(D9),以確認你的三個顏色分別都能正常運作。

※如果你的顏色和接腳搭配錯誤,則以實際發生的情形來做設計即可,因為對岸製造的模組品質不一,有時接腳標示會錯誤,有時零件品質有問題某個燈不亮也是常有的事、還有線材接觸不良也會發生,可以交叉測試一下就會知道問題出在哪裡。

燈光調色盤程式製作

首先我們要將Analog 0旋轉電位計的輸入(0~1023)轉化成控制D5PWM輸出範圍(0~255),因此要做一點簡單運算,於是將Analog 0的值除以1023再乘上255,然後因為PWM輸出訊號得用整數,因此再將結果四捨五入即可,將得到的結果放進點亮D5不斷地做PWM輸出,程式如下圖:

當我們按下綠旗執行後,只要旋轉A0上面的旋轉電位計,就能調整紅燈的亮度,同時為了能將亮度數值顯示在螢幕上,我們增加一個紅燈變數“紅燈R

然後我們將剛剛運算的結果先放在這個變數中,然後再以這個變數輸出PWM,所以程式修改成下圖:

這時,再次旋轉A0上面的旋轉電位計,除了能調整紅燈的亮度,還能顯示紅燈R的亮度數值在螢幕上,如圖。

接下來產生“綠燈G”和“藍燈B”的變數,同時將整個程式複製成三份,分別修改第二隻程式使用變數“綠燈G”、“value of sensor Analog 1”、“analog 6 value 綠燈G”、以及第三隻程式改成使用變數“藍燈B”、“value of sensor Analog 2”、“analog 9 value藍燈B”,程式如下圖:



恭喜你,完成這樣就完成本次燈光調色盤專案,你可以參考網路上的RGB配色表,分別調整三個電位計所代表的三原色,自由調配出想要的顏色了!

教學影片



沒有留言:

張貼留言