Pov Display

by ankesssh in Circuits > LEDs

837 Views, 4 Favorites, 0 Comments

Pov Display

Amazing POV display using arduino uno and normal fan

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

Maikng a Led Sheild

pcb.bmp
Picture 007.jpg
Picture 008.jpg
Picture 006.jpg
Picture 005.jpg

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

Programming Portion

download.jpg

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); }

Final Step

download.png
images.jpg
download (1).jpg

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