2016年3月5日 星期六

arduino PWM 筆記


看過 Arduino 基本 Pin 介紹 (這篇),後我們知道有 Arduino 有 digital pin 及 analog pin,digital pin 可以在 pin mode 設定 output/input 來決定 digital pin 是輸出數位訊號,還是接收數位訊。

But!analog pin (A0~A5) 只能接收類比訊號,通常我們的 sensor 都是利用 analog pin 接收外界訊息 (TMP 系列就是接在 analog pin 上的),那我們要怎麼輸出類比訊號?!

靠的就是,Pulse Width Modulation (PWM),脈衝寬度調變。 
  • 切換週期 T,通常我們會用頻率 f (Hz) 來表達,在 Arduino pin 上基本的切換頻率大約是 490Hz,部分的 pin 是 980 Hz (Arduino Uno pin 5&6)
  • Duty Cycle = Ton/Toff (%),為 ON 的時間與 OFF相除的百分比
  • 模擬出的電壓 V = Von x duty cycle (%),可以知道 duty cycle 越高模擬出的電壓越高,當完全沒有 OFF 的時候,duty cycle = 100%,V = Von 為最大可輸出的電壓,這時候電燈會最亮

注意看一下 Arduino 的 digital pin 會發現,有些編號旁有 "~" 符號,這些 pin 就是可以使用 PWM pin。


Arduino PWM 的使用方式其實超簡單的,IDE code 為 analogWrite ()

格式:analogWrite(pin, value)

沒有留言:

張貼留言