#define clockPin A0
#define latchPin A1
#define data A2
void setup() {
// put your setup code here, to run once:
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(data, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
pattern1();
pattern2();
pattern3();
}
void pattern1() {
int pattern = 0;
for (int i = 0; i < 8; i++) {
pattern = (1<<i);
digitalWrite(latchPin, LOW);
shiftOut(data, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(200);
}
for (int i = 7; i > 0; i--) {
pattern = (1<<i);
digitalWrite(latchPin, LOW);
shiftOut(data, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(200);
}
}
void pattern2() {
int pattern = 0;
for (int i = 0; i < 8; i++) {
pattern |= (1<<i);
digitalWrite(latchPin, LOW);
shiftOut(data, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(200);
}
for (int i = 0; i < 8; i++) {
pattern = (pattern<<i);
digitalWrite(latchPin, LOW);
shiftOut(data, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(250);
}
}
void pattern3() {
int pattern = 0, pattern1 = 0;
for (int i = 1; i < 8; i++) {
for (int j = 0; j < 8-i; j++) {
pattern = pattern1;
pattern |= (1<<j);
digitalWrite(latchPin, LOW);
shiftOut(data, clockPin, LSBFIRST, pattern);
digitalWrite(latchPin, HIGH);
delay(200);
}
pattern1 |= (1<<8-i);
}
pattern = 0;
}