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:
Comments