Pov Display

Introduction: Pov Display

making a pov display is difficult using transistors but an easy job using arduino microcontroller

u will need

any arduino board

7 led

some pcb (for making a common ground)

and also a soldering iron and some soldering skills

this can be used to make really spectacular displays as u may find on youtube

Step 1: Maikng a Led Sheild

refer to the paint image

make a common ground of all the 7 led and make a connection to the ground

the live terminals should be exposed out of the pcb like a module for arduino

and then u will just need a arduino which shall be preprogrammed

Step 2: Programming Portion

copy the code below-

/*this code is written by ankesh417@gmail.com*/

//////////////////// Message to Customize /////////////////// #define msgLength 6 /// String msgBody = "ANKESH"; /// ////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////

#define delayInChar 1 #define delayBetweenChar 2 #define LED1 1 #define LED2 2 #define LED3 3 #define LED4 4 #define LED5 5 #define LED6 6 #define LED7 7

byte msgCode[(5 * msgLength) + 10]; boolean pintState; int columnNum = -1; String charToWrite;

void setup() { msgBody.toUpperCase(); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(LED3, OUTPUT); pinMode(LED4, OUTPUT); pinMode(LED5, OUTPUT); pinMode(LED6, OUTPUT); pinMode(LED7, OUTPUT); }

