IOの端子にかけられている電圧を調べる機能がADです。電圧の変化するもの、例えば光の量を調べる光センサーなどを接続しADで電圧を測ることで光の量を知ることができます。
io.inputWait()と同じく一度だけその時の電圧を調べるのがad.getWait()です。
io0で利用できるadはad0となります。デバイスによってはすべてのioにadがあるわけではないので詳しくはデバイス詳細を御覧ください。
// Javascript Example
var voltage = await obniz.ad0.getWait();
計測できる最大電圧はデバイスに依存します。obniz Boardシリーズの場合は0~5v(電源電圧)までとなります。また、ad.start()関数を使いコールバック関数を設定することで「電圧に変化があったとき」にその電圧を受け取ることができます。
// Javascript Example
obniz.ad0.start(function(voltage){
console.log("changed to "+voltage+" v")
});
受け取れる頻度はネットワークの速度に依存します。つまりどんなにadが激しく変化していたとしても、ある頻度でしか取得することができません。また、どんなに高速でも30サンプル/秒が最も速い頻度となります。
obniz Boardシリーズについて
obniz BoardシリーズではADのための回路を内蔵しており、他のプロセッサとは異なる挙動となります。
obniz BoardシリーズではADのための回路がIOユニットの外部についています。そのため、IOの出力やペリフェラルの利用と同時にADを使うことができます。
また、ADは通常電源電圧が下がると正しい結果となりませんがobniz Boardでは下の表に従い電源電圧による補正が自動的に行われます。補正の対象となる電圧はobnizOSのバージョンにより異なります。
obnizOS version | calibration method |
---|---|
under 1.2 | Always |
1.2 or higher | Only Vdd is under 4.5v |