Hi,
I am currently coding a simple program to display a symbol on a the 1088BS 8x8 led matrix.
To do this, I use a shift registor connected with three ports : “adder”, “voidAdd” and “outer”.
The shift registor is used to scroll vertically leds of the matrice.
I use pins 2 to 9 to proceed horizontally leds. I put on HIGH to block the current and LOW to let the current flow.
My problem is that some little red dots appears where they shouldn’t (see the image).
How can I fix that ?
Concerning my arduino, I use a Arduino nano with oldBootLoader
The code of my program
const int adder = 10;
const int voidAdd = 12;
const int outer = 11;
const int pin[8] = {2,3,4,5,6,7,8,9};
void setup()
{
pinMode(adder, OUTPUT);
pinMode(voidAdd, OUTPUT);
pinMode(outer, OUTPUT);
pinMode(pin[0], OUTPUT);
pinMode(pin[1], OUTPUT);
pinMode(pin[2], OUTPUT);
pinMode(pin[3], OUTPUT);
pinMode(pin[4], OUTPUT);
pinMode(pin[5], OUTPUT);
pinMode(pin[6], OUTPUT);
pinMode(pin[7], OUTPUT);
}
char tab[8][8]={{HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH},
{HIGH,LOW,LOW,LOW,LOW,LOW,LOW,HIGH},
{HIGH,LOW,HIGH,HIGH,HIGH,HIGH,LOW,HIGH},
{HIGH,LOW,HIGH,HIGH,HIGH,HIGH,LOW,HIGH},
{HIGH,LOW,LOW,LOW,LOW,LOW,LOW,HIGH},
{HIGH,LOW,HIGH,HIGH,HIGH,HIGH,LOW,HIGH},
{HIGH,LOW,HIGH,HIGH,HIGH,HIGH,LOW,HIGH},
{HIGH,LOW,HIGH,HIGH,HIGH,HIGH,LOW,HIGH}};
void loop()
{
digitalWrite(adder, HIGH);
digitalWrite(voidAdd, HIGH);
digitalWrite(voidAdd, LOW);
delay(1);
digitalWrite(adder, LOW);
digitalWrite(outer, HIGH);
digitalWrite(outer, LOW);
for(int a=0;a<8;a++)
{
digitalWrite(pin[0], tab[a][0]);
digitalWrite(pin[1], tab[a][1]);
digitalWrite(pin[2], tab[a][2]);
digitalWrite(pin[3], tab[a][3]);
digitalWrite(pin[4], tab[a][4]);
digitalWrite(pin[5], tab[a][5]);
digitalWrite(pin[6], tab[a][6]);
digitalWrite(pin[7], tab[a][7]);
digitalWrite(voidAdd, HIGH);
delay(1);
digitalWrite(voidAdd, LOW);
digitalWrite(outer, HIGH);
digitalWrite(outer, LOW);
}
}