Created
March 21, 2015 16:54
-
-
Save mamemomonga/b756e1f0429ccfd5c67e to your computer and use it in GitHub Desktop.
SN74HC595 をつかったLチカ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <SPI.h> | |
// SN74HC595 をつかったLチカ | |
// AVRボート | |
// Arduino | SN74HC595 | |
// ---------|---------------- | |
// SS(D10) | RCLK(12) | |
// MOSI(D11)| SER(14) | |
// MISO(D12)| NC(接続しない) | |
// SCK(D13) | SRCLK(11) | |
// 複数接続する場合には、QH' と SER を接続する | |
// RCLK, SRCLKは並列に接続。シフトレジスタはデータを押し込んでいくから、 | |
// 複数の場合は最も後方のものをプロセッサに接続する。 | |
#define SS 10 | |
// シフトレジスタの数 | |
#define SREG_NUM 2 | |
// パターン | |
byte pattern[]={ | |
B10000000, B00000000, | |
B01000000, B00000000, | |
B00100000, B00000000, | |
B00010000, B00000000, | |
B00001000, B00000000, | |
B00000100, B00000000, | |
B00000010, B00000000, | |
B00000001, B00000000, | |
B00000000, B10000000, | |
B00000000, B01000000, | |
B00000000, B00100000, | |
B00000000, B00010000, | |
B00000000, B00001000, | |
B00000000, B00000100, | |
B00000000, B00000010, | |
B00000000, B00000001, | |
B00000000, B00000000, | |
B00000000, B00000001, | |
B00000000, B00000010, | |
B00000000, B00000100, | |
B00000000, B00001000, | |
B00000000, B00010000, | |
B00000000, B00100000, | |
B00000000, B01000000, | |
B00000000, B10000000, | |
B00000001, B00000000, | |
B00000010, B00000000, | |
B00000100, B00000000, | |
B00001000, B00000000, | |
B00010000, B00000000, | |
B00100000, B00000000, | |
B01000000, B00000000, | |
B10000000, B00000000, | |
B00000000, B00000000, | |
}; | |
byte pattern_len=34; | |
void setup() { | |
SPI.begin(); | |
SPI.setBitOrder(LSBFIRST); | |
SPI.setClockDivider(SPI_CLOCK_DIV2); // 16MHz/2 = 8MHz | |
SPI.setDataMode(SPI_MODE2); | |
pinMode(SS,OUTPUT); | |
digitalWrite(SS,HIGH); | |
} | |
void loop() { | |
for(unsigned int pat=0; pat<pattern_len * SREG_NUM; pat+=SREG_NUM) { | |
digitalWrite(SS,LOW); | |
for(unsigned int sr=0; sr< SREG_NUM; sr++) { | |
SPI.transfer(pattern[pat+sr]); | |
} | |
digitalWrite(SS,HIGH); | |
delay(10); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment