Simple Arduino POV :)

58K11224

Intro: Simple Arduino POV :)

Parts needed :
: Arduino uno x 1
: led x 5
: 1k resistor x 5

STEP 1: Wiring

Connect all the wire as shown in the figure :
Digital pin 2 to led 1
Digital pin 3 to led 2
Digital pin 4 to led 3
Digital pin 5 to led 4
Digital pin 6 to led 5


don't forget the resister ...!
.............................................................................................................................
Possible improvement


# custom shield for arduino
# adding battery
# adding more led 's

.............................................................................................................................
and upload the sketch and you are left with an amazing pov display...:)



STEP 2: Sketch

Upload the code ...:)




37 Comments

what was the RPM of the motor to see the Text/Image and how did you transfer the power supply while spinning .
Thanks

Awesome and simple brother. Any idea about showing a jpeg image thru LEDs?

Thanks for the tutorial, it helped me a lot.
is there a message in the code or can I upload the code directly to my board?

Salam, ur algorithm worked with my device nicely. Iwanted to make a digital clock with this algorithm and that's why in the "void loop()" section I made this modification.

void loop()
{

for (r=0; r<3; r++)

{

printLetter(NUMBER[r]);

q=0;

for (q=0; q<10; q++)

{

printLetter(NUMBER[q]);

printLetter(TIMEDOT);

p=0;

for (p=0; p<6; p++)

{

printLetter(NUMBER[p]);

k=0;

for (k=0; k<10; k++)

{

printLetter(NUMBER[k]);

printLetter(TIMEDOT);

j=0;

for (j=0; j<6; j++)

{

printLetter(NUMBER[j]);

i=0;

for (i=0; i<10; i++)

{

printLetter(NUMBER[i]);

delay(s);

}

}

}

}

}

}

}

But it is not working except with the portion counting for seconds. Can u please help me solving this problem???
Thanks

My full Code:

int s=1000;

int i;

int j;

int k;

int p;

int q;

int r;

int ZERO[] = {1,1,1,1,1, 1,0,0,0,1, 1,1,1,1,1};

int ONE[] = {1,0,0,0,1, 1,1,1,1,1, 0,0,0,0,1};

int TWO[] = {1,0,1,1,1, 1,0,1,0,1, 1,1,1,0,1};

int THREE[] = {1,0,1,0,1, 1,0,1,0,1, 1,1,1,1,1};

int FOUR[] = {1,1,1,0,0, 0,0,1,0,0, 1,1,1,1,1};

int FIVE[] = {1,1,1,0,1, 1,0,1,0,1, 1,0,1,1,1};

int SIX[] = {1,1,1,1,1, 1,0,1,0,1, 1,0,1,1,1};

int SEVEN[] = {1,0,0,0,0, 1,0,0,0,0, 1,1,1,1,1};

int EIGHT[] = {1,1,1,1,1, 1,0,1,0,1, 1,1,1,1,1};

int NINE[] = {1,1,1,0,1, 1,0,1,0,1, 1,1,1,1,1};

int TIMEDOT[] = {0,0,0,0,0, 0,1,0,1,0, 0,0,0,0,0};

int* NUMBER[] = {ZERO,ONE,TWO,THREE,FOUR,FIVE,SIX,SEVEN,EIGHT,NINE};

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 = 4;

// 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 space between the letters

for (y=0; y<5; y++)

{

digitalWrite(y+2, 0);

}

delay(letterSpace);

}

void loop()

{

for (r=0; r<3; r++)

{

printLetter(NUMBER[r]);

q=0;

for (q=0; q<10; q++)

{

printLetter(NUMBER[q]);

printLetter(TIMEDOT);

p=0;

for (p=0; p<6; p++)

{

printLetter(NUMBER[p]);

k=0;

for (k=0; k<10; k++)

{

printLetter(NUMBER[k]);

printLetter(TIMEDOT);

j=0;

for (j=0; j<6; j++)

{

printLetter(NUMBER[j]);

i=0;

for (i=0; i<10; i++)

{

printLetter(NUMBER[i]);

delay(s);

}

}

}

}

}

}

}

If I'm using 8 LEDs how can I modify your code?
Thanks for sharing!

I made it! But I have a question, do I have to move the leds in a single direction or both directions?

how did you compute the value of the letterSpace and dotTime variables?

It's really easy and works fine.... Thax Glen.

Can i apply the same code to make a POV with 7 LEDs on a rotating base like of motor?

Would i need to change the delay between letter?

this is simplest..i have ever seen....thanks

Hi,where's the code to upload?please.

printLetter(A);


printLetter(V);


printLetter(I);

printLetter(S);

printLetter(K);

printLetter(A);

printLetter(R);

printLetter(_);

Change last line of code to these ! :D

i didn't find step 3 and 4 here?? sorry?? can you help me?

More Comments