My apologies - I corrected the program flow, but failed to spot the glaring typo! Picked that up on my little netbook reading in bed this morning. ![]()
This should work now - I think!
int latchPin = 8;
int clockPin = 12;
int dataPin = 11;
int inputPin2 = 2;Â Â Â Â Â Â // input pin for left (switch)
int inputPin3 = 3;Â Â Â Â Â Â //input pin for right (switch)
int valleft = 0;
int valright =0;
int LEDs[8][8] = {Â
 { 0, 0, 0, 0, 0, 0, 0, 0 } , //blank
 { 0, 0, 0, 0, 0, 0, 0, 0 } ,
 { 0, 0, 0, 0, 0, 0, 0, 0 } ,
 { 0, 0, 0, 0, 0, 0, 0, 0 } ,
 { 0, 0, 0, 0, 0, 0, 0, 0 } ,
 { 0, 0, 0, 0, 0, 0, 0, 0 } ,
 { 0, 0, 0, 0, 0, 0, 0, 0 } ,
 { 0, 0, 0, 0, 0, 0, 0, 0 }Â
};
int right[8][8] = {Â
 { 0, 0, 0, 0, 1, 0, 0, 0 } , //right signal
 { 0, 0, 0, 0, 1, 1, 0, 0 } ,
 { 1, 1, 1, 1, 1, 1, 1, 0 } ,
 { 1, 1, 1, 1, 1, 1, 1, 1 } ,
 { 1, 1, 1, 1, 1, 1, 1, 1 } ,
 { 1, 1, 1, 1, 1, 1, 1, 0 } ,
 { 0, 0, 0, 0, 1, 1, 0, 0 } ,
 { 0, 0, 0, 0, 1, 0, 0, 0 } Â
};
int left[8][8] = {Â
 { 0, 0, 0, 1, 0, 0, 0, 0 } , //left signal
 { 0, 0, 1, 1, 0, 0, 0, 0 } ,
 { 0, 1, 1, 1, 1, 1, 1, 1 } ,
 { 1, 1, 1, 1, 1, 1, 1, 1 } ,
 { 1, 1, 1, 1, 1, 1, 1, 1 } ,
 { 0, 1, 1, 1, 1, 1, 1, 1 } ,
 { 0, 0, 1, 1, 0, 0, 0, 0 } ,
 { 0, 0, 0, 1, 0, 0, 0, 0 } Â
};
void setup() {
 pinMode(latchPin, OUTPUT);
 pinMode(clockPin, OUTPUT);
 pinMode(dataPin, OUTPUT);
 pinMode(inputPin2, INPUT);
 pinMode(inputPin3, INPUT);
}
void loop() {
 int t;
 valleft = digitalRead (inputPin2);
 valright = digitalRead (inputPin3);Â
 if (valleft == HIGH) {        //when the left switch is on
  for (t = 0; t < 64; t++) lightLED(left); //display left signal
  lightLED(LEDs);           // off
  delay(1000);
 }
 else if (valright == HIGH) {
  for (t = 0; t < 64; t++) lightLED(right);
  lightLED(LEDs);
  delay(1000);
 }
 else
  lightLED(LEDs);
}
void lightLED(int tempLED[8][8]) {Â Â Â Â Â //run the lightLEDÂ bit by bit
 byte columnbitsToSend = 0;
 byte rowbitsToSend = 0;
 int x;
 int y;
 for (x = 0; x < 8; x++) {
  columnbitsToSend = 0;
  rowbitsToSend = 0;
  for (y = 0; y < 8; y ++) {
   if (tempLED[x][y] == 1) {
    bitWrite(rowbitsToSend, y, HIGH);
   }
  }
  digitalWrite(latchPin, LOW);
  bitWrite(columnbitsToSend, x, HIGH);
  shiftOut(dataPin, clockPin, MSBFIRST, columnbitsToSend);
  shiftOut(dataPin, clockPin, MSBFIRST, rowbitsToSend);
  digitalWrite(latchPin, HIGH);Â
  delay(2);
 }
}
Didn't notice how badly "Auto Format" had mangled the arrays either!
And a few more bugs - wouldn't compile.