專題-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.
感測器擴充板,V4或V5均可使用,有擴充板接線比較簡單,無擴充板也能使用
3.
旋轉電位計(0~1023)、滑動電位計模組均可使用
4.
RGB全彩LED共陰模組(0-255),共陽極也行(數值要取255補數)。
5. 雙母頭杜邦彩虹排線
電路連接:
電位計模組電路連接說明:
電位計模組為類比輸入,因此其訊號輸出(OUT)要接到Arduino的A0~A5輸入端(本案例三個輸入接在A0、A1、A2),使用擴充板則接在A0~A5的S端,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控制,所以我們把它分別接至擴充板上的S5、S6、S9,也就是Arduino板上的D5、D6、D9,連接腳位如下:
RGB模組 Arduino
======= =======
- (GND) ←→ G(GND)
R(RED) ←→ S5(D5)
G(GREEN) ←→ S6(D6)
B(BLUE) ←→ S9(D9)
模組測試、程式撰寫與說明
電位計測試:
本專題將電位計輸入接在Arduino的A0、A1、A2類比輸入接腳,因此在S4A中請觀察sensor board上的Analog0、Analog1、Analog2欄位的值,當我們將連接在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(藍)三隻接腳分別接在D5、D6、D9,每一支接腳單獨控制一個顏色,由於S4A的PWM輸出可以從0~255一共有256種變化,因此三隻接腳即可變化出全彩1677萬色(256*256*256),我們先來測試單一顏色,確認一下程式輸出與各接腳亮燈是否正常。
首先,拿出三個“analog
9 value 255 ”積木,將接腳全部改成5用來控制紅色,並將值分別改成255、128、0,然後分別雙擊點選積木,會發現模組紅燈全亮、半亮、不亮,因此可以知道“值”就是輸出的功力(PWM,脈波頻寬調變),可以控制燈的亮度。
測試完畢之後,記得點選“analog
5 value 0”積木,將紅燈關掉,以免測試其他顏色時混到色,接下來請以同樣方法依序測試綠燈(D6)和藍燈(D9),以確認你的三個顏色分別都能正常運作。
※如果你的顏色和接腳搭配錯誤,則以實際發生的情形來做設計即可,因為對岸製造的模組品質不一,有時接腳標示會錯誤,有時零件品質有問題某個燈不亮也是常有的事、還有線材接觸不良也會發生,可以交叉測試一下就會知道問題出在哪裡。
燈光調色盤程式製作
首先我們要將Analog 0旋轉電位計的輸入(0~1023)轉化成控制D5的PWM輸出範圍(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配色表,分別調整三個電位計所代表的三原色,自由調配出想要的顏色了!
沒有留言:
張貼留言