7SegmentLED_MAX7219

MAX7219に接続された7セグメントLEDを制御するクラスです。
MAX7219一つにつき最大8桁の7セグメントLEDを制御することができます。
接続できる7セグメントLEDはカソードコモンタイプです。
MAX7219を連続してつなげ、8桁以上のディスプレイを作ることもできます。

wired(obniz, { clk, cs, din, gnd, vcc});

  1. clk: SPIのCLKピンです。MAX7219のCLKピンへ接続してください。
  2. cs: チップ選択です。MAX7219のLOAD(CK)ピンへ接続してください。
  3. din: SPIの MOSI ピンです。MAX7219のDINピンへ接続してください。
  4. gnd: 電源のマイナスです。
  5. vcc: 電源のプラスです。

DIPタイプのMAX7219であれば、以下のような接続になります。

抵抗は33kΩ、コンデンサは0.1μFです。

一例として、下記のページで販売されている4桁7セグメントLEDの接続例を示します。
LED

チェーン状につなぐ場合は最初の1つをObnizにつなぎ、2つ目以降はDINを前のDOUTにつないでください。
obniz-DIN[1つ目のディスプレイ]DOUT-DIN[2つ目のディスプレイ]DOUT-~

7セグメントLEDとMAX7219は以下のように接続します。

MAX7219
ピン名(ピン番号)
7セグメントLED
SEG A(14) A
SEG B(16) B
SEG C(20) C
SEG D(23) D
SEG E(21) E
SEG F(15) F
SEG G(17) G
SEG DP(22) DP
DIG 0(2) COM0
DIG 1(11) COM1
DIG 2(6) COM2
DIG 3(7) COM3
DIG 4(3) COM4
DIG 5(10) COM5
DIG 6(5) COM6
DIG 7(8) COM7

*補足

  • 7セグメントLEDのピン番号は製品によって異なるので、データシートで確認してください。
  • 7セグメントLEDはA~DPはANODE,COM0~COM7はCATHODEと併記されている場合があります。
  • DIGは桁なので、1桁の7セグメントLEDを接続した場合はDIG 0のみを使い、DIG 1以降は使いません。
  • DPはドット用です。ドットの無い7セグメントLEDの場合は接続しません。
// Javascript Example
const segment = obniz.wired("7SegmentLED_MAX7219", { clk:0, cs:1, din:2, gnd:3, vcc:4});
segment.init(1, 4); // 4桁のディスプレイを一つ接続
segment.setNumber(0,0,5,false); // ディスプレイ0の1桁目に5を表示,ドット消灯

init(numberOfDisplays, digits)

7セグメントLEDを初期化します。
numberOfDisplaysにディスプレイの個数(すなわちMAX7219の個数)、
digitsにディスプレイ一つあたりの7セグメントLEDの桁数を指定します。
4桁表示のディスプレイを1つ繋いだ場合はinit(1,4)となります。

// Javascript Example
const segment = obniz.wired("7SegmentLED_MAX7219",  { clk:0, cs:1, din:2, gnd:3, vcc:4});
segment.init(1, 4); // 4桁のディスプレイを一つ接続

brightness(display,value)

特定のディスプレイの明るさを変更します。
displayでディスプレイ番号を指定し(0から始まります)、
valueに0~15の範囲で明るさを指定します。

// Javascript Example
const segment = obniz.wired("7SegmentLED_MAX7219",  { clk:0, cs:1, din:2, gnd:3, vcc:4});
segment.init(1, 4);
segment.brightness(0, 1)
segment.setNumber(0, 0, 5, false);

brightnessAll(value)

接続されているすべてのディスプレイの明るさを変更します。
valueに0~15の範囲で明るさを指定します。

// Javascript Example
const segment = obniz.wired("7SegmentLED_MAX7219",  { clk:0, cs:1, din:2, gnd:3, vcc:4});
segment.init(1, 4);
segment.brightnessAll(1)
segment.setNumber(0, 0, 5, false);

setNumber(display,digit,number,dp)

7セグメントLEDを任意の数字に点灯します。
display : 表示するディスプレイ番号を指定(0から始まります)
digit : 表示する桁を指定します。(0から始まります)
number :
表示する数字を0~9で指定します。次の文字も指定できます:-(ハイフン),E,H,L,P
何も指定しないか、offを指定すると消灯します。
dp : ドット表示がある7セグメントLEDのドットの点灯/消灯を指定します。(点灯:true,消灯:false)

number accept

Value description
0 to 9 number
'on' all on (=8)
'off' all off
'-' show "-"
'e' show "E"
'h' show "H"
'l' show "L"
'p' show "P"
// Javascript Example
const segment = obniz.wired("7SegmentLED_MAX7219",  { clk:0, cs:1, din:2, gnd:3, vcc:4});
segment.init(1, 4); 
segment.setNumber(0,0,5,false);
segment.setNumber(0,1,"e",false);
segment.setNumber(0,2,"off",true);

clear(display)

displayで指定したディスプレイの表示内容を消去します。

// Javascript Example
const segment = obniz.wired("7SegmentLED_MAX7219",  { clk:0, cs:1, din:2, gnd:3, vcc:4});
segment.init(1, 4);
segment.setNumber(0, 0, 5, false);
segment.setNumber(0,1,"e",false);
segment.clear(0)

clearAll()

接続されているすべてのディスプレイの表示内容を消去します。

// Javascript Example
const segment = obniz.wired("7SegmentLED_MAX7219",  { clk:0, cs:1, din:2, gnd:3, vcc:4});
segment.init(1, 4);
segment.setNumber(0, 0, 5, false); // ディスプレイ0の1桁目に5を表示,ドット消灯
segment.clearall();

test()

MAX7219のテストコマンドを実行します。

// Javascript Example
const segment = obniz.wired("7SegmentLED_MAX7219",  { clk:0, cs:1, din:2, gnd:3, vcc:4});
segment.init(1, 4);
segment.test();


Found at :