改めて説明する事もないと思われますがぁ...7セグメントLEDは0〜9の数値を表示させる為の表示器です、要するに8個のLEDが有るのと同じなので配線はLEDと同じで、
そこで秋月電子通商の”7セグメントLEDシリアルドライバモジュール”
SPIでデータを送るのですがぁ、そのデータのビットと7セグLEDの表示位置との対応を書いて置きます。7セグメントLEDシリアルドライバモジュールのデータシートは秋月電子さんの販売ページを見て下さい。 モジュールのピン名称は基板に書いて有るので図面は省きます。
| ピン名称 |
概 要 |
||
| 上 側 |
1 |
VDD |
電源 3〜6V |
| 2 |
GND |
電源 グランド |
|
| 3 |
SCK |
SPIのクロック入力(Arduinoの13番ピンへ)(MAX 35MHz) |
|
| 4 |
SDI |
SPIのデータ入力(Arduinoの11番ピン:MOSIへ) |
|
| 5 |
SDO |
データ出力(QH')(7セグが2個以上なら接続有り) |
|
| 下 側 |
1 |
MR# |
VDDに接続(SCLR)(LOWでリセットする) |
| 2 |
LATCH |
ラッチ信号(SPIのSS信号を使う、Arduinoの10番ピンへ) |
|
| 3 |
OE |
GNDに接続(OE/G)(0:出力する 1:出力しない) | |
| 4 |
VDD |
電源 3〜6V | |
| 5 |
GND |
電源 グランド | |

もし”50”を表示させるとした場合で説明すると、
@ SS(LATCH)をLOWにします。
A まず1の位の”0”(0b00111111)をSPIで送ります、
データは10の位の7セグに格納されます。
B 次に10の位の"5"(0b01101101)をSPIで送ります、
10の位の7セグデータ”0”が1の位にシフトされ、
10の位の7セグには”5”が格納されます。
C SS(LATCH)をHIGHにすると数値”50”が表示されます。

電源はArduinoからの5Vを使用。
Arduino UNOの12番ピンはSPIのSDIピンだが配線無しです、
又、他の機能ピンとして利用出来ません。
---------------------------------------------------------------------
#include "pins_arduino.h"
#include <SPI.h>
void setup() {
SPI.begin() ; // SPIを行う為の初期化
SPI.setBitOrder(MSBFIRST) ; // ビットオーダー
SPI.setClockDivider(SPI_CLOCK_DIV8) ; // クロックをシステムクロックの1/8で使用(16MHz/8)
SPI.setDataMode(SPI_MODE0) ; // クロック極性0(LOW) クロック位相0(LOW)
digitalWrite(SS, LOW) ;
SPI.transfer(0b01001111) ; // 数値の”3”を表示させる
digitalWrite(SS, HIGH) ; // ラッチ信号を出す
}
void loop() {
}
---------------------------------------------------------------------
実行させると数値の"3"が表示されると思います。
const unsigned char NumPatternData[] {
0b00111111 , // 0
0b00000110 , // 1
0b01011011 , // 2
0b01001111 , // 3
0b01100110 , // 4
0b01101101 , // 5
0b01111101 , // 6
0b00000111 , // 7
0b01111111 , // 8
0b01101111 , // 9
0b10000000 , // .
0b01000000 , // -
0b00000000 , // 空白
} ;
【きむ茶工房ガレージハウス】
Copyright (C) 2006-2020 Shigehiro Kimura All Rights Reserved.