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