POV "Angie"
persistence of vision.
by: Angie Krueger
description:
My project basically consists of two arduino boards, a 9 volt battery, 12 LEDs, and 12 resistors, (6 LEDs and 6 resistors per board). When the battery is plugged in the arduino, the 12 LED lights flicker constantly. If the arduino with the 12 LEDs are spun quickly in a circle, the flickering LED lights will spell out, in both red and green, the letters A-N-G-I-E, my name.
pictures:
problems:
I ran into quite a few problems when creating my project, but that was kind of expected, considering I didn't know much about programming. At the beginning of this project, my problem was that I had absolutely no idea what I was doing when it came to programming an arduino. Luckily, I caught on and was able to continue. Another problem I had was trying to build the device that would spin the arduino board with the LEDs. At first, I wasn't sure how to go about building it, but I figured that out as well. Finally, just when I thought my project was nearly finished, I still had to take a picture of it in action for this page. I had to figure out the exact timing in which I could snap a picture so that each letter could be distinguishable. After that, there were really no more problems.
improvement:
If I had more time/money and I knew more about programming, I would like to somehow enhance the size of the lettering. I think that would be pretty cool. Also, I would like to somehow add a motor to the spinner so it would just spin automatically and ultimately, more easily.
code:
int pins[] = {13,12,11,9,8,7}; // an array of pin numbers
int col_len = 6; // column length
// customizable parameters
int timer1 = 3000; // time between columns
int timer2 = 3000;
int timer3 = 0; // time between drawings
int frame_len = 20; // frame length
int frame_num = 1; // number of frames
// data corresponding to the image to be displayed
int data[] = {1,1,1,1,1,1, 1,0,1,0,0,0, 1,0,1,0,0,0, 1,1,1,1,1,1, 1,1,1,1,1,1, 0,1,0,0,0,0, 0,1,0,0,0,0, 0,1,1,1,1,1, 1,1,1,1,1,1, 1,0,0,0,0,1, 1,0,0,1,0,1, 1,0,0,1,1,1, 1,0,0,0,0,1, 1,1,1,1,1,1, 1,1,1,1,1,1, 1,0,0,0,0,1, 1,1,1,1,1,1, 1,0,1,0,0,1, 1,0,1,0,0,1, 1,0,1,0,0,1};
void setup()
{
int i;
for (i = 0; i < col_len; i++)
pinMode(pins[i], OUTPUT); // set each pin as an output
}
void loop()
{
int a,b,c;
// go through all data for all columns in each frame.
for (a = 0; a < frame_num; a++)
{
for (b = 0; b < frame_len; b++)
{
for (c = 0; c < col_len; c++)
{
if (data[a*frame_len*col_len + b*col_len + c] == 0) {digitalWrite(pins[c], LOW);}
else {digitalWrite(pins[c], HIGH);}
}
delayMicroseconds(timer1);
}
for (c = 0; c < col_len; c++)
{digitalWrite(pins[c], LOW);}
delayMicroseconds(timer2);
}
delayMicroseconds(timer3);
}
bibliography:
http://carlitoscontraptions.blogspot.com/2007/08/pov-prototype-part-2.html