記事一覧

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Johnny-Fiveでマイコン制御11 - Pin

○Pinオブジェクトを作成する

 Pinオブジェクトは、物理的なボード上のいずれかのピンを表すオブジェクトです。Pinオブジェクトを作成するには、Pinクラスのコンストラクタを使います。引数には、ピン番号を指定します。

new five.Pin(ピン番号)

 

 オプションの「pin」プロパティでピン番号を指定する場合は、次のように書きます。

new five.Pin({

  pin: ピン番号

});

 

○デジタル入出力のPinオブジェクトを作成する

 デジタル入出力のPinオブジェクトを作成するには、Pinクラスのコンストラクタにデジタルのピン番号(Arduino Unoでは「019)を指定します。たとえば、13ピンをデジタル入出力ピンと使用するためのPinオブジェクトを作成するには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  // デジタルのpinオブジェクトを作成

  var pin = new five.Pin(13);

 

  // JSON形式

  // var pin = new five.Pin({pin: 13});

 

  var state = 0x00;

  this.loop(500, function() {

    pin.write(state ^= 0x01);

  });

});

 

○アナログ入力のPinオブジェクトを作成する

アナログ入力のPinオブジェクトを作成するには、Pinクラスのコンストラクタにアナログのピン番号(Arduino Unoでは「A0A5)を指定します。たとえば、A0ピンをアナログ入力ピンと使用するためのPinオブジェクトを作成するには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  // アナログ入力のpinオブジェクトを作成

  var pin = new five.Pin("A0");

 

  // JSON形式

  // var pin = new five.Pin({pin: "A0"});

 

  pin.read(function(error, value) {

    console.log(value);

  });

});

 

 

○Pinオブジェクトのタイプを設定する

 通常、ピンのタイプは、ピン番号に基づいて自動的に推測されますが、明示的に設定する場合には、オプションの「type」プロパティを使います。値に「digital」または「analog」を指定します。

 たとえば、たとえば、A0(19)ピンをデジタル入出力ピンと使用するためのPinオブジェクトを作成するには、次のように書きます。

 

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  // アナログ入力A0をデジタル入出力として使う

  // pinオブジェクトを作成

  var pin = new five.Pin({

                 pin: 14,

                 type: "digital"

               });

  var state = 0x00;

  this.loop(500, function() {

    pin.write(state ^= 0x01);

  });

});

 

デジタル値を出力する

 デジタル値のHIGH(1)を出力するには「high」メソッドを、デジタル値のLOW(0)を出力するには「low」メソッドを使います。

 「write」メソッドでデジタル値を出力することもできます。引数に「0」を指定するとLOW、「1」を指定するとHIGHになります。

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  // pinオブジェクトを作成

  // 13ピンをデジタル入出力に設定

  var pin = new five.Pin(13);

  // HIGH(1)を出力

  pin.high();

 

this.wait(1000, function() {

    // LOW(0)を出力

     pin.low();

  });

 

  this.wait(2000, function() {

    // HIGH(1)を出力

    pin.write(1);

    // または

    //five.Pin.write(pin, 1);

  });

 

  this.wait(3000, function() {

    // HIGH(1)を出力

     pin.write(0);

    // または

    //five.Pin.write(pin, 0);

  });

});

write」メソッドを実行すると、ピンはデジタル出力に設定されます。このため、引数に1以上の値を指定してもHIGHになります。

 

 

ピンの入力値を読み取る

 ピンの入力値を読み取るには、「read」メソッドを使います。読み取った値は、value引数に渡されます。

read(コールバック関数(error引数, value引数))

 

たとえば、13ピンのデジタル入力値を読み取るには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  // pinオブジェクトを作成

  // 13ピンをデジタル入出力に設定

  var pin = new five.Pin(13);

 

  // ピンの入力値を読み取って表示

  pin.read(function(error, value) {

    console.log(value);

  });

 

  /* または

  five.Pin.read(pin, function(error, value) {

    console.log(value);

  });

  */

});

 

ピンの現在の状態を確認する

 ピンの現在の状態を確認するには、「query」メソッドを使います。コールバック関数の引数にピンの状態のオブジェクトが渡されます。

query(コールバック関数(引数))

 

たとえば、13ピンの現在の状態を表示するには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  // pinオブジェクトを作成(13ピンをデジタル入出力に設定)

  var pin = new five.Pin(13)

 

  // 13ピンの現在の状態を表示

  pin.query(function(state) {

  console.log(state);

  });

});

 

ピンの状態のオブジェクトは、次のようになります。

{

  supportedModes: [ 0, 1, 4 ],

  mode: 1,

  value: 0,

  report: 1,

  analogChannel: 127

  state: 1,

}

ピンの状態のオブジェクトの各プロパティの詳細は、次のとおりです、

プロパティ

説明

supportedModes

ピンでサポートされるモードの値リスト

mode

現在のモード

value

現在の値

report

現在、その値を報告しているかどうか

analogChannel

アナログピンの数値インデックス、デジタルピンの場合は127

state

出力モードの場合以前に書き込まれた値、入力モードの場合、プルアップの状態

 モードの値の対応表は、次のとおりです

モード

デジタル入力

0

デジタル出力

1

アナログ入力

2

PWM出力

3

サーボ出力

4

 

 

ピンのモードを設定する

 ピンのモードを設定するには、オプションの「mode」プロパティをつかいます。設定できる値、定数は、次のとおりです。

モード

定数

デジタル入力

0

Pin.INPUT

デジタル出力

1

Pin.OUTPUT

アナログ入力

2

Pin.ANALOG

PWM出力

3

Pin.PWM

サーボ出力

4

Pin.SERVO

 

 たとえば、9ピンをPWM出力に設定するには、次のように書きます。

var five = require("johnny-five");

var board = new five.Board();

 

board.on("ready", function() {

  // pinオブジェクトを作成

  // 9ピンをPWM出力に設定

  var pin = new five.Pin({

              pin: 9,

              mode: five.Pin.PWM,

            });

 

  // pinオブジェクトの状態を確認

  pin.query(function(state) {

    console.log(state);

  });

});

スポンサーサイト

コメント

コメントの投稿

非公開コメント

ads

プロフィール

Author:部員3号
FC2ブログへようこそ!

kindle本

最新コメント

温度計

ads

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。