void loop() { //// Convert all text to binary array //////////////////////// if ( columnNum == -1 ) // This block needs to be done once// { // for (int c = 0; c < (msgBody.length()); c++) { // //Separate the following character // charToWrite = msgBody.substring(c, c + 1); // //Send the separated characted to addChar function // addChar(charToWrite); // } // //Add a little space after each character // addChar(" "); // addChar(" "); // } // /////////////////////////////////////////////////////////////

/// Display the binary arrays after all characters are coded // for (int c = 0; c < (sizeof(msgCode)); c++) { // pintState = (msgCode[c] / B1000000) % B10; // digitalWrite(LED1, pintState); // // pintState = (msgCode[c] / B100000) % B10; // digitalWrite(LED2, pintState); // // pintState = (msgCode[c] / B10000) % B10; // digitalWrite(LED3, pintState); // // pintState = (msgCode[c] / B1000) % B10; // digitalWrite(LED4, pintState); // // pintState = (msgCode[c] / B100) % B10; // digitalWrite(LED5, pintState); // // pintState = (msgCode[c] / B10) % B10; // digitalWrite(LED6, pintState); // // pintState = msgCode[c] % B10;; // digitalWrite(LED7, pintState); // // delay(delayInChar); // // if the character is finished, take a longer off period // if ((c + 1) % 5 == 0 ) { // digitalWrite(LED1, LOW); // digitalWrite(LED2, LOW); // digitalWrite(LED3, LOW); // digitalWrite(LED4, LOW); // digitalWrite(LED5, LOW); // digitalWrite(LED6, LOW); // digitalWrite(LED7, LOW); // delay(delayBetweenChar); // } // } // // //////////////////////////////////////////////////////////////// }

void addChar(String y) { if (y == "1") { addColumn(B0010001); addColumn(B0100001); addColumn(B1111111); addColumn(B0000001); addColumn(B0000001); } else if (y == "2") { addColumn(B0100001); addColumn(B1000011); addColumn(B1000101); addColumn(B1001001); addColumn(B0110001); } else if (y == "3") { addColumn(B0100010); addColumn(B1000001); addColumn(B1001001); addColumn(B1001001); addColumn(B0110110); } else if (y == "4") { addColumn(B0001100); addColumn(B0010100); addColumn(B0100100); addColumn(B1111111); addColumn(B0000100); } else if (y == "5") { addColumn(B1110010); addColumn(B1010001); addColumn(B1010001); addColumn(B1010001); addColumn(B1001110); } else if (y == "6") { addColumn(B0111110); addColumn(B1001001); addColumn(B1001001); addColumn(B1001001); addColumn(B0100110); } else if (y == "7") { addColumn(B1000000); addColumn(B1000111); addColumn(B1001000); addColumn(B1010000); addColumn(B1100000); } else if (y == "8") { addColumn(B0110110); addColumn(B1001001); addColumn(B1001001); addColumn(B1001001); addColumn(B0110110); } else if (y == "9") { addColumn(B0110010); addColumn(B1001001); addColumn(B1001001); addColumn(B1001001); addColumn(B0111110); } else if (y == "0") { addColumn(B0111110); addColumn(B1000101); addColumn(B1001001); addColumn(B1010001); addColumn(B0111110); } else if (y == "A") { addColumn(B0011111); addColumn(B0100100); addColumn(B1000100); addColumn(B1000100); addColumn(B1111111); } else if (y == "B") { addColumn(B1111111); addColumn(B1001001); addColumn(B1001001); addColumn(B1001001); addColumn(B0110110); } else if (y == "C") { addColumn(B0111110); addColumn(B1000001); addColumn(B1000001); addColumn(B1000001); addColumn(B0100010); } else if (y == "D") { addColumn(B1111111); addColumn(B1000001); addColumn(B1000001); addColumn(B1000001); addColumn(B0111110); } else if (y == "E") { addColumn(B1111111); addColumn(B1001001); addColumn(B1001001); addColumn(B1001001); addColumn(B1000001); } else if (y == "F") { addColumn(B1111111); addColumn(B1001000); addColumn(B1001000); addColumn(B1001000); addColumn(B1000000); } else if (y == "G") { addColumn(B0111110); addColumn(B1000001); addColumn(B1000001); addColumn(B1000101); addColumn(B0100110); } else if (y == "H") { addColumn(B1111111); addColumn(B0001000); addColumn(B0001000); addColumn(B0001000); addColumn(B1111111); } else if (y == "I") { addColumn(B0000000); addColumn(B1000001); addColumn(B1111111); addColumn(B1000001); addColumn(B0000000); } else if (y == "J") { addColumn(B0000000); addColumn(B0000010); addColumn(B1000001); addColumn(B1000001); addColumn(B1111110); } else if (y == "K") { addColumn(B1111111); addColumn(B0001000); addColumn(B0010100); addColumn(B0100010); addColumn(B1000001); } else if (y == "L") { addColumn(B1111111); addColumn(B0000001); addColumn(B0000001); addColumn(B0000001); addColumn(B0000001); } else if (y == "M") { addColumn(B1111111); addColumn(B0100000); addColumn(B0011000); addColumn(B0100000); addColumn(B1111111); } else if (y == "N") { addColumn(B1111111); addColumn(B0010000); addColumn(B0001000); addColumn(B0000100); addColumn(B1111111); } else if (y == "O") { addColumn(B0111110); addColumn(B1000001); addColumn(B1000001); addColumn(B1000001); addColumn(B0111110); } else if (y == "P") { addColumn(B1111111); addColumn(B1001000); addColumn(B1001000); addColumn(B1001000); addColumn(B0110000); } else if (y == "Q") { addColumn(B0111100); addColumn(B1000010); addColumn(B1000010); addColumn(B1000010); addColumn(B0111101); } else if (y == "R") { addColumn(B1111111); addColumn(B1001000); addColumn(B1001100); addColumn(B1001010); addColumn(B0110001); } else if (y == "S") { addColumn(B0110010); addColumn(B1001001); addColumn(B1001001); addColumn(B1001001); addColumn(B0100110); } else if (y == "T") { addColumn(B1000000); addColumn(B1000000); addColumn(B1111111); addColumn(B1000000); addColumn(B1000000); } else if (y == "U") { addColumn(B1111110); addColumn(B0000001); addColumn(B0000001); addColumn(B0000001); addColumn(B1111110); } else if (y == "V") { addColumn(B1111100); addColumn(B0000010); addColumn(B0000001); addColumn(B0000010); addColumn(B1111100); } else if (y == "W") { addColumn(B1111110); addColumn(B0000001); addColumn(B0000110); addColumn(B0000001); addColumn(B1111110); } else if (y == "X") { addColumn(B1100011); addColumn(B0010100); addColumn(B0001000); addColumn(B0010100); addColumn(B1100011); } else if (y == "Y") { addColumn(B1110000); addColumn(B0001000); addColumn(B0001111); addColumn(B0001000); addColumn(B1110000); } else if (y == "Z") { addColumn(B1000011); addColumn(B1000101); addColumn(B1001001); addColumn(B1010001); addColumn(B1000011); } else if (y == "Z") { addColumn(B1000011); addColumn(B1000101); addColumn(B1001001); addColumn(B1010001); addColumn(B1000011); } else if (y == " ") { addColumn(B0000000); addColumn(B0000000); addColumn(B0000000); addColumn(B0000000); addColumn(B0000000); } else if (y == ".") { addColumn(B0000000); addColumn(B0000011); addColumn(B0000011); addColumn(B0000000); addColumn(B0000000); } else if (y == "_") { addColumn(B0000001); addColumn(B0000001); addColumn(B0000001); addColumn(B0000001); addColumn(B0000001); } else if (y == "-") { addColumn(B0000000); addColumn(B0001000); addColumn(B0001000); addColumn(B0001000); addColumn(B0000000); } else if (y == "!") { addColumn(B0000000); addColumn(B0000000); addColumn(B1111101); addColumn(B0000000); addColumn(B0000000); } else if (y == "(") { addColumn(B0000000); addColumn(B0000000); addColumn(B0000000); addColumn(B0111110); addColumn(B1000001); } else if (y == ")") { addColumn(B1000001); addColumn(B0111110); addColumn(B0000000); addColumn(B0000000); addColumn(B0000000); } else if (y == "%") { addColumn(B1100010); addColumn(B1100100); addColumn(B0001000); addColumn(B0010011); addColumn(B0100011); } else if (y == ",") { addColumn(B0000000); addColumn(B0000101); addColumn(B0000110); addColumn(B0000000); addColumn(B0000000); } else if (y == "?") { addColumn(B0100000); addColumn(B1000101); addColumn(B1001000); addColumn(B0110000); addColumn(B0000000); } else if (y == "#") { addColumn(B0010100); addColumn(B0111110); addColumn(B0010100); addColumn(B0111110); addColumn(B0010100); } else if (y == "@") { addColumn(B0111110); addColumn(B1000001); addColumn(B1011101); addColumn(B1011101); addColumn(B0111000); } else if (y == "$") { addColumn(B0110010); addColumn(B1001001); addColumn(B1111111); addColumn(B1001001); addColumn(B0100110); } }

void addColumn(byte x) { columnNum += 1; msgCode[columnNum] = (x); }

Step 3: Final Step

connect each of the seven led individually to the arduino from pin #1 to pin#7

and the common ground to the ground pin

u r ready

u can attach the board on a fan or u can use some brushless motor

u can also use it as a pov wand being moved by your own hand

i have uploaded the prototype video of the pov fan

and a request;-

pls follow me for my latest uploads

pls vote me for the contests

Makerspace Contest

Participated in the
Makerspace Contest

Sensors Contest 2016

Participated in the
Sensors Contest 2016

Rainbow Contest 2016

Participated in the
Rainbow Contest 2016

Be the First to Share

    Recommendations

    • Puzzles Speed Challenge

      Puzzles Speed Challenge
    • "Can't Touch This" Family Contest

      "Can't Touch This" Family Contest
    • CNC Contest 2020

      CNC Contest 2020

    6 Discussions

    0
    Soumojit
    Soumojit

    4 years ago

    I also have an error on the code . Please dont copy paste it. Upload the whole code file

    0
    ankesssh
    ankesssh

    Reply 4 years ago

    Ok thank-you for identifying my mistake
    Pls send me your email ID i will definitely send u the code and will Also upload the code file

    0
    Soumojit
    Soumojit

    Reply 4 years ago

    send it soumojitash@gmail.com

    0
    Soumojit
    Soumojit

    4 years ago

    I like your project. And Make one but can you tell me how to fix it in fan with battery. Please send a photo of how to fix it in the fan. Thank you

    0
    DIY Hacks and How Tos

    Cool. The video actually picks up the POV effect pretty well.

    0
    ankesssh
    ankesssh

    Reply 4 years ago

    Thank you
    And also u may subscribe ti my channel for more projects on youtube