The Arduino-powered interactive snowflake is a creative and dynamic project that combines technology and art. Using the compact Arduino Nano, this snowflake creates stunning animations and effects, making it an engaging centerpiece for any space.

This project delivers a unique experience by leveraging 17 independent PWM channels and a touch sensor. The snowflake’s ability to respond to touch and produce a variety of effects makes it an excellent example of how Arduino can bring creativity to life.
Whether you’re an experienced maker or a beginner, this project offers a great opportunity to explore Arduino programming and electronics. Plus, a PCB version is available, so anyone can recreate the snowflake and enjoy the effects firsthand.
Step 1: Project Overview
The snowflake features 30 LEDs arranged into 17 independent segments, each controllable by the Arduino Nano microcontroller. Using PWM, each LED group can be dimmed to create beautiful, dynamic animations.
Step 2: Tools
You will only need a soldering iron, solder, and pliers to assemble the components in this step.
Step 3: Construction










Begin by selecting a pattern for your snowflake. I opted for a simple, elegant snowflake crystal and resized it to fit the Arduino Nano inside the hexagonal core.
To build the support structure, I used 0.8mm brass rods soldered together with tin, totaling 2 meters of rod. I chose a freeform approach because I’ve always wanted to try this style, which requires patience and skill.
First, I created the core hexagon by bending a single rod and soldering the ends together. Then, I added six more rods to form the snowflake’s arms, which also serve as the ground wiring. The cathode leads of the LEDs were soldered to this structure to form the basic snowflake shape. The tricky part was adding the SMD LEDs, which I aligned using a cardboard jig and double-sided tape.
Once the core structure was complete, I placed the Arduino Nano beneath it, leaving enough room for three layers of brass rods to connect the microcontroller to the LED anode leads. This stage required great attention to detail to avoid short circuits and ensure proper current limiting.
The LEDs are connected as follows: the leaf LEDs are linked to the nearest Arduino output pins, the branch LEDs are grouped in pairs and connected to the PWM pins, and the core LEDs are paired and connected to the remaining pins. With only 18 output pins available on the Arduino Nano (A6 and A7 are inputs), I connected two pairs of core LEDs to form a group of four. To limit the current to around 8mA per pin, I used 220Ω resistors, bringing the total current to 240mA, which is slightly above the recommended 200mA maximum for the ATmega328 chip but still functional.
Step 4: Touch Sensor



To enable interaction with the snowflake, I added an additional brass rod to create a capacitive touch sensor. To integrate this feature, I utilized a fantastic library and tutorial by Paul Stoffregen. The touch sensor allows you to interact with the Arduinoflake, changing animations, turning it on or off, triggering sparkles with a touch, and more.
Step 5: Code
Initially, I thought I could only dim the branch LEDs connected to the hardware PWM pins. However, I discovered an incredible software PWM library that allowed me to treat all the pins as hardware PWM, unlocking a world of possibilities for animations! Below, you’ll find the code, along with some of the initial animations I created.
Step 6: Schematics

Frequently Asked Questions
What is the Arduino-based interactive snowflake?
It’s a creative project that uses an Arduino Nano to control 30 LEDs arranged in a snowflake pattern. The LEDs can display animations and respond to touch, offering a dynamic and interactive experience.
What components are required to build the snowflake?
You will need an Arduino Nano, 30 LEDs, 17 brass rods for the frame, a touch sensor, resistors, and other wiring components. Additionally, tools like a soldering iron and pliers are necessary for assembly.
How does the touch sensor work?
The touch sensor, made with a brass rod, detects changes in capacitance when you touch it. This allows you to interact with the snowflake and trigger effects like changing animations, turning the snowflake on or off, or creating sparkles.
Can I customize the animations?
Yes, the snowflake can be programmed to display various animations. The use of both hardware and software PWM allows for creative freedom in how the LEDs behave.
How are the LEDs connected?
The LEDs are divided into different groups: leaf LEDs connected to Arduino output pins, branch LEDs connected to PWM pins, and core LEDs grouped together for efficient wiring. Each LED group is controlled using the Arduino Nano’s pins.
What is PWM, and why is it important for this project?
PWM (Pulse Width Modulation) allows you to control the brightness of LEDs by adjusting the signal’s duty cycle. This is key to creating smooth animations and dimming effects in the snowflake.
How does the brass rod structure support the project?
The brass rods form the snowflake’s frame, providing both physical structure and electrical connections. They also serve as the framework for the snowflake’s design and the wiring for the LED cathodes.
What software do I need to program the snowflake?
You will need the Arduino IDE to write and upload the code to the Arduino Nano. Additionally, you can use a software PWM library to expand the number of PWM-controlled pins.
Can I add more LEDs to the snowflake?
While it’s possible to add more LEDs, you’ll need to ensure that your power supply and the number of available pins on the Arduino can handle them. You might also need to adjust the code to accommodate the new setup.
Is this project suitable for beginners?
This project is best suited for individuals with some experience in Arduino programming and soldering. It involves advanced wiring and coding but is a great learning opportunity for those looking to expand their skills.
Conclusion
The Arduino-based interactive snowflake is a captivating project that combines creativity with technology. By utilizing an Arduino Nano, PWM control, and a capacitive touch sensor, this project offers endless possibilities for dynamic lighting effects and animations. Whether you’re looking to enhance your skills in electronics, programming, or 3D design, building this snowflake provides a rewarding challenge.
Not only does it serve as a beautiful and functional piece of art, but it also demonstrates the power of Arduino in creating interactive, customizable projects. With the right tools, patience, and attention to detail, you can create your own unique version of this interactive snowflake and explore the vast potential of embedded systems and visual design.