Arduino 資料一覧
Node.jsで7セグLED(C-551SRD)を0〜9までカウントアップ表示させる
2017/02/07更新
対応バージョン: Node.js 4.2.6, Johnny-Five 0.10.6

Node.jsでArduino Unoにつないだ7セグLEDを0〜9までカウントアップ表示させる。
超高輝度赤色7セグメントLED表示器 1文字カソードコモン ボディ黒 C-551SRD (秋月電子通商)
Node.jsを動かす母艦はUbuntu 16.04とする。
抵抗値計算
IF(順電流): 20mA
VF(順電圧): 2.2V
抵抗 = (電源電圧5V - 順電圧2.2V) / 順電流20mA = 2.8V / 0.02A = 140Ω
抵抗はこの値より大きければ問題ないのでここでは220Ωの抵抗を使用する。
結線
結線は以下の通り。3番ピンと8番ピンはカソードコモンなのでGNDに接続し、その他のピンは抵抗を挟んでそれぞれ同じ番号のソケットに接続する。ただ1番ピンを接続する1番ソケットは動作しなかったので11番ソケットにつないでいる。



ソース
以下のようなコードを書きNode.jsで実行する。
各数字に対応したLEDのON/OFF状態を配列として定義しておき、0〜9まで順番に表示する。
7seg.js
// ピン定義 // // -- ピン配列 ---------------------- // a(7) // +-----+ // f(9)| |b(6) // +g(10)+ // e(1)| |c(4) // +-----+ // d(2) []DP(5) // // -- 値 ---------------------------- // 0: LOW (消灯) // 1: HIGH(点灯) // 9: 未使用 // // -- ピン番号 ---------------------- // *) 0ピンは存在しないので未使用(=9) // *) 5ピン(DP)は常時消灯(=0) // *) 1ピンが動作しないので11ピン使用 // 1 1 // 0 1 2 3 4 5 6 7 8 9 0 1 // ------------------------- var led_list = [ [9,9,1,9,1,0,1,1,9,1,0,1], // 0 [9,9,0,9,1,0,1,0,9,0,0,0], // 1 [9,9,1,9,0,0,1,1,9,0,1,1], // 2 [9,9,1,9,1,0,1,1,9,0,1,0], // 3 [9,9,0,9,1,0,1,0,9,1,1,0], // 4 [9,9,1,9,1,0,0,1,9,1,1,0], // 5 [9,9,1,9,1,0,0,1,9,1,1,1], // 6 [9,9,0,9,1,0,1,1,9,0,0,0], // 7 [9,9,1,9,1,0,1,1,9,1,1,1], // 8 [9,9,1,9,1,0,1,1,9,1,1,0], // 9 [9,9,0,9,0,0,0,0,9,0,0,0] // 消灯 ]; // メインループ var five = require("johnny-five"); var board = new five.Board(); board.on("ready", function() { var num = 0; // 表示する数字 // 表示する数字毎に各セグメント(ピン)をON/OFF this.loop(500, function() { for (var i = 1; i <= 11; i++) { onoff = led_list[num][i]; if (onoff == 0 || onoff == 1) { board.digitalWrite(i, onoff); } } num++; // 9の次はいったん消灯して0に戻る if (num > 10) { num = 0 }; }); });
実行
% node 7seg.js 1486305432162 Device(s) /dev/ttyACM0 1486305432169 Connected /dev/ttyACM0 1486305435411 Repl Initialized >>

関連資料・記事
[Arduino] Node.jsのJohnny-Fiveフレームワークを使ってArduino UnoでLチカ
[Arduino] ArduinoをNode.jsで操作する準備としてArduinoにFirmataプログラムを書き込む際にArduino IDEを使わずコマンドラインで実行する方法(GORT)
参考サイト
Arduino (Wikipedia)
Arduino技術情報 (Qiita)
Arduino関連情報 (Device Plus)
Arduino記事一覧 (Think IT)
Node.js技術情報 (Qiita)
Johnny-Five技術情報 (Qiita)
エレクトロニクス豆知識 (ROHM)