Here is an old code ( I 'm not sure if it 'll work with 7 lines instead of 5).
/*
????????????????????????????????????????????
persistence of vision typography with arduino
michael zoellner - march 2006
http://i.document.m05.de
connect anodes (+) of 5 leds to digital ports of the arduino board
and put 20-50 ohm resistors from the cathode (-) to ground.
the letters are lookup tables consisting arrays width the dot status in y rows.
????????????????????????????????????????????
*/
// defining the alphabet
byte _[] = {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0};
byte A[] = {0,1,1,1,1, 1,0,1,0,0, 0,1,1,1,1};
byte B[] = {1,1,1,1,1, 1,0,1,0,1, 0,1,0,1,0};
byte C[] = {0,1,1,1,0, 1,0,0,0,1, 1,0,0,0,1};
byte D[] = {1,1,1,1,1, 1,0,0,0,1, 0,1,1,1,0};
byte E[] = {1,1,1,1,1, 1,0,1,0,1, 1,0,1,0,1};
byte F[] = {1,1,1,1,1, 1,0,1,0,0, 1,0,1,0,0};
byte G[] = {0,1,1,1,0, 1,0,1,0,1, 0,0,1,1,0};
byte H[] = {1,1,1,1,1, 0,0,1,0,0, 1,1,1,1,1};
byte I[] = {0,0,0,0,1, 1,0,1,1,1, 0,0,0,0,1};
byte J[] = {1,0,0,0,0, 1,0,0,0,1, 1,1,1,1,1};
byte K[] = {1,1,1,1,1, 0,0,1,0,0, 0,1,0,1,1};
byte L[] = {1,1,1,1,1, 0,0,0,0,1, 0,0,0,0,1};
byte M[] = {1,1,1,1,1, 0,1,1,0,0, 0,1,1,1,1};
byte N[] = {1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1};
byte O[] = {0,1,1,1,0, 1,0,0,0,1, 0,1,1,1,0};
byte P[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,0,0};
byte Q[] = {0,1,1,1,1, 1,0,0,1,1, 0,1,1,1,1};
byte R[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,1,1};
byte S[] = {0,1,0,0,1, 1,0,1,0,1, 1,0,0,1,0};
byte T[] = {1,0,0,0,0, 1,1,1,1,1, 1,0,0,0,0};
byte U[] = {1,1,1,1,1, 0,0,0,0,1, 1,1,1,1,1};
byte V[] = {1,1,1,1,0, 0,0,0,0,1, 1,1,1,1,0};
byte W[] = {1,1,1,1,0, 0,0,1,1,0, 1,1,1,1,0};
byte X[] = {1,1,0,1,1, 0,0,1,0,0, 1,1,0,1,1};
byte Y[] = {1,1,0,0,0, 0,0,1,0,0, 1,1,1,1,1};
byte Z[] = {1,0,0,1,1, 1,0,1,0,1, 1,1,0,0,1};
int letterSpace;
int dotTime;
void setup()
{
// setting the ports of the leds to OUTPUT
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
// defining the space between the letters (ms)
letterSpace = 6;
// defining the time dots appear (ms)
dotTime = 3;
}
void printLetter(byte letter[])
{
int y;
// printing the first y row of the letter
for (y=0; y<5; y++)
{
digitalWrite(y+2, letter[y]);
}
delay(dotTime);
// printing the second y row of the letter
for (y=0; y<5; y++)
{
digitalWrite(y+2, letter[y+5]);
}
delay(dotTime);
// printing the third y row of the letter
for (y=0; y<5; y++)
{
digitalWrite(y+2, letter[y+10]);
}
delay(dotTime);
// printing the sspace between the letters
for (y=0; y<5; y++)
{
digitalWrite(y+2, 0);
}
delay(letterSpace);
}
void loop()
{
// printing some letters
printLetter(T);
printLetter(O);
printLetter(U);
printLetter(T);
printLetter(_);
printLetter(_);
}
- 50]