前言

DiFi 實驗板的 D0~D8 腳位除了數位輸出之外,也都支援 PWM 輸出,可以用來模擬類比輸出。這裡說的 D0~D8 是 WFduino 的編號,在實驗板的實際位置為中間那排接腳,如下方圖示中所示。而 WFduino 腳位編號與板子上的編號對應關係,同樣可以在左上方的白色貼紙中找到。

DiFi PWM GPIO

DiFi PWM GPIO

在這篇文章中,我們將延續前一篇文章的範例,利用 DiFi 的 PWM 功能來控制外接 LED 燈泡的亮度,而非僅僅是開與關而已。

PWM

有關 PWM 的說明,可參考這篇文章的說明。

在 Scratch 3 中使用 PWM 模擬類比輸出的積木如下。

scratch 3 類比輸出積木

scratch 3 類比輸出積木

不需要指定工作週期,也沒有頻率可以設定,唯一一個參數為 0~255 的數字。0 表示輸出低電位 (0V),而 255 則表示輸出為高電位 (+3.3V)。至於如果是其他數字,輸出電位依比例計算即可。舉例來說,如果參數為 50 ,其輸出電位則為
\begin{align}
輸出電位 & = \frac{50}{255} \times 3.3\\
& \approx 0.647V。
\end{align}

線路圖

此線路圖與前一篇文章的線路圖完全一樣。

程式範例

DiFi 與 LED 燈泡 (Scratch 3 類比輸出)

DiFi 與 LED 燈泡 (Scratch 3 類比輸出)

  1. 在這個範例中,我們先定義變數 “亮度”,用來當作類比輸出積木的參數。
  2. 程式開始時先將 “亮度” 歸 0,之後程式則不斷地將 “亮度” 數字逐漸增加到 100,並在到達 100 後再逐漸減少至 0。
  3. “亮度” 數字越大,LED 燈泡就越亮。前面提到,類比輸出的最大數值為 255,但是我們在這個範例中 “亮度” 最大僅用到 100 而已。原因在於當數字大到一個程度後,LED 燈泡實際亮度的差異已經很難用眼睛加以分別。
  4. 當我們執行程式後,就可以看到 LED 的亮度不斷地發生變化,如影片中所示:
Facebook 留言
Print Friendly, PDF & Email
Summary
WFduino + Scratch 3 + DiFi 利用 PWM 控制 LED 燈泡亮度
Article Name
WFduino + Scratch 3 + DiFi 利用 PWM 控制 LED 燈泡亮度
Description
在這篇文章中,我們將延續前一篇文章的範例,利用 DiFi 的 PWM 功能來控制外接 LED 燈泡的亮度,而非僅僅是開與關而已。
Author
Publisher Name
Everlearn Studio
Publisher Logo