PWMを利用して更に変調で行う機能がModulationです。obnizにはAM変調が実装されています。これがobnizで最も使われるのは赤外線リモコンの信号送信です。赤外線リモコンでは38Khzの周波数を送りたいデータでデジタル変調することで信号を送っています。
AM変調
下の図のように送りたいデータが1のときにはPWMが出力されて、0のときには何も出力されません(出力がfalseとなる)。
動作しているpwmに対してpwm.modulate()を呼ぶことで、変調が開始されます。ioと周波数は変わらないですが、duty比はどんな値に設定されていても50%での出力となります。pwm.modulate()では"am"を指定した次に1bitをどのぐらいの時間(msec)にするのかを指定しています。下例では1(msec)なので、8bit送るのに8msecかかります。最後に送りたいデータが配列となって入っています。ビットごとの配列です。
// Javascript Example
var pwm = obniz.getFreePwm();
pwm.start({io:0});
pwm.freq(5000);
pwm.modulate("am", 1, [1,1,0,0,1,1,1,0]);