Arduino 資料一覧
Node.jsで8ビットシフトレジスタ(SN74HC595N)を使ってLEDを点灯させる
2017/03/22更新
対応バージョン: Node.js 4.2.6, Johnny-Five 0.10.6

8ビットシフトレジスタ SN74HC595N (秋月電子通商)
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 >>

関連資料・記事
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
Node.js技術情報 (Qiita)
Johnny-Five技術情報 (Qiita)
エレクトロニクス豆知識 (ROHM)