PWM: Modulationする

obnizのPWMにはModulation(変調)機能があります。
pwm出力をあるデータで変調できます。

これがobnizで最も使われるのは赤外線リモコンの信号送信です。
赤外線リモコンでは38Khzの周波数を送りたいデータでデジタル変調することで信号を送っています。

AM変調

現在obnizではAM変調のみに対応しています。
AM変調なので、下の図のように送りたいデータが1のときにはある周波数が出力されて、0のときには何も出力されないということになります。

使ってみる

変調は出来てるかどうかを確認するのがとても難しいので、オシロスコープを使うことにします。

変調はこのようにします。

pwm.modulate("am", 1, [1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]); 

まずamでpwmに対してAM変調したいと指定します。今はamしかありません。
次に1bitをどのぐらいの長さにするのかを指定しています。
8bitの情報を送るのに1bitが1msecだと、全部送るのに8msecかかります。

最後に送りたいデータが配列となって入っています。ビットごとの配列です。ture/falseまたは1/0の配列としてデータを設定して下さい。

では、実際にやってみましょう。
オシロスコープで確認するためにio11をfalseにしてあります。また、トリガーしやすいようにmodulateするより前に1秒の待ちを入れてあります。

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  obniz.io11.output(false);

  var pwm = obniz.getFreePwm();
  pwm.start({io:0});
  pwm.freq(5000);

  await obniz.wait(1000);

  pwm.modulate("am", 1, [1,1,0,0,1,1,1,0]); 
}

obnizのio0を確認するとこのようになります。確かに変調できているのが確認できると思います。

変調は必ずduty比50%で行われます。どんなduty比が設定されていても必ずそうなります。
またその他、送信できるデータの最大長や1bitの長さの制限もあります。詳しくはpwmのドキュメントをご覧ください。



Next : UART: transmit

You will Get in Few Days

Circuit for Starter “obniz Board” is available on Amazon and other online stores.
You can get it at below

Our products and resellers

Forum

Visit our developer’s forum to discuss and discover technologies.

Forum

Contact

Feel free to contact out support and technical team.

Contact us