Last week I had the idea to create a last-minute valentine’s day gift for my girlfriend. I had a bunch of WS2812 LEDs from my previous endeavors and decided to make a big LED heart. These are a great choice because of the very minimal amount of components necessary: no I/O expanders, driving transistors or ICs necessary. Plus you just need one I/O line from your microcontroller to drive them.
Since they run off 5V, I planned to create a board that is powered from a wall-wart power supply. That way the board doesn’t even need a voltage regulator on it. I chose to use an ATMega48 because I have several from previous projects.
First was deciding on the placement of the LEDs. Being a bit OCD I wanted them spaced out in some organized fashion. Wolfram Math World has a post with some parametric and polar equations that plot out different heart shapes. I plotted three concentric hearts in excel and played around with some scaling factors and how I wanted them spaced out.
Now I had the coordinates for each LED so it was easy enough to load these into Altium Designer.
After a night of PCB layout I had a decent enough layout: