電子工作でよく出てくるPWMとは?
2017/02/17
Raspberry PiやArduinoなど、デジタル信号を扱う電子工作でよく出て来る言葉、「PWM」について簡単にまとめてみました。
■PWMとは?
「PWM」は、「Pulse Width Modulation」の略語で、直訳すると「パルス幅変調」となります。
パルスとは、デジタル信号の周期的にHIGHとLOWが繰り返される四角い信号で、正確にはHIGHの部分を指します。
パルスとパルスの時間の間隔の事を周期Tといい、パルス1つの幅Hとの比率をデューティ比といいます。
デューティ比[%] = (H / T) × 100
また、1秒間に発生する周期の数の事を、周波数(単位は[Hz]、ヘルツ)といいます。
周波数[Hz] = 1[s] / T
周波数[Hz]は、PWMのようなパルス波に限らず、家庭用の交流電源などにも使われていまる単位ですよね。
■電子工作におけるPWMの用途
電子工作でのPWMの主な用途の1つとして、デジタル信号を「擬似的なアナログ信号として用いる」方法です。
周波数(周期)を保ったまま、デューティ比を変えれば(つまりパルス幅を変えれば)、あたかも電圧が変わったように見えるのです。
つまり、LEDに用いると明るさが変わったり、DCモーターに用いると回転数が変わります。
このようにPWMには、デジタル信号のデューティ比を変えて、アナログ的に電圧を変化させたかのように機器を制御する使い方があるという事です。
そうすると、マイコンボードのIOポート(Raspberry PiでいうGPIO)から直接機器が制御できそうな気がしますよね。
しかし、マイコンボードには、IOポートに流せる電流に制限があるのです。
Raspberry PiのGPIOの場合は、デフォルトで8[mA]となっています。
あまり電気を食わないLEDならともかく、電気をたくさん必要とするモーターとなると難しいですよね。
この解決策としては、電気を制御系と駆動系に分ける方法があります。
そのためには制御系の信号を駆動系に伝達する仲介役となるものが必要になります。
DCモーターを例に挙げると、モータードライバというICがマイコンとの仲介役にあたります。
電子工作でよく使われるのは、TA7291Pと呼ばれるモータードライバICです。
ドライバICの制御電源ピンまたは入力ピンに、PWM信号を入力してDCモーターを制御します。
もちろん、DCモーターを動かす電源ピンがついているので、そこからDCモーターを駆動・制御します。
ところで、ロボットなどに使われている回転角度が制御できるサーボモーターもPWM制御で動く代表格です。
しかし、こちらは、電圧が変化したようにみせる擬似的なアナログ信号としての使い方とは異なります。
PWMによって、電圧ではなく、モーターの回転角度を制御します。
きちんと決められた周波数Hの中で、パルスTの長さを変えてサーボモーターの角度を変えます。
ですから、精度の高い周波数やパルスが必要になります。
サーボモーターについてはまた別の機会に。