While I was surfing the internet one day I stumbled upon something called “MiniPov v3“. I thought to myself that this was quite a neat little toy and maybe it would be fun to build one myself. But instead of simply building a copy of that one I wanted todo a custom version of it. So I used RGB LEDs instead of monocolor LEDs. As the microcontroller for all this I went with a PIC16F88. The LEDs had to be multiplexed to reduce the pin count and current consumption. The multiplexer is running at a frequency of approximate 12.8 kHz. This means that each led has an update frequency of 1.6 kHz. According to various sources online, a good freqency for POV is around 400 Hz. That will be the frequency used to update frame data and by frame data I am refering to information about which LEDs should be turned on or off and which color the LED should have.
Hi-Tech C for PIC16 was used to compile the source code and I have compiled it on both the 45-day trial PRO version and the free Lite version. I was a little bit concerned that without optimizations, the code produced by the Lite version would take too long to execute within the interrupt routine. After looking at the assembly code produced by the compiler and doing a rough count of the instructions inside the interrupt routine, everything seems to be fast enough after all.
Here are the schematic and source code for it:
Lastly some pictures and a video of the whole thing. It was very hard to capture this on camera but I hope you can see something in the video.