int latchPin = 4;
int clockPin = 3;
int dataPin = 5;
int a = 0;
int j = 0;
int xx = 0;
byte dataRED;
byte dataGREEN;
byte dataArrayRED[2];
byte dataArrayGREEN[2];
void setup() {
pinMode(latchPin, OUTPUT);
Serial.begin(9600);
dataArrayRED[0] = 0xFF; //11111111
dataArrayRED[1] = 0x00; //00000000
dataArrayGREEN[0] = 0xFF; //11111111
dataArrayGREEN[1] = 0x00; //00000000
}
void loop() {
a++;
if (a % 5 == 0) {
dataRED = dataArrayRED[0];
}
else {
dataRED = dataArrayRED[1];
}
if (a % 3 == 0) {
dataGREEN = dataArrayGREEN[0];
}
else {
dataGREEN = dataArrayGREEN[1];
}
digitalWrite(latchPin, 0);
shiftOut(dataPin, clockPin, dataRED);
shiftOut(dataPin, clockPin, dataGREEN);
digitalWrite(latchPin, 1);
delay(300);
}
void shiftOut(int myDataPin, int myClockPin, byte myDataOut) {
int i=0;
int pinState;
pinMode(myClockPin, OUTPUT);
pinMode(myDataPin, OUTPUT);
digitalWrite(myDataPin, 0);
digitalWrite(myClockPin, 0);
for (i=7; i>=0; i--) {
digitalWrite(myClockPin, 0);
if ( myDataOut & (1<<i) ) {
pinState= 1;
}
else {
pinState= 0;
}
digitalWrite(myDataPin, pinState);
digitalWrite(myClockPin, 1);
digitalWrite(myDataPin, 0);
}
digitalWrite(myClockPin, 0);
}