PWM

PWM(パルス幅変調)は決められた周波数である端子のON-OFFを繰り返す機能です。特に、繰り返すときのON-OFFの時間の割合を決めることができます。これによりサーボモーターに角度情報を送ったり、または非常に高速にPWMで出力することでLEDの明るさを変えたりモーターの強さを変える等に利用できます。

PWMには3つのパラメーターが必要です

  • どのIOからPWMを出力するか
  • 周波数
  • ONとなる幅(割合または時間)

PWMは以下のようにして利用します。obniz.getFreePwm()にて利用されていないPWMを取得します。利用できるpwmの数はデバイスによりますが通常ioよりも少なく、またpwmの番号とioの番号に関係はありません。例えばobniz Boardシリーズではpwmはpwm0からpwm5までの6つ存在しています。pwm0とio0は無関係でありpwm0をio1で使うことができます。pwm.start()によりpwmをあるioで開始することができます。pwm.freq()で周波数を指定することができます。開始したpwmはpwm.end()により停止することができます。

var pwm = obniz.getFreePwm();
pwm.start({io:0});
pwm.freq(10000); // 10k hz
pwm.duty(50) // 50%

ONとなる時間を指定することで変調が可能です。指定方法はONとなる時間の比率を指定するpwm.duty()またはONとなる時間をmsecで指定するpwm.pulse()で指定できます。以下duty比のイメージです。

Articles