The first POV I ever saw was at a science fair many years ago. It was a vertical strip of leds mounted on the wall and when you walked past them you would see a random image out of the corner of your eye and when you turned to look it disappeared. It was amusing to watch people with puzzled looks turning their heads back and forth.
I'd like to reproduce that effect... I downloaded some POV code but not sure how to use it. The leds flash for a couple seconds and then stop.
#include <avr/power.h>
#include <avr/sleep.h>
[color=#CC6600]int[/color] ledpin[] = {12,11,10,9,4,3,8,7,6,5};
[color=#CC6600]int[/color] dotTime = 1;
[color=#CC6600]int[/color] _[] = {0b0000000000,
0b0000000000,
0b0000000000,
0b0000000000,
0b0000000000};
[color=#CC6600]int[/color] A[] = {0b1111111100,
0b0000010010,
0b0000010001,
0b0000010010,
0b1111111100};
[color=#CC6600]int[/color] B[] = {0b1111111111,
0b1000010001,
0b1000010001,
0b0100101010,
0b0011000100};
[color=#CC6600]int[/color] C[] = {0b0011111100,
0b0100000010,
0b1000000001,
0b0100000010,
0b0011001100};
[color=#CC6600]int[/color] D[] = {0b1111111111,
0b1000000001,
0b1000000001,
0b0100000010,
0b0011111100};
[color=#CC6600]int[/color] E[] = {0b1111111111,
0b1000010001,
0b1000010001,
0b1000010001,
0b1000000001};
[color=#CC6600]int[/color] F[] = {0b1111111111,
0b0000010001,
0b0000010001,
0b0000010001,
0b0000000001};
[color=#CC6600]int[/color] G[] = {0b0011111100,
0b0100000010,
0b1001000001,
0b0101000010,
0b1111001100};
[color=#CC6600]int[/color] H[] = {0b1111111111,
0b0000010000,
0b0000010000,
0b0000010000,
0b1111111111};
[color=#CC6600]int[/color] I[] = {0b0000000000,
0b1000000001,
0b1111111111,
0b1000000001,
0b0000000000};
[color=#CC6600]int[/color] J[] = {0b0011111111,
0b0100000001,
0b1000000001,
0b0100000000,
0b0011000000};
[color=#CC6600]int[/color] K[] = {0b1111111111,
0b0000010000,
0b0000101000,
0b0001000100,
0b1110000011};
[color=#CC6600]int[/color] L[] = {0b1111111111,
0b1000000000,
0b1000000000,
0b1000000000,
0b1000000000};
[color=#CC6600]int[/color] M[] = {0b1111111100,
0b0000000011,
0b0000001100,
0b0000000011,
0b1111111100};
[color=#CC6600]int[/color] N[] = {0b1111111111,
0b0000000110,
0b0000011000,
0b0001100000,
0b1111111100};
[color=#CC6600]int[/color] O[] = {0b0011111100,
0b0100000010,
0b1000000001,
0b0100000010,
0b0011111100};
[color=#CC6600]int[/color] P[] = {0b1111111111,
0b0000010001,
0b0000010001,
0b0000001010,
0b0000000100};
[color=#CC6600]int[/color] Q[] = {0b0011111100,
0b0100000010,
0b1000000001,
0b0100000010,
0b1011111100};
[color=#CC6600]int[/color] R[] = {0b1111111111,
0b0000010001,
0b0000010001,
0b0000101010,
0b1111000100};
[color=#CC6600]int[/color] S[] = {0b0011000100,
0b0100001010,
0b1000010001,
0b0100100010,
0b0011001100};
[color=#CC6600]int[/color] T[] = {0b0000000001,
0b0000000001,
0b1111111111,
0b0000000001,
0b0000000001};
[color=#CC6600]int[/color] U[] = {0b0111111111,
0b1000000000,
0b1000000000,
0b1000000000,
0b0111111111};
[color=#CC6600]int[/color] V[] = {0b0000011111,
0b0011100000,
0b1100000000,
0b0011100000,
0b0000011111};
[color=#CC6600]int[/color] W[] = {0b0011111111,
0b1100000000,
0b0011000000,
0b1100000000,
0b0011111111};
[color=#CC6600]int[/color] X[] = {0b1100000011,
0b0011001100,
0b0000110000,
0b0011001100,
0b1100000011};
[color=#CC6600]int[/color] Y[] = {0b0000000011,
0b0000001100,
0b1111110000,
0b0000001100,
0b0000000011};
[color=#CC6600]int[/color] Z[] = {0b1100000001,
0b1011000001,
0b1000110001,
0b1000001101,
0b1000000011};
[color=#CC6600]void[/color] [color=#CC6600][b]setup[/b][/color]() {
[color=#CC6600][b]Serial[/b][/color].[color=#CC6600]begin[/color](9600);
[color=#CC6600]for[/color] ([color=#CC6600]int[/color] i = 0; i < 10; i++) {
[color=#CC6600]pinMode[/color](ledpin[i], [color=#006699]OUTPUT[/color]);
}
[color=#CC6600]pinMode[/color](2, [color=#006699]INPUT[/color]);
[color=#CC6600]digitalWrite[/color](2, 1);
[color=#CC6600]digitalWrite[/color](13, 1);
}
[color=#CC6600]int[/color] pow([color=#CC6600]int[/color] num, [color=#CC6600]int[/color] power) {
[color=#CC6600]return[/color] [color=#CC6600]round[/color](pow(([color=#CC6600]double[/color])num, ([color=#CC6600]double[/color])power));
}
[color=#CC6600]void[/color] printLetter([color=#CC6600]int[/color] letter[]) {
[color=#CC6600]delay[/color](dotTime);
[color=#CC6600]for[/color] ([color=#CC6600]int[/color] i = 0; i < 5; i++) {
[color=#CC6600]for[/color] ([color=#CC6600]int[/color] j = 0; j < 10; j++) {
[color=#CC6600]digitalWrite[/color](ledpin[j], (letter[i] & pow(2, j)) ? [color=#006699]HIGH[/color] : [color=#006699]LOW[/color]);
[color=#CC6600][b]Serial[/b][/color].[color=#CC6600]print[/color]((letter[i] & pow(2, j)) ? [color=#006699]"O"[/color] : [color=#006699]" "[/color]);
}
[color=#CC6600][b]Serial[/b][/color].[color=#CC6600]print[/color]([color=#006699]"|\n"[/color]);
[color=#CC6600]delay[/color](dotTime);
}
[color=#CC6600][b]Serial[/b][/color].[color=#CC6600]print[/color]([color=#006699]"\n"[/color]);
[color=#CC6600]for[/color] ([color=#CC6600]int[/color] i = 0; i < 10; i++)
[color=#CC6600]digitalWrite[/color](ledpin[i], 0);
[color=#CC6600]delay[/color](dotTime);
}
[color=#CC6600]void[/color] wake() {}
[color=#CC6600]void[/color] [color=#CC6600][b]loop[/b][/color]() {
[color=#CC6600]delay[/color](1);
printLetter(H);
printLetter(E);
printLetter(L);
printLetter(L);
printLetter(O);
printLetter(_);
[color=#CC6600]attachInterrupt[/color](0, wake, [color=#006699]LOW[/color]);
[color=#CC6600]delay[/color](1);
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
sleep_enable();
sleep_mode();
sleep_disable();
[color=#CC6600]detachInterrupt[/color](0);
}
I think if I can make it repeat it would work.