Talk:SkyDogCon

From HackerspaceWiki
Jump to: navigation, search

/* ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ 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 int _[] = {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0}; int A[] = {0,1,1,1,1, 1,0,1,0,0, 0,1,1,1,1}; int B[] = {1,1,1,1,1, 1,0,1,0,1, 0,1,0,1,0}; int C[] = {0,1,1,1,0, 1,0,0,0,1, 1,0,0,0,1}; int D[] = {1,1,1,1,1, 1,0,0,0,1, 0,1,1,1,0}; int E[] = {1,1,1,1,1, 1,0,1,0,1, 1,0,1,0,1}; int F[] = {1,1,1,1,1, 1,0,1,0,0, 1,0,1,0,0}; int G[] = {0,1,1,1,0, 1,0,1,0,1, 0,0,1,1,0}; int H[] = {1,1,1,1,1, 0,0,1,0,0, 1,1,1,1,1}; int I[] = {0,0,0,0,1, 1,0,1,1,1, 0,0,0,0,1}; int J[] = {1,0,0,0,0, 1,0,0,0,1, 1,1,1,1,1}; int K[] = {1,1,1,1,1, 0,0,1,0,0, 0,1,0,1,1}; int L[] = {1,1,1,1,1, 0,0,0,0,1, 0,0,0,0,1}; int M[] = {1,1,1,1,1, 0,1,1,0,0, 0,1,1,1,1}; int N[] = {1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1}; int O[] = {0,1,1,1,0, 1,0,0,0,1, 0,1,1,1,0}; int P[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,0,0}; int Q[] = {0,1,1,1,1, 1,0,0,1,1, 0,1,1,1,1}; int R[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,1,1}; int S[] = {0,1,0,0,1, 1,0,1,0,1, 1,0,0,1,0}; int T[] = {1,0,0,0,0, 1,1,1,1,1, 1,0,0,0,0}; int U[] = {1,1,1,1,1, 0,0,0,0,1, 1,1,1,1,1}; int V[] = {1,1,1,1,0, 0,0,0,0,1, 1,1,1,1,0}; int W[] = {1,1,1,1,0, 0,0,1,1,0, 1,1,1,1,0}; int X[] = {1,1,0,1,1, 0,0,1,0,0, 1,1,0,1,1}; int Y[] = {1,1,0,0,0, 0,0,1,0,0, 1,1,1,1,1}; int 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(int 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(_);
 printLetter(S);
 printLetter(D);
 printLetter(C);
 printLetter(_);

}