記事一覧

スポンサーサイト

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

Johnny-Fiveでマイコン制御34 - ドットマトリクスLED表示器

○Led.Matrixオブジェクトを作成する

 ドットマトリクス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)

2016080818.png 

 ドットマトリクスLEDモジュール

 

 I2CインターフェイスのHT16K33を使用したLEDマトリクスを使用する場合は、「controller」プロパティに「HT16K33」を指定します

new five.Led.Matrix({

  controller: "HT16K33"

});

 

 また、HT16K33を使用したLEDマトリクスは、次のオプションプロパティを指定できます。

プロパティ

タイプ

説明

既定値

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)

2016080819.png 

Adafruit 8x8 1.2インチLEDマトリクス

 

LEDマトリクスに文字を表示する

 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ドットが11で対応し、「1」に設定されたドットが点灯し、「0」に設定されたドットが消灯します。

// J5-Arduino\10\Led_Matrix\draw-pattern.js

  // 文字パターンを作成

  var heart = [

    "01100110",

    "10011001",

    "10000001",

    "10000001",

    "01000010",

    "00100100",

    "00011000",

    "00000000"

  ];

 

  // 文字パターンを表示

  matrix.draw(heart);

 

LEDマトリクスの行の点灯パターンを設定する

 LEDマトリクスの行の点灯パターンを設定するには、「row」メソッドを使います。引数には、行インデックス(015)と、点灯パターンを8ビットまたは16ビット値(0255)を指定します。

row(行インデックス, 点灯パターン)

 

 行数インデックスは「0」から始まるため、一般的な行数から「1」を引いた値を指定します。たとえば、2行目を全点灯するには、次のように書きます。

  // 1行目を全点灯

  matrix.row(1, 255);

 

 複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスが指定した行のパターンで点灯します。特定のLEDマトリクスの行の点灯パターンを設定するには、引数にデバイスインデックスを指定します。

row(デバイスインデックス, 行インデックス, 点灯パターン)

 

 デバイスインデックスは、カスケード接続されたLEDマトリクス(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。

 たとえば、デバイス0(デバイスインデックス「0)2行目を全点灯するには、次のように書きます。

  // デバイス01行目を全点灯

  matrix.row(0, 1, 255);

 

LEDマトリクスの列の点灯パターンを設定する

LEDマトリクスの列の点灯パターンを設定するには、「column」メソッドを使います。引数には、列インデックス(015)と、点灯パターンを8ビットまたは16ビット値(0255)を指定します。

column(列インデックス, 点灯パターン)

 

 列インデックスは「0」から始まるため、一般的な列数から「1」を引いた値を指定します。たとえば、2列目を全点灯するには、次のように書きます。

  // 2列目を全点灯

  matrix.column (1, 255);

 

 複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスが指定した列のパターンで点灯します。特定のLEDマトリクスの列の点灯パターンを設定するには、引数にデバイスインデックスを指定します。

column(デバイスインデックス, 列インデックス, 表示パターン値)

 

 デバイスインデックスは、カスケード接続されたLEDマトリクス(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。

 たとえば、デバイス0(デバイスインデックス「0)2列目を全点灯するには、次のように書きます。

  // デバイス02列目を全点灯

  matrix.column(0, 1, 255);

 

LEDマトリクスの特定のドットを点灯する

 LEDマトリクスの特定のドットを点灯するには、「led」メソッドを使います。引数には、対象のドットの位置を示す行インデックスと列インデックス(015)、および点灯状態(0」で消灯、「1」で点灯)を指定します。

led(行インデックス, 列インデックス, 点灯状態)

 

 行インデックスと列インデックスは「0」から始まるため、一般的な行数と列数から「1」を引いた値を指定します。たとえば、23列目のドットを点灯するには、次のように書きます。

  // 23列目のドットを点灯

  matrix.led(1, 2, 1);

 

複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスで指定したドットが点灯します。特定のLEDマトリクスのドットを点灯するには、引数にデバイスインデックスを指定します。

led (デバイスインデックス, 行インデックス, 列インデックス, 点灯状態)

 

 デバイスインデックスは、カスケード接続されたLEDマトリクス(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。

 たとえば、デバイス0(デバイスインデックス「0)23列目のドットを点灯するには、次のように書きます。

// J5-Arduino\10\Led_Matrix\led-deviceIndex.js

  // デバイス023列目のドットを点灯

  matrix.led(0, 1, 2, 1);

 

 なお、バイカラー(2)LEDマトリクスの場合、点灯状態にLEDの色を指定することができます。たとえば、23列目のドットを黄色で点灯するには、次のように書きます。

// J5-Arduino\10\Led_Matrix\HT16K33led-biColor.js

  var matrix = new five.Led.Matrix({

    controller: "HT16K33"

    isBicolor: true

  });

 

  // デバイス023列目のドットを黄色で点灯

  matrix.led(0, 1, 2, LedControl.COLORS.YELLOW);

});

 

 指定できる色の定数は、次のとおりです。

定数

LedControl.COLORS.GREEN

LedControl.COLORS.YELLOW

LedControl.COLORS.RED

 

LEDマトリクスの明るさを調整する

 LEDマトリクスの明るさ(輝度)を調整するには、「brightness」メソッドを使います。引数には輝度を0100()で指定します。

brightness(輝度)

 

 たとえば、輝度を50%に設定するには、次のように書きます。

  // 輝度を50%設定

  matrix.brightness(50);

 

複数のLEDマトリクスがカスケード(多段)接続されている場合、すべてのLEDマトリクスの輝度が設定されます。特定にLEDマトリクスの輝度を設定するには、引数にデバイスインデックスを指定します。

brightness(デバイスインデックス, 輝度)

 

デバイスインデックスは、カスケード接続されたLED表示器(最大8デバイス)の中から、特定のLEDマトリクスを識別するための番号で、連結順に「0」から始まる連番になります。

たとえば、デバイス0(デバイスインデックス「0)LEDマトリクスの輝度を50%に設定するには、次のように書きます。

// J5-Arduino\10\Led_Matrix\brightness-deviceIndex.js

  // デバイス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);



スポンサーサイト

コメント

コメントの投稿

非公開コメント

ads

プロフィール

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

kindle本

最新コメント

温度計

ads

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