Arduinoチュートリアル 基礎編


PWM

原文

Fadingスケッチはアナログ出力(PWM)を使ってLEDをゆっくり明滅させるデモです。このスケッチはArduino IDEのFile->Sketchbook->Examples->Analogから開くことができます。

パルス幅変調(Pulse Width Modulation=PWM)はデジタルからアナログを得るテクニックです。デジタル制御でオンとオフを繰り返す矩形波信号を作りだし、オンになっている時間とオフのなっている時間の比率を変化させることで、0Vと5Vの間の電圧を擬似的に出力します。
「オンになっている時間」のことをパルス幅と呼びます。希望のアナログ値を得るためには、このパルス幅を変化させればいいわけです。たとえば、PWMでLEDを光らせるとしましょう。十分な速さでオンオフするArduinoのアナログ出力は、0Vから5Vまで変化する安定した電源を使っているかのように、明るさをコントロールすることができます。

下の図を見てください。緑の線は時間軸を一定の間隔で区切っています。この幅(時間)はPWM周波数の逆数です。Arduinoの場合、幅は2ミリ秒ですから、PWM周波数は500Hzとなります。
analogWrite()を呼び出すときは0から255までの数がパラメータとなります。たとえば、analogWrite(255)ならば常にオン(100%デューティ)、analogWrite(127)ならば半分の時間だけオン(50%デューティ)となります。



Fadingスケッチを走らせたら、Arduinoボードを掴んで左右に振ってみましょう。すると空間に時間がマッピングされます。私たちの目には、動いているLEDが点線となって見えるはずです。そして、LEDが明滅するのに合わせて、その点が伸びたり縮んだりするのがわかるでしょう。これはPWMの働きが目で読み取れる一例です。

(原著者 Timothy Hirzel)


[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]