距離センサーのループ方法



  • 距離センサーのHC-SR04を使って、距離の変化を待ち合わせ、ある範囲の距離を検知した時に特定処理を実行したいのですが、どのように書けばよいでしょうか。特定処理実行後は、再度距離の変化を待ち合わせるようなループにしたい。

    下記のようなパーツライブラリのサンプルの動作までは試しました。

    // Javascript Example
    var hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3});
    hcsr04.measure(function( distance ){
    console.log("distance " + distance + " mm")
    })



  • @Google-Homer 定期的に計測をして、範囲を調べることになります。

    var hcsr04 = obniz.wired("HC-SR04", {gnd:0, echo:1, trigger:2, vcc:3});
    function measure() {
      hcsr04.measure(function( distance ){
        if (100 < distance && distance < 1000) {
          console.log("in")
        }
      setTimeout(measure, 1000); // every 1 sec
      })
    }
    measure();
    

    このようになります。
    HC-SR04は計測の指示を出さないと計測しないタイプなので、もし高速に計測されたい場合で、ガラスなどが測れなくても良ければ

    https://obniz.io/sdk/parts/GP2Y0A21YK0F/README.md?iframe=false

    の方がより高速に計測できます。



  • ありがとうございました。
    HC-SR04で教えてもらった方法でできました。



  • @Google-Homer よかったです!


Log in to reply
 

SUGGESTED TOPICS