[ESP8266] RGB LED

很久之前買了 RGB LED,打算在 Arduino 上測試;買來之後一直沒拿出來學習,正好這陣子都在學習 ESP8266 12F,那就拿來使用看看吧!而且在 NodeMCU 的官網上也有 RGB LED 的範例程式。

需要使用到的工具:

  1. RGB LED 1 個
  2. 電阻 3 個 (150 ohm 以上)
  3. 跳線 數條
  4. 麵包板 1 個
  5. ESP8266 測試架 1 個
  6. ESP8266 12F  1 個 (沒測試架時, 就直接焊接引線)
  7. USB 連接線

首先就是要先了解 RGB LED 各接腳的定義。此 LED 共有 4 隻接腳,有分 共陽腳 及 共陰腳 兩種;原本也不知道是哪裡一種,直覺猜想應該是共陰腳,一試之下,真的猜中。

接腳串接方式:

  1. 黃橘色 – RGB LED 的 共陰腳 – ESP8266 12F GND
  2. 紅色 – RGB LED 的 紅光接腳 – ESP8266 12F GPIO15 (在這中間最好加上電阻)
  3. 綠色 – RGB LED 的 綠光接腳 – ESP8266 12F GPIO12 (在這中間最好加上電阻)
  4. 藍色 – RGB LED 的 藍光接腳 – ESP8266 12F GPIO14 (在這中間最好加上電阻)

這次的接線方式沒有加上電阻就直接運作,是比較幸運。為了預防燒毀,還是要接上電阻會比較安全唷!

從 ESP8266 12F 規格文件中得知 PWM 總共有 4 個 Channel,分別是 GPIO4, GPIO12, GPIO14, GPIO15;頻率的範圍是 100Hz 到 1000Hz 之間。

將 pwm 的 clock 設定比較低的時候,LED 燈光會以閃爍的方式呈現。

在燈光切展示的時候快速的記錄一張相片,在一定的距離是可以顯示不同色光。

附註:

第一次撰寫測試程式時,是以 3 個迴圈來改變顏色,結果一不小心就變成等待超久時間。現在學乖了!因為還是開發中的程式,所以一定要寫上延遲時間,不然都找不到方式可以 Interrupt.

附註2:

很好奇如果將 PWM 與 ADC 直接相連,會讀取到什麼數據。數據讀取出來也很奇怪,好像和 CLOCK 與 tim.delay 的時間有關聯,推測應該是頻率還達不到波峰的時候會一直輸出低電平,達到高波峰的時候,會一直輸出高電平,進而形成一個高數據 (1024) 與 低數據 (<10) 的循環。

 

 

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *