I designed and built some PCB Christmas tree ornaments for my friends and family. Nothing says “Christmas” like blinky LEDs.
These boards interface an 8-bit Microchip microcontroller with a TI 16-channel LED driver to control several RGB LEDs. Random LED colors are generated by the MCU and sent to the driver over an I2C bus. The LED driver sinks the LED current using its open-drain PWM-controlled outputs. Specific colors are selected by setting the PWM duty cycle of the R, G,and B channels to the desired color’s R, G, and B hex codes. The source code of the firmware can be found on my Git Hub repository.
The circuit is shown below:
A screen shot of the PCB is shown below:
And the final product here: