Wifky!

aitendo 74HC595キット

K-595D20-468-1.png

K-595D20-PCB.png

仕様・機能

8ビットシフトレジスタ74HC595 x2基搭載SPIインターフェースキット、7セグやLED、8x8ドットマトリックスなどに接続して、SPIインターフェースを介して制御することができる。
ピンソケットを取り付けてジャンパワイヤで接続することができますが、ピンヘッダを取り付けてブレッドボードに差し込んで配線がいっそうシンプルになります。
LEDや7セグ表示器を接続する際にコモンピン(DIG1〜DIG2)をアノード/カソードに設定する基板ジャンパーが付いています。
動作電源:5V、部品一式、部品を基板に半田付けをして完成になる。基板寸法:26.5x42.2x1.2mm。
Image1.jpg

K-LED10X2D20-468.png

動作について

<接続>
びんぼうでいいの側/基板側
D8/LATCH
D11/IN
D12/CLK
VCC/3.3V
GND/GND

基板側/LED側
Q0/LED1(+)
Q1/LED2(+)
Q2/LED3(+)
Q3/LED4(+)
Q4/LED5(+)
Q5/LED6(+)
Q6/LED7(+)
Q7/LED8(+)
COM1/LED1-8(-)

参考スケッチ


int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
byte data = 0;

void setup() {
pinMode(latchPin, OUTPUT);
}

void loop() {
blinkAll_2Bytes(1,500);
for (int j = 0; j < 8; j++) {
digitalWrite(latchPin, 0);
lightShiftPinA(7-j);
digitalWrite(latchPin, 1);
delay(1000);
}


for (int j = 0; j < 8; j++) {
digitalWrite(latchPin, 0);
lightShiftPinB(j);
digitalWrite(latchPin, 1);
delay(1000);
}
}

void lightShiftPinA(int p) {
int pin;
pin = 1<< p;
shiftOut(dataPin, clockPin, pin);
}

void lightShiftPinB(int p) {
int pin;
pin = 1;

for (int x = 0; x < p; x++) {
pin = pin * 2;
}
shiftOut(dataPin, clockPin, pin);

}


void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
int i=0;
int pinState;
pinMode(myClockPin, OUTPUT);
pinMode(myDataPin, OUTPUT);
digitalWrite(myDataPin, 0);
digitalWrite(myClockPin, 0);

for (i=7; i>=0; i--) {
digitalWrite(myClockPin, 0);
if ( myDataOut & (1<<i) ) {
pinState= 1;
}
else {
pinState= 0;
}

digitalWrite(myDataPin, pinState);
digitalWrite(myClockPin, 1);
digitalWrite(myDataPin, 0);
}

digitalWrite(myClockPin, 0);
}

void blinkAll_2Bytes(int n, int d) {
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, 0);
shiftOut(dataPin, clockPin, 0);
digitalWrite(latchPin, 1);
delay(200);

for (int x = 0; x < n; x++) {
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, 255);
shiftOut(dataPin, clockPin, 255);
digitalWrite(latchPin, 1);
delay(d);
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, 0);
shiftOut(dataPin, clockPin, 0);
digitalWrite(latchPin, 1);
delay(d);
}
}