Arduino資料一覧

Node.jsで8ビットシフトレジスタ(SN74HC595N)を使ってLEDを点灯させる

2017/03/22更新

対応バージョン: Node.js 4.2.6, Johnny-Five 0.10.6

Node.jsでArduino Unoにつないだ8ビットシフトレジスタ(SN74HC595N)を使って8ビットの各ビットを8個のLEDそれぞれに割り当てて点灯させる。

Node.jsを動かす母艦はUbuntu 16.04とする。

結線

シフトレジスタの各ピンは以下の割り当てになっている。

・QA(15ピン),QB〜QH(1〜7ピン): LED1〜8

・QH'(9ピン): シフトレジスタを数珠つなぎにする場合に結線

・Vcc(16ピン), SRCLR(10ピン): 電源

・GND(8ピン), OE(13ピン): GND

・SER(14ピン): シリアルデータ入力(現在のアドレスにHIGH/LOWを入力する。最大8ビット分)

・RCLK(12ピン): レジスタクロック(8ビット分のデータを入力してHIGHにするとQA〜QHからパラレルデータが出力される)

・SRCLK(11ピン): シフトレジスタクロック(HIGHにするとデータの入力先が次のアドレスに移る)

これをふまえて結線は以下のとおりとする。

ソース

以下のようなコードを書きNode.jsで実行する。

シフトレジスタに0〜255までの数字を順番に送信し、8個のLEDがその数字を2進数で表した時の各ピットのON/OFF状態を示すように点灯させる。

sn74hc595n.js
var five = require("johnny-five");
var board = new five.Board();

board.on('ready', function() {
  var register = new five.ShiftRegister({
    'pins' : {
      'data'  : 2,
      'clock' : 3,
      'latch' : 4
    }
  });

  var number = 0;

  this.loop(100, function() {
    register.send(number++);
    if (number > 255) {
      number = 0;
    }
  });
});
実行
% node sn74hc595n.js
1485094276071 Device(s) /dev/ttyACM0  
1485094276078 Connected /dev/ttyACM0  
>>

関連資料・記事

参考サイト