Thursday, December 24, 2009

Twinkling LED Snowflakes

Around the beginning of December, my sister, Kristina, sent me a link to snowflake ornaments with a white LED in them.

Needless to say, she thought they were pretty cool, and that we should make some.

Needless to say, I thought they were a good idea, but weren't over-engineered enough. Two hours of hacking source code later, I had an ATtiny 2313 programmed to twinkle 8 LEDs. The eventual result only used 5 of the channels, due to space limitations.

Parts list:
  • 1 - ATtiny 2313 programmed with custom twinkle code. I used a MiniPOV3 to program the ATtiny. Porting this to another controller, like the Arduino, would be trivial.
  • 1 - 7805 linear voltage regulator
  • 1 - 1N4002 diode to protect from reverse polarity on the power supply (optional)
  • 1 - 10μF electrolytic capacitor to filter the 5V from the 7805
  • 1 - 10kΩ pull-up resistor connected to the reset pin in the ATtiny (didn't actually bother to check if this is actually needed. Saw no reason not to just stick it in).
  • 5 - Bright white LEDs
  • 5 - 330Ω current limiting resistors. These are a little big for a 5V and bright whites, but the result was still a little too bright, so pick some value you're happy with.
  • Lots of wire and beads.
We split the work of building the hardware into two parts. Kristina built the snowflakes (including soldering the LEDs to the wire!), and I build the wiring harness and put together the controller.

Kristina building the snowflakes.

One of the completed snowflakes. Our beads aren't as fancy as the ones in the original tutorial, but that was mainly because our options were so limited by the fact that we were using twisted pair instead of wire wrap wire. Most of the nice beads had holes that were too small for us to use.

The control board, fully assembled. On the left is the power supply, with a reverse protection diode and a filtering capacitor, with power in being the two far left screws on the terminal block. On the right is the ATtiny connected to the five sets of twisted pair running out to the snowflakes. I just arbitrarily connected the snowflakes to five of the eight pins on PORTB of the controller, since all eight pins twinkle differently.

One of the snowflakes hanging from our fireplace.

All five snowflakes hanging between our stockings.

Finally, a very dark video of the five of them to give you an idea of what my twinkle algorithm looks like:

Any questions, or ideas on how to improve this, aesthetically or functionally, are certainly welcome in the comments. Merry Christmas!

1 comment:

  1. wow. cool! it would be really elegant if they could fade in and out instead of just blink