int data_pin = 8;
int clock_pin = 10;
int latch_pin = 9;
bool patten[8][8] = {
{1,0,0,0,0,0,0,0},
{0,1,0,0,0,0,0,0},
{0,0,1,0,0,0,0,0},
{0,0,0,1,0,0,0,0},
{0,0,0,0,1,0,0,0},
{0,0,0,0,0,1,0,0},
{0,0,0,0,0,0,1,0},
{0,0,0,0,0,0,0,1}
};
void print_patten(bool pat[8][8]){
for (int i=0;i<8;i++){
for (int x=0;x<8;x++){
if ((7-x)==i){
sift(0);
}
else{
sift(1);
}
}
for (int d=7;d>-1;d--){
sift(pat[i][d]);
}
latch();
delay(1000);
}
}
void sift(bool d){
if (d){
digitalWrite(data_pin,HIGH);
digitalWrite(data_pin,HIGH);
digitalWrite(data_pin,LOW);
digitalWrite(data_pin,LOW);
}
else{
digitalWrite(data_pin,LOW);
digitalWrite(data_pin,HIGH);
digitalWrite(data_pin,LOW);
digitalWrite(data_pin,LOW);
}
}
void latch(){
digitalWrite(latch_pin, HIGH);
digitalWrite(latch_pin, LOW);
}
void setup(){
pinMode(data_pin, OUTPUT);
pinMode(clock_pin, OUTPUT);
pinMode(latch_pin, OUTPUT);
}
void loop(){
print_patten(patten);
}