前言

在前一篇文章中我們了解了如何利用 Arduino 的 PWM 輸出來控制 LED 燈泡。但是單一 LED 燈泡顏色過於單調,如果我們可以同時控制紅色、藍色、綠色 LED 燈泡的亮度,就可以利用光的三原色原理來混出各種不同的顏色。在這篇文章中,我們將看到如何在 WFduino 與 Scratch 3 之下來控制連結至 Arduino Uno R3 的 RGB LED 燈泡,以達到顏色變化的目的。

全彩 RGB LED 燈泡

有關 RGB LED 燈泡的介紹,可先參考這篇文章

在這個範例中我們使用的 RGB LED 燈泡屬於共陽極的形式,也就是當控制接腳為低電位時,該腳位對應的顏色就會發亮。如果使用 PWM 模擬類比輸出,則參數數字越小表示該腳位對應的顏色就會越亮。也因為這個原因,當我們接好線路尚未執行程式前,LED 會發出白光,這是因為所有輸出腳位預設為低電位。

開發環境建置

如果你還沒有建置 WFduino + Scratch 3 的開發環境,請參考這篇文章

線路圖

Arduino 與共陽極 RGB LED 燈泡

Arduino 與共陽極 RGB LED 燈泡

  1. 在這個範例中,我們使用的是共陽極的全彩 LED 燈泡,所以共用的陽極接腳連結至電源輸出腳位,也就是 Arduino 上的 +5V 腳位。
  2. 限流電阻分別串聯三支不共用的接腳與控制用的輸出腳位,在此我統一使用 220 歐姆的電阻。此三個限流電阻相當靠近,連結時務必小心,以避免彼此之間發生接觸。
  3. 各顏色之控制腳位對應如下
    全彩 LED 接腳Arduino 對應腳位杜邦線顏色
    紅色 (R) 接腳腳位 9
    藍色 (B) 接腳腳位 10
    綠色 (G) 接腳腳位 11
    VCC (V) 接腳+5V
  4. 每個全彩 LED 燈泡的腳位編排可能有所不同,需依照實際使用的元件作出相對的調整。下圖為此範例所使用的元件照片,四隻接腳由上而下分別為綠色 (G)、藍色 (B)、紅色 (R)、共陽極 (V):

    共陽極全彩 LED

    共陽極全彩 LED

程式範例

Arduino 與全彩 LED 燈泡 (Scratch 3 範例)

Arduino 與全彩 LED 燈泡 (Scratch 3 範例)

  1. 程式開始執行時,我們先把 Red、Green、Blue 三個變數歸 100。
  2. 正如前面所提到,因為在這個範例中我們使用的是共陽極 RGB LED 燈泡,所以數字越大表示對應的顏色亮度就越低。舉例來說,當 Red、Green 與 Blue 都是 100 時,三種顏色的 LED 燈泡都不會發光。而當 Red 為 0、Green 與 Blue 都是 100 時,就只會看到紅色的光。這點跟共陰極的 RGB LED 燈泡剛好相反。
  3. 程式不停地利用類比輸出的積木改變三個控制接腳的電位。
  4. 因為使用拉桿方式的數字範圍為 0~100,所以程式需將讀到數字重新計算,以符合參數所需的 0~255。也就是將讀到的數字除以 100 再乘以 255。
  5. 如之前的說明,腳位 9 對應到紅色、腳位 10 對應到藍色、而腳位 11 則對應到綠色。
  6. 每次設定三個控制接腳的電位後等待 0.01 秒。如果沒有進行等待就馬上接著執行下一次迴圈,程式將很容易卡住而無法正確改變全彩 LED 燈泡的顏色。
  7. 當我們執行程式後,就可以利用調整拉桿的方式來改變 Red、Green、Blue 的數字,進而改變全彩 RGB 燈泡所呈現的顏色。
Facebook 留言
Print Friendly, PDF & Email
Summary
WFduino + Scratch 3 + Arduino 利用 PWM 控制 RGB LED 燈泡
Article Name
WFduino + Scratch 3 + Arduino 利用 PWM 控制 RGB LED 燈泡
Description
在前一篇文章中我們了解了如何利用 Arduino 的 PWM 輸出來控制 LED 燈泡。但是單一 LED 燈泡顏色過於單調,如果我們可以同時控制紅色、藍色、綠色 LED 燈泡的亮度,就可以利用光的三原色原理來混出各種不同的顏色。在這篇文章中,我們將看到如何在 WFduino 與 Scratch 3 之下來控制連結至 Arduino Uno R3 的 RGB LED 燈泡,以達到顏色變化的目的。
Author
Publisher Name
Everlearn Studio
Publisher Logo