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.