脈波寬度調變( Pulse Width Modulation ) 簡單 PWM ,是一種控制脈波工作週期來達到控制輸出電壓的一種控制方式。由下方公式可知方波的直流值是與工作週期成正比,因此我們只要改變工作週期,就可以改變方波的直流值,達到類比輸出的效果。
方波的直流值(VDC) = 最大值 x 工作週期
工作週期=100%,V = 5 × 100% = 5V
工作週期=80%,V = 5 × 80% = 4V
工作週期=100%,V = 5 × 50% = 2.5V
工作週期=100%,V = 5 × 30% = 1.5V
工作週期=100%,V = 5 × 0% = 0V
Arduino Uno 板並無法類比輸出,只能數位輸出,數位輸出只能輸出高電位或低電位。利用 PWM 控制讓我們除了 高電位與低電位外的另一種選擇。並不是所有Arduino 接腳都能 PWM 輸出,能夠 PWM 輸出的接腳會用 ~ 來標示。以Arduino Uno板為例,能夠 PWM 輸出的接腳有 3、5、6、9、10、11。
使用 analogWrite(pin, value) 指令可以使 Arduino 接腳 PWM 輸出,當然接腳模式必需先設成輸出模式。
Arduino 輸出實習(單燈閃爍)
Arduino 輸出實習(跑馬燈-愚公移山)
Arduino 輸出實習(跑馬燈-for迴圈)
Arduino 數位輸入實習
Arduino 數位輸入實習(INPUT_PULLUP)
Arduino 類比輸入實習
Arduino PWM 實習 (呼吸燈)
Arduino PWM 實習 (光感應調光燈)
Arduino 8×8 LED Matrix MAX7219 實習
Arduino 紅綠燈小綠人 實習
Arduino 計時器 實習
Arduino 音樂盒
Arduino 電子琴(鍵盤掃描)
Arduino DHT11 溫濕度感應器
Arduino OLED 顯示
Arduino 超音波測距模組 HC-SR04
Arduino 執行時間實習
Arduino 電容測試器
Arduino 紅外線接收實習
Arduino 紅外線發射實習 EPSON 投影機控制
ESP-12F 網路智慧開關(MQTT)
ESP-12F 雲端記錄型 K-Type 溫度計(MQTT ThingSpeak)
ESP-12F 手機雲端紅外線控制
ESP-12F 網路電台收音機
ESP-12F 電子鼓