2016年8月24日水曜日

Johnny-Fiveでマイコン制御33 - 7セグメントLED表示器

○Led.Digitsオブジェクトを作成する
 7セグメントLED表示器(以下、LED表示器)を制御するには、Led.Digitsオブジェクトを使います。Led.Digitsオブジェクトは、物理的なボードに接続された単一のLED表示器を表すオブジェクトです。Led.Digitsオブジェクトを作成するには、Led.Digitsクラスのコンストラクタを使います。
 Johnny-Fiveでは、シフトレジスタ・デバイスの「MAX7219」と「MAX7221」、I2Cインターフェイス・デバイスの「HT16K33」を使用したLED表示器をサポートしています。
 シフトレジスタ・デバイスのLED表示器を制御するLed.Digitsオブジェクトを作成するには、コンストラクタの引数にLED表示器の「DATA(DIN)」「CLOCK」「CS」用のピン番号を含むオブジェクトを指定します。
たとえば、2ピンに「DATA(DIN)」、3ピンに「CLOCK」、4ピンに「CS」を使用するLed.Digitsオブジェクトを作成するには、次のように書きます。
new five.Led.Digits({
  pins: {
    data: 2,
    clock: 3,
    cs: 4
  }
});


・配線図

 I2CインターフェイスのHT16K33を使用したLED表示器を使用する場合は、「controller」プロパティに「HT16K33」を指定します
new five.Led.Digits({
  controller: "HT16K33"
});

・配線図
 

○LED表示器に文字を表示する
 LED表示器に文字を表示するには、「string」メソッドを使います。引数には、表示する文字列を指定します。
print(文字列)

 たとえば、「HELLO」と表示するには、次のように書きます。
var five = require("johnny-five");
var board = new five.Board();

board.on("ready", function() {
  // Led.Digitsオブジェクトを作成
  var digits = new five.Led.Digits({
    pins: {
      data: 2,
      clock: 3,
      cs: 4
    }
  });

  // 文字列を表示
  digits.print("HELLO");
});

 指定可能な文字は、次のとおりです。
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


○LED表示器の特定の桁に文字を表示する
 LED表示器の特定の桁(この場合の桁は、左から右に07と数える)に文字を表示するには、「draw」メソッドを使います。引数には、桁位置(07)と表示する文字を指定します。
draw(, 文字)

たとえば、0桁目に「1」を表示するには、次のように書きます。
  // 0桁目に「1」を表示
  digits.draw(0, "1");

複数のLED表示器がカスケード(多段)接続されている場合、すべてのLED表示器で、指定した桁位置に文字が表示されます。特定のLED表示器に文字を表示するには、引数にデバイスインデックスを指定します。
draw(デバイスインデックス, , 文字)

デバイスインデックスは、カスケード接続されたLED表示器(最大8デバイス)の中から、特定のLED表示器を識別するための番号で、連結順に「0」から始まる連番になります。
たとえば、デバイス0(デバイスインデックス「0)LED表示器の0桁目に「1」を表示するには、次のように書きます。
  // デバイス00桁目に「1」を表示
  digits.draw(0, 0, "1");


○LED表示器の明るさを調整する
 LED表示器の明るさ(輝度)を調整するには、「brightness」メソッドを使います。「brightness」メソッドを使います。引数には輝度を0100()で指定します。
brightness(輝度)

 たとえば、輝度を50%に設定するには、次のように書きます。
  // 輝度を50%設定
  digits.brightness(50);

複数のLED表示器がカスケード(多段)接続されている場合、すべてのLED表示器の輝度が設定されます。特定にLED表示器の輝度を設定するには、引数にデバイスインデックスを指定します。
brightness(デバイスインデックス, 輝度)
デバイスインデックスは、カスケード接続されたLED表示器(最大8デバイス)の中から、特定のLED表示器を識別するための番号で、連結順に「0」から始まる連番になります。
たとえば、デバイス0(デバイスインデックス「0)の輝度を50%に設定するには、次のように書きます。
  // デバイス0の輝度を50%に設定
  digits.brightness(0, 50);

○LED表示器の表示をオフ/オン/クリアする
 LED表示器の表示をオフにするには「off」メソッドを、オンにするには「on」メソッドを使います。たとえば、5秒後にオフにし、10秒後にオンにするには、次のように書きます。
  // 5秒後
  this.wait(5000, function(){
    // 表示オフ
    digits.off();
  });
  // 10秒後
  this.wait(10000, function(){
    // 表示
    digits.on();
  });

複数のLED表示器がカスケード(多段)接続されている場合、すべてのLED表示器がオフ/オンされます。特定のLED表示器をオン/オフするには、引数にデバイスインデックスを指定します。デバイスインデックスは、カスケード接続されたLED表示器(最大8デバイス)の中から、特定のLED表示器を識別するための番号で、連結順に「0」から始まる連番になります。
 たとえば、デバイス0(デバイスインデックス「0)の表示をオフ/オンするには、次のように書きます。
  this.wait(5000, function(){
    // デバイス0の表示をオフ
    digits.off(1);
  });
  // 10秒後
  this.wait(10000, function(){
    // デバイス0の表示をオン
    digits.on(1);
  });

 なお、オフにしてもデータは保持され、オンにすると元の状態で表示されます。LED表示器の表示をクリアするには、「clear」メソッドを使います。
    // すべてのLED表示器の表示をクリア
    digits.clear();
 複数のLED表示器がカスケード(多段)接続されている場合、すべてのLED表示器がクリアされます。特定のLED表示器をクリアするには、引数にデバイスインデックスを指定します。

    // デバイス0をクリア
    digits.clear(0);

0 件のコメント:

コメントを投稿