//Pin connected to ST_CP of 74HC595
int L = 1;
//Pin connected to SH_CP of 74HC595
int CLK = 2;
////Pin connected to DS of 74HC595
int DAT = 0;
unsigned int I,J,K;
void setup() {
pinMode(L, OUTPUT); pinMode(CLK, OUTPUT); pinMode(DAT, OUTPUT);
}
void HC595_L(unsigned int D){
digitalWrite(L, LOW);
shiftOut(DAT, CLK, LSBFIRST, D&0xFF);
shiftOut(DAT, CLK, LSBFIRST, (D&0xFF00)>>8);
digitalWrite(L, HIGH);
}
void HC595_M(unsigned int D){
digitalWrite(L, LOW);
shiftOut(DAT, CLK, MSBFIRST, (D&0xFF00)>>8);
shiftOut(DAT, CLK, MSBFIRST, D&0xFF);
digitalWrite(L, HIGH);
}
void loop() {
for ( J=0;J<16;J++) {
K = 1<<J; HC595_L(K); delay(150);
}
for (J=0;J<3;J++) {
HC595_L(0xFFFF); delay(1000);
HC595_L(0x0000); delay(1000);
}
for ( J=0;J<16;J++) {
K = 1<<J; HC595_M(K); delay(150);
}
for (J=0;J<3;J++) {
HC595_L(0xFFFF); delay(1000);
HC595_L(0x0000); delay(1000);
}
}