LoginSignup
2
2

More than 5 years have passed since last update.

obnizでRDM-01を動かす(その2)

Last updated at Posted at 2019-03-02

はじめに

RDM-01をobnizで遊べるように、obnizを使ってGPIOが変化した時にのみ呼ばれるサンプルを作ろうと思い、それで作ってみたのが以前obnizでRDM-01を動かすの記事でした。
しかし、これを書いた後にobnizユーザーさんから
  
"ループしなくてもGPIOの変化が取れるよ!"
(なんだって!!!)
と教えてもらったので、改めてobninzのライブラリを見直して、実際に実装しました。

サンプルコード

サンプルコード自体はRDM-01のgithubにUPしました。

早速サンプルコードを。

obnizRDM_sample.js

<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <script src="https://obniz.io/js/jquery-3.2.1.min.js"></script>
  <script src="https://unpkg.com/obniz@1.16.1/obniz.js" crossorigin="anonymous"></script>
</head>
<body>

<div id="obniz-debug"></div>
<h1>RDM-01 sample</h1>
<div id="print"></div>
<h2>画像のようにobnizと接続してください</h2>
<img src="https://github.com/norioike/DTMF_module_RDM-01/blob/master/obniz_sample/obniz_connection_image.JPG?raw=true">
<script>

let Decode = ["D","1", "2", "3", "4","5", "6", "7", "8","9", "0", "*", "#","A", "B", "C"]

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

//電源の設定
  var usb = obniz.wired("USB" , {gnd:5, vcc:6} );
  usb.on();

  //ディスプレイ
  obniz.display.clear();
  obniz.display.print("RDM-01起動!");


  obniz.io0.input(async function(value){ //StDの電圧が変化した時に呼ばれる。
    if(value){ // LOW -> HIGHになったとき
      let q1 = await obniz.io4.inputWait();
      let q2 = await obniz.io3.inputWait();
      let q3 = await obniz.io2.inputWait();
      let q4 = await obniz.io1.inputWait();

      let result = (q4 << 3) +  (q3 << 2) +  (q2 << 1) + q1

      obniz.display.clear();
      obniz.display.print(Decode[result]);
      console.log(Decode[result])//PCの画面上にもログとして表示する

    }else{ // HIGH -> LOWになったとき
     console.log("DTMF sound stopped");
    } 
  });


}

</script>
</body>
</html>

このままコピペしてもらえれば動かすことができるようになっています。

ポイントは

obniz.io0.input(async function(value){

この1行で、io0の入力がHIGH -> LOW, LOW -> HIGHになったときにのみ呼ばれるようになります。
別にループする必要はなく動かすことができるので、サンプルコードのように、シンプルにまとめることができました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2