#include <SPI.h>
int latchPin = 10;
int clockPin = 13;
int dataPin = 11;
int numOutputs = 8;
byte sr1 = 0;
byte sr2 = 0;
byte sr3 = 0;
byte sr4 = 0;
void setup() {
SPI.begin();
SPI.setBitOrder(MSBFIRST);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
sr1 = 0b00000011;
update1();
delay(700);
sr2 = 0b00001100;
update2();
delay(700);
sr3 = 0b00110000;
update3();
delay(700);
sr4 = 0b11000000;
update4();
delay(700);
}
void update1(){
digitalWrite(latchPin, LOW);
SPI.transfer(sr1);
digitalWrite(latchPin, HIGH);
}
void update2(){
digitalWrite(latchPin, LOW);
SPI.transfer(sr2);
digitalWrite(latchPin, HIGH);
}
void update3(){
digitalWrite(latchPin, LOW);
SPI.transfer(sr3);
digitalWrite(latchPin, HIGH);
}
void update4(){
digitalWrite(latchPin, LOW);
SPI.transfer(sr4);
digitalWrite(latchPin, HIGH);
}