○ShiftRegisterオブジェクトを作成する
シフトレジタを制御するには、ShiftRegisterオブジェクトを使います。ShiftRegisterオブジェクトは、物理的なボードに接続された単一のシフトレジタを表すオブジェクトのコレクションです。ShiftRegisterオブジェクトを作成するには、ShiftRegisterクラスのコンストラクタを使います。引数には、data、clock、latch、reset(オプション)用のピンの値を含む配列またはオブジェクトを指定します。
new five.ShiftRegister([ data, clock, latch, [reset]]);
|
たとえば、2ピンをdata、3ピンをclock、4ピンをlatchに使用するShiftRegisterオブジェクトを作成するには、次のように書きます。
new five.ShiftRegister([2, 3, 4]);
|
オブジェクトで指定する場合は、次のように書きます。
new five.ShiftRegister({
pins:
[2,
3,
4]
});
// または
new five.ShiftRegister({
pins:
{
data: 2,
clock: 3,
latch: 4
}
});
|
○シフトレジスタに8ビットデータを送信する
シフトレジスタに8ビット(1バイト)のデータを送信するには、「send」メソッドを使います。引数に送信する8ビットのバイト値、またはバイト値の配列を指定します。
send(バイト値)
send([ バイト値1, バイト値2])
|
たとえば、「0x11」を送信するには、次のように書きます。
var
five = require("johnny-five");
var
board = new five.Board();
board.on("ready", function() {
// ShiftRegisterオブジェクトを作成
var
register = new five.ShiftRegister([2, 3, 4]);
// データを送信
register.send(0x11);
});
|
・配線図
○シフトレジスタをクリアする
シフトレジスタをクリアするには、「clear」メソッドを使います。たとえば、5秒後にシフトレジスタをクリアするには、次のように書きます。
// データを送信
register.send(0xFF);
// 5秒後
this.wait(5000,
function(){
// シフトレジスタをクリア
register.clear();
});
|
○シフトレジスタのリセットを制御する
シフトレジスタのリセットを制御するには、まずresetピンを指定してShiftRegisterオブジェクトを作成します。たとえば、9ピンをresetピンに設定するには、次のように書きます。
new five.ShiftRegister({
pins:
{
data: 2,
clock: 3,
latch: 4,
reset: 9,
}
});
|
次の「reset」メソッドを使って、resetピンを「HIGH」にします。
// resetピンをHIGIにする
register.reset();
|
データの送信処理などは、「reset」メソッドの実行後に行います。
・配線図
○7セグメントLEDに数字を表示する
シフトレジスタを使用した7セグメントLEDの制御回路で、数字を表示するには、「display」メソッドを使います。引数には、数字の0~9を数値または文字列で指定します。
display(数字)
|
たとえば、0~9の数字を表示するには、次のように書きます。
var
five = require("johnny-five");
var
board = new five.Board();
board.on("ready", function() {
// ShiftRegisterオブジェクトを作成
var
register = new five.ShiftRegister([2, 3, 4]);
var
number = 0;
this.loop(500,
function() {
// 0~9の数字を表示
register.display(number++)
if
(number > 9) {
number = 0;
}
});
});
|
小数点を非表示するには、数字「.」を付けて指定します。
this.loop(500,
function() {
// 小数点付で0~9の数字を表示
register.display((number++) + ".")
if
(number > 9) {
number = 0;
}
});
|
※カソードコモンの場合、動作が逆になっていて「.」を付けると、小数点が消えます(2016年8月現在)。
・配線図-カソードコモン
なお、アノードコモンの7セグメントLEDを使用する場合、オプションの「isAnode」に「true」を指定して、ShiftRegisterオブジェクトを作成する必要があります。
new five.ShiftRegister({
isAnode: true,
pins:
[2,
3,
4]
});
|
・配線図-アノードコモン
0 件のコメント:
コメントを投稿