Pinオブジェクトは、物理的なボード上のいずれかのピンを表すオブジェクトです。Pinオブジェクトを作成するには、Pinクラスのコンストラクタを使います。引数には、ピン番号を指定します。
new five.Pin(ピン番号)
|
オプションの「pin」プロパティでピン番号を指定する場合は、次のように書きます。
new five.Pin({
pin: ピン番号
});
|
○デジタル入出力のPinオブジェクトを作成する
○アナログ入力のPinオブジェクトを作成する
○Pinオブジェクトのタイプを設定する
デジタル入出力のPinオブジェクトを作成するには、Pinクラスのコンストラクタにデジタルのピン番号(Arduino Unoでは「0~19」)を指定します。たとえば、13ピンをデジタル入出力ピンと使用するためのPinオブジェクトを作成するには、次のように書きます。
// Arduino\CHAPTER02\Pin\pin-Digital.js
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クラスのコンストラクタにアナログのピン番号(Arduino Unoでは「A0~A5」)を指定します。たとえば、A0ピンをアナログ入力ピンと使用するためのPinオブジェクトを作成するには、次のように書きます。
// Arduino\CHAPTER02\Pin\pin-Analog.js
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);
});
});
|
通常、ピンのタイプは、ピン番号に基づいて自動的に推測されますが、明示的に設定する場合には、オプションの「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);
});
});
|
0 件のコメント:
コメントを投稿