Paul__B:
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) lightLED(left); //display left signal
lightLED(LEDs); // off
delay(1000):
}
else if (valright == HIGH) {
for (t = 0; t < 64) 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);
}
}
May i know why the delay command work with
lightLED(LEDs);
delay(1000); //it is working
and does not work with
lightLED(right);
delay(1000); //not working