ドットマトリクスLED表示器(以下、LEDマトリクス)を制御するには、Led. Matrixオブジェクトを使います。Led.Matrixオブジェクトは、物理的なボードに接続された単一のLEDマトリクスを表すオブジェクトです。Led.Matrixオブジェクトを作成するには、Led.Matrixクラスのコンストラクタを使います。
Johnny-Fiveでは、シフトレジスタ・デバイスの「MAX7219」と「MAX7221」、I2Cインターフェイス・デバイスの「HT16K33」を使用したLEDマトリクスをサポートしています。
シフトレジスタ・デバイスのLEDマトリクスを制御するLed. Matrixオブジェクトを作成するには、コンストラクタの引数に、LEDマトリクスの「DATA(DIN)」「CLOCK」「CS)」用のピン番号を含むオブジェクトを指定します。
たとえば、2ピンに「DATA(DIN)」、3ピンに「CLOCK」、4ピンに「CS」を使用するLed. Matrixオブジェクトを作成するには、次のように書きます。
new five.Led.Matrix({
pins:
{
data: 2,
clock: 3,
cs: 4
}
});
|
・配線図(led-matrix.fzz)
new five.Led.Matrix({
controller: "HT16K33"
});
|
プロパティ
|
タイプ
|
説明
|
既定値
|
addresses
|
配列
|
I2Cアドレスの配列
|
0x70-0x77の範囲
|
isBicolor
|
真偽値
|
trueでバイカラー
|
false
|
dims
|
オブジェクト
|
寸法表参照
|
8x8
|
dims
|
配列
|
寸法表参照
|
8x8
|
dims
|
文字列
|
寸法表参照
|
8x8
|
・寸法表
名前
|
行
|
列
|
8x8
|
8
|
8
|
16x8
|
16
|
8
|
8x16
|
8
|
6
|
・配線図(led-matrix-HT16K33)
LEDマトリクスに文字を表示するには、「draw」メソッドを使います。引数には、表示する文字、または文字パターンを指定します。
draw(文字)
|
指定可能な文字は、次のとおりです。
0 1 2 3 4 5 6 7
8 9
! " # $ %
& ' ( ) * + , - . / : ; < = > ? @
A B C D E F G H
I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ `
a b c d e f g h
i j k l m n o p q r s t u v w x y z { | } ~
|
たとえば、アルファベット大文字「G」を表示するには、次のように書きます。
// 文字を表示
matrix.draw("G")
|
複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスで指定した文字が表示されます。特定のLEDマトリクスに文字を表示するには、引数にデバイスインデックスを指定します。
draw(デバイスインデックス, 文字)
|
デバイスインデックスは、カスケード接続されたLEDマトリクス(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。
たとえば、デバイス0(デバイスインデックス「0」)に文字を表示するには、次のように書きます。
// デバイス0に文字を表示
matrix.draw(0,
"G");
|
○LEDマトリクスに指定した文字パターンを表示する
LEDマトリクスに指定した文字パターンを表示するには、「draw」メソッドの引数に文字パターンを指定します。
文字パターンは8ビットまたは16ビットの値の配列((8または16個の要素を持つ配列)を指定します。文字パターンの配列の行と列の数は、LEDマトリクスの寸法と一致している必要があります。
たとえば、8×8でハートマークを表示するための文字パターンの配列は、次のよう定義します。
[
"01100110",
"10011001",
"10000001",
"10000001",
"01000010",
"00100100",
"00011000",
"00000000"
];
|
各ビットの値と、LEDマトリクスの1ドットが1対1で対応し、「1」に設定されたドットが点灯し、「0」に設定されたドットが消灯します。
// 文字パターンを作成
var
heart = [
"01100110",
"10011001",
"10000001",
"10000001",
"01000010",
"00100100",
"00011000",
"00000000"
];
// 文字パターンを表示
matrix.draw(heart);
|
○LEDマトリクスの行の点灯パターンを設定する
LEDマトリクスの行の点灯パターンを設定するには、「row」メソッドを使います。引数には、行インデックス(0~15)と、点灯パターンを8ビットまたは16ビット値(0~255)を指定します。
row(行インデックス, 点灯パターン)
|
行数インデックスは「0」から始まるため、一般的な行数から「1」を引いた値を指定します。たとえば、2行目を全点灯するには、次のように書きます。
// 1行目を全点灯
matrix.row(1,
255);
|
複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスが指定した行のパターンで点灯します。特定のLEDマトリクスの行の点灯パターンを設定するには、引数にデバイスインデックスを指定します。
row(デバイスインデックス, 行インデックス, 点灯パターン)
|
デバイスインデックスは、カスケード接続されたLEDマトリクス(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。
たとえば、デバイス0(デバイスインデックス「0」)の2行目を全点灯するには、次のように書きます。
// デバイス0の1行目を全点灯
matrix.row(0,
1,
255);
|
○LEDマトリクスの列の点灯パターンを設定する
LEDマトリクスの列の点灯パターンを設定するには、「column」メソッドを使います。引数には、列インデックス(0~15)と、点灯パターンを8ビットまたは16ビット値(0~255)を指定します。
column(列インデックス, 点灯パターン)
|
列インデックスは「0」から始まるため、一般的な列数から「1」を引いた値を指定します。たとえば、2列目を全点灯するには、次のように書きます。
// 2列目を全点灯
matrix.column
(1,
255);
|
複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスが指定した列のパターンで点灯します。特定のLEDマトリクスの列の点灯パターンを設定するには、引数にデバイスインデックスを指定します。
column(デバイスインデックス, 列インデックス, 表示パターン値)
|
デバイスインデックスは、カスケード接続されたLEDマトリクス(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。
たとえば、デバイス0(デバイスインデックス「0」)の2列目を全点灯するには、次のように書きます。
// J5-Arduino\10\Led_Matrix\column-deviceIndex.js
// デバイス0の2列目を全点灯
matrix.column(0,
1,
255);
|
○LEDマトリクスの特定のドットを点灯する
LEDマトリクスの特定のドットを点灯するには、「led」メソッドを使います。引数には、対象のドットの位置を示す行インデックスと列インデックス(0~15)、および点灯状態(「0」で消灯、「1」で点灯)を指定します。
led(行インデックス, 列インデックス, 点灯状態)
|
行インデックスと列インデックスは「0」から始まるため、一般的な行数と列数から「1」を引いた値を指定します。たとえば、2行3列目のドットを点灯するには、次のように書きます。
// 2行3列目のドットを点灯
matrix.led(1,
2,
1);
|
複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスで指定したドットが点灯します。特定のLEDマトリクスのドットを点灯するには、引数にデバイスインデックスを指定します。
led (デバイスインデックス, 行インデックス, 列インデックス, 点灯状態)
|
デバイスインデックスは、カスケード接続されたLEDマトリクス(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。
たとえば、デバイス0(デバイスインデックス「0」)の2行3列目のドットを点灯するには、次のように書きます。
// デバイス0の2行3列目のドットを点灯
matrix.led(0,
1,
2,
1);
|
なお、バイカラー(2色)LEDマトリクスの場合、点灯状態にLEDの色を指定することができます。たとえば、2行3列目のドットを黄色で点灯するには、次のように書きます。
// J5-Arduino\10\Led_Matrix\HT16K33¥led-biColor.js
var matrix
= new five.Led.Matrix({
controller: "HT16K33"
isBicolor: true
});
// デバイス0の2行3列目のドットを黄色で点灯
matrix.led(0,
1,
2,
LedControl.COLORS.YELLOW);
});
|
指定できる色の定数は、次のとおりです。
定数
|
色
|
LedControl.COLORS.GREEN
|
緑
|
LedControl.COLORS.YELLOW
|
黄
|
LedControl.COLORS.RED
|
赤
|
○LEDマトリクスの明るさを調整する
LEDマトリクスの明るさ(輝度)を調整するには、「brightness」メソッドを使います。引数には輝度を0~100(%)で指定します。
brightness(輝度)
|
たとえば、輝度を50%に設定するには、次のように書きます。
// 輝度を50%設定
matrix.brightness(50);
|
複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスの輝度が設定されます。特定にLEDマトリクスの輝度を設定するには、引数にデバイスインデックスを指定します。
brightness(デバイスインデックス, 輝度)
|
デバイスインデックスは、カスケード接続されたLED表示器(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。
たとえば、デバイス0(デバイスインデックス「0」)のLEDマトリクスの輝度を50%に設定するには、次のように書きます。
// デバイス0の明るさ(輝度)を50%に設定
matrix.brightness(0,
50);
|
○LEDマトリクスの表示をオン/オフ/クリアする
LEDマトリクスの表示をオフにするには「off」メソッドを、オンにするには「on」メソッドを使います。たとえば、5秒後にオフにし、10秒後にオンにするには、次のように書きます。
// 5秒後
this.wait(5000,
function(){
// 表示オフ
matrix.off();
});
// 10秒後
this.wait(10000,
function(){
// 表示
matrix.on();
});
|
複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスがオフ/オンされます。特定のLEDマトリクスをオン/オフするには、引数にデバイスインデックスを指定します。デバイスインデックスは、カスケード接続されたLEDマトリクス(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。
this.wait(5000,
function(){
// デバイス0の表示オフ
matrix.off(0);
});
// 10秒後
this.wait(10000,
function(){
// デバイス0の表示オン
matrix.on(0);
});
|
なお、オフにしてもデータは保持され、オンにすると元の状態で表示されます。LEDマトリクスの表示をクリアするには、「clear」メソッドを使います。
// すべてのLED表示器の表示をクリア
matrix.clear();
|
複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLED表示器がクリアされます。特定のLED表示器をクリアするには、引数にデバイスインデックスを指定します。
// デバイス0をクリア
matrix.clear(0);
|
0 件のコメント:
コメントを投稿