Creating Arduino POV (Presistence of Vision) Display
I have used an old fan and Arduino Nano to create a cool looking POV display!
Components and supplies
1
Hall Sensor
1
Arduino Nano R3
10
5 mm LED: Red
10
Resistor 220 ohm
Project description
Code
POV Display - Space Invaders animation
arduino
1// Mario's Ideas 2// POV Display 3// Space Invaders Animation 4 5#define LED1 11 6#define LED2 12 7#define LED3 10 8#define LED4 8 9#define LED5 6 10#define LED6 4 11#define LED7 3 12#define LED8 9 13#define LED9 7 14#define LED10 5 15#define Hall 13 16 17 18int SI [20] [39] ={ 19{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 20{0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0}, 21{0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0}, 22{0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0}, 23{0,1,1,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,1,1,0,1,1}, 24{1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1}, 25{1,0,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0}, 26{1,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,0,1,1,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1}, 27{0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,1,0}, 28{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 29{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 30{0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0}, 31{1,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,0}, 32{1,0,1,1,1,1,1,1,1,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,0}, 33{1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,0,1,1,0,1,1,0,1,1}, 34{1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1}, 35{0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0}, 36{0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,1,1,0,1,0}, 37{0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,1,0,0,1,0,1}, 38{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} 39}; 40 41int FrameDuration=0; 42int Shift=0; 43 44void setup() { 45pinMode(LED1, OUTPUT); 46pinMode(LED2, OUTPUT); 47pinMode(LED3, OUTPUT); 48pinMode(LED4, OUTPUT); 49pinMode(LED5, OUTPUT); 50pinMode(LED6, OUTPUT); 51pinMode(LED7, OUTPUT); 52pinMode(LED8, OUTPUT); 53pinMode(LED9, OUTPUT); 54pinMode(LED10, OUTPUT); 55pinMode(Hall, INPUT); 56} 57 58void LightColumn(int L1, int L2 ,int L3, int L4 ,int L5, int L6 ,int L7, int L8 ,int L9, int L10){ 59 digitalWrite(LED1,L1); 60 digitalWrite(LED2,L2); 61 digitalWrite(LED3,L3); 62 digitalWrite(LED4,L4); 63 digitalWrite(LED5,L5); 64 digitalWrite(LED6,L6); 65 digitalWrite(LED7,L7); 66 digitalWrite(LED8,L8); 67 digitalWrite(LED9,L9); 68 digitalWrite(LED10,L10); 69} 70 71 72void loop() { 73 if (digitalRead(Hall)==LOW ){ 74 for (int i=0; i<39;i++){ 75 LightColumn(SI[0+Shift][i],SI[1+Shift][i],SI[2+Shift][i],SI[3+Shift][i],SI[4+Shift][i],SI[5+Shift][i], 76 SI[6+Shift][i],SI[7+Shift][i],SI[8+Shift][i], SI[9+Shift][i]); 77 delay(1); 78 } 79 FrameDuration ++; 80 if (FrameDuration==6) { 81 if (Shift==0) Shift=10; else Shift=0;FrameDuration=0; 82 } 83 } 84}
POV Display -Cat Clipart
arduino
1// Mario's Ideas 2// POV Display 3// Displaying "cat"clipart 4#define LED1 11 5#define LED2 12 6#define LED3 10 7#define LED4 8 8#define LED5 6 9#define LED6 4 10#define LED7 3 11#define LED8 9 12#define LED9 7 13#define LED10 5 14#define Hall 13 15 16int Cat [8] [8] ={ 17{1,0,0,0,1,0,0,0}, 18{1,1,1,1,1,0,0,0}, 19{1,0,1,0,1,0,0,0}, 20{0,1,1,1,0,0,0,1}, 21{0,0,1,0,0,0,0,1}, 22{0,1,1,1,1,0,0,1}, 23{0,1,1,1,1,1,0,1}, 24{1,0,1,1,1,1,1,0}, 25}; 26 27 28 29void setup() { 30pinMode(LED1, OUTPUT); 31pinMode(LED2, OUTPUT); 32pinMode(LED3, OUTPUT); 33pinMode(LED4, OUTPUT); 34pinMode(LED5, OUTPUT); 35pinMode(LED6, OUTPUT); 36pinMode(LED7, OUTPUT); 37pinMode(LED8, OUTPUT); 38pinMode(LED9, OUTPUT); 39pinMode(LED10, OUTPUT); 40pinMode(Hall, INPUT); 41} 42 43void LightColumn(int L1, int L2 ,int L3, int L4 ,int L5, int L6 ,int L7, int L8 ,int L9, int L10){ 44 digitalWrite(LED1,L1); 45 digitalWrite(LED2,L2); 46 digitalWrite(LED3,L3); 47 digitalWrite(LED4,L4); 48 digitalWrite(LED5,L5); 49 digitalWrite(LED6,L6); 50 digitalWrite(LED7,L7); 51 digitalWrite(LED8,L8); 52 digitalWrite(LED9,L9); 53 digitalWrite(LED10,L10); 54} 55 56 57void loop() { 58 59if (digitalRead(Hall)==LOW ){ 60//delay(20); 61// delay(pozycja); 62 for (int i=0; i<54;i++){ 63 LightColumn(Cat[0][i],Cat[1][i],Cat[2][i],Cat[3][i],Cat[4][i],Cat[5][i],Cat[6][i],Cat[7][i],0,0); 64 delay(1); 65 } 66 LightColumn(0,0,0,0,0,0,0,0,0,0); 67 68} 69}
POV Display- Displaying sample message
arduino
1// Mario's Ideas 2//POV Display 3// Displaying sample message 4#define LED1 11 5#define LED2 12 6#define LED3 10 7#define LED4 8 8#define LED5 6 9#define LED6 4 10#define LED7 3 11#define LED8 9 12#define LED9 7 13#define LED10 5 14#define Hall 13 15 16 17int MI [8] [54] ={ 18 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 19 {0,1,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0}, 20 {0,1,1,0,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, 21 {0,1,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0}, 22 {0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,0,1,0,0,1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1,0,0,0,0}, 23 {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0}, 24 {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,1,0,0,1,0,0, 1,0,0,0,1,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, 25 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0} 26 }; 27 28void setup() { 29pinMode(LED1, OUTPUT); 30pinMode(LED2, OUTPUT); 31pinMode(LED3, OUTPUT); 32pinMode(LED4, OUTPUT); 33pinMode(LED5, OUTPUT); 34pinMode(LED6, OUTPUT); 35pinMode(LED7, OUTPUT); 36pinMode(LED8, OUTPUT); 37pinMode(LED9, OUTPUT); 38pinMode(LED10, OUTPUT); 39pinMode(Hall, INPUT); 40} 41 42void LightColumn(int L1, int L2 ,int L3, int L4 ,int L5, int L6 ,int L7, int L8 ,int L9, int L10){ 43 digitalWrite(LED1,L1); 44 digitalWrite(LED2,L2); 45 digitalWrite(LED3,L3); 46 digitalWrite(LED4,L4); 47 digitalWrite(LED5,L5); 48 digitalWrite(LED6,L6); 49 digitalWrite(LED7,L7); 50 digitalWrite(LED8,L8); 51 digitalWrite(LED9,L9); 52 digitalWrite(LED10,L10); 53} 54 55 56void loop() { 57 58if (digitalRead(Hall)==LOW ){ 59//delay(20); 60// delay(pozycja); 61 for (int i=0; i<54;i++){ 62 LightColumn(MI[0][i],MI[1][i],MI[2][i],MI[3][i],MI[4][i],MI[5][i],MI[6][i],MI[7][i],0,0); 63 delay(1); 64 } 65 LightColumn(0,0,0,0,0,0,0,0,0,0); 66 67} 68}
POV Display -Cat Clipart
arduino
1// Mario's Ideas 2// POV Display 3// Displaying "cat"clipart 4#define LED1 11 5#define LED2 12 6#define LED3 10 7#define LED4 8 8#define LED5 6 9#define LED6 4 10#define LED7 3 11#define LED8 9 12#define LED9 7 13#define LED10 5 14#define Hall 13 15 16int Cat [8] [8] ={ 17{1,0,0,0,1,0,0,0}, 18{1,1,1,1,1,0,0,0}, 19{1,0,1,0,1,0,0,0}, 20{0,1,1,1,0,0,0,1}, 21{0,0,1,0,0,0,0,1}, 22{0,1,1,1,1,0,0,1}, 23{0,1,1,1,1,1,0,1}, 24{1,0,1,1,1,1,1,0}, 25}; 26 27 28 29void setup() { 30pinMode(LED1, OUTPUT); 31pinMode(LED2, OUTPUT); 32pinMode(LED3, OUTPUT); 33pinMode(LED4, OUTPUT); 34pinMode(LED5, OUTPUT); 35pinMode(LED6, OUTPUT); 36pinMode(LED7, OUTPUT); 37pinMode(LED8, OUTPUT); 38pinMode(LED9, OUTPUT); 39pinMode(LED10, OUTPUT); 40pinMode(Hall, INPUT); 41} 42 43void LightColumn(int L1, int L2 ,int L3, int L4 ,int L5, int L6 ,int L7, int L8 ,int L9, int L10){ 44 digitalWrite(LED1,L1); 45 digitalWrite(LED2,L2); 46 digitalWrite(LED3,L3); 47 digitalWrite(LED4,L4); 48 digitalWrite(LED5,L5); 49 digitalWrite(LED6,L6); 50 digitalWrite(LED7,L7); 51 digitalWrite(LED8,L8); 52 digitalWrite(LED9,L9); 53 digitalWrite(LED10,L10); 54} 55 56 57void loop() { 58 59if (digitalRead(Hall)==LOW ){ 60//delay(20); 61// delay(pozycja); 62 for (int i=0; i<54;i++){ 63 LightColumn(Cat[0][i],Cat[1][i],Cat[2][i],Cat[3][i],Cat[4][i],Cat[5][i],Cat[6][i],Cat[7][i],0,0); 64 delay(1); 65 } 66 LightColumn(0,0,0,0,0,0,0,0,0,0); 67 68} 69}
POV Display- Displaying sample message
arduino
1// Mario's Ideas 2//POV Display 3// Displaying sample message 4#define LED1 11 5#define LED2 12 6#define LED3 10 7#define LED4 8 8#define LED5 6 9#define LED6 4 10#define LED7 3 11#define LED8 9 12#define LED9 7 13#define LED10 5 14#define Hall 13 15 16 17int MI [8] [54] ={ 18 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, 19 {0,1,0,0,0,1,0,0,1,1,0,0,1,1,1,0,0,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,1,1,0,0,0,0}, 20 {0,1,1,0,1,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, 21 {0,1,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0}, 22 {0,1,0,0,0,1,0,1,1,1,1,0,1,1,1,0,0,1,0,1,0,0,1,0,0,1,1,0,0,0,0,1,0,1,0,0,1,0,1,1,1,0,1,1,1,1,0,0,1,1,0,0,0,0}, 23 {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0}, 24 {0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,1,0,0,1,0,0, 1,0,0,0,1,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0}, 25 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,1,1,0,0,0,0} 26 }; 27 28void setup() { 29pinMode(LED1, OUTPUT); 30pinMode(LED2, OUTPUT); 31pinMode(LED3, OUTPUT); 32pinMode(LED4, OUTPUT); 33pinMode(LED5, OUTPUT); 34pinMode(LED6, OUTPUT); 35pinMode(LED7, OUTPUT); 36pinMode(LED8, OUTPUT); 37pinMode(LED9, OUTPUT); 38pinMode(LED10, OUTPUT); 39pinMode(Hall, INPUT); 40} 41 42void LightColumn(int L1, int L2 ,int L3, int L4 ,int L5, int L6 ,int L7, int L8 ,int L9, int L10){ 43 digitalWrite(LED1,L1); 44 digitalWrite(LED2,L2); 45 digitalWrite(LED3,L3); 46 digitalWrite(LED4,L4); 47 digitalWrite(LED5,L5); 48 digitalWrite(LED6,L6); 49 digitalWrite(LED7,L7); 50 digitalWrite(LED8,L8); 51 digitalWrite(LED9,L9); 52 digitalWrite(LED10,L10); 53} 54 55 56void loop() { 57 58if (digitalRead(Hall)==LOW ){ 59//delay(20); 60// delay(pozycja); 61 for (int i=0; i<54;i++){ 62 LightColumn(MI[0][i],MI[1][i],MI[2][i],MI[3][i],MI[4][i],MI[5][i],MI[6][i],MI[7][i],0,0); 63 delay(1); 64 } 65 LightColumn(0,0,0,0,0,0,0,0,0,0); 66 67} 68}
Downloadable files
POV Display
POV Display

POV Display
POV Display

Comments
Only logged in users can leave comments