Individual LED infinity mirror. Rainbow pattern.

What it does

Uses software to pulse width modulate through 8 bit shift registers. Doing this allows more LEDs to be used than there are pins on a microcontroller.

How I built it

I used an Arduino Uno and an ATTiny85 to prototype on a breadboard. A RIGOL

Challenges I ran into

The order that bits are shifted through the registers needs to be very specific. Clock cycles have to be saved for the effect to be a correct fade, and not blinking. The clock speed of microcontrollers matters.

Accomplishments that I'm proud of

Pulse width modulation working. It was a lot more difficult than it sounded.

What I learned

The ATTiny85 I have has a 1 MHz clock speed, not 8 MHz like I was hoping. So the current software will not work properly and only causes blinking lights.

What's next for pwmshift

Correct the problems by specifying SPI transfers and using asm macros in volatile memory for optimizing speed.

Built With

Share this project: