Introduction: DNA Helix Lamp - Arduino Powered WS2812B LED Strip 3D Printed Fancy Desk Lamp
I wanted to make a LED lamp which can be simple, minimalist and programmable. The power source should be simple and effectient like standard 5V USB Power Source that can be either mobile phone charger or a power bank.
I was curious with various LED Strip lamp and few Helical lamps. So I decided to do this DNA Helix Lamp.
The size of the lamp was restricted by the power consumption of the LED Strip. Each LED in the WS2812B Strip consumes 0.3 Watt power (60mA at 5V). Another consideration was the voltage drop. There will be voltage drop of 1V for every 15 LEDs. So I decided to limit the LED count within 15, as the total power needed will be 5V, 1A or 5W power source, which can be easily provided by 5V power out in Arduino.
There was problem in finding the 30 LED/m strips in my location. So I went with 60 LED/m strip for the lamp powered with arduino nano.
For controlling the lamp, I wanted it to be simple. So I went with a IR Receiver to control and operate it easily. Ofcourse using Bluetooth or WiFi is possible, but an overkill for this minimalist lamp.
Supplies
- Arduino Nano or Compatible
- WS2812B LED Strip (min length - 2 x 20-21 cm), count can be adjusted in code
- IR Receiving End VS1838B or Compatible
- Generic IR Remote
- Resistors 330 Ohms x 2
- USB Power Adapter or Power Bank with min 5V 2A rating or 10000 mAh
- Access to 3D Printer to create the lamp parts (around 75-80g of materials)
- Adhesive, rubber bands, soldering tools, wires, etc for making/fixing
Step 1: Print the Parts
The Lamp was designed in AutoCAD, as I am proficient in it. I made the Helix and extruded the arms of the lamp. Added the base and required openings.
Several iterations we done modeling and printing. Few worthy try are
- 2 Turn 80mm dia Helix with 210mm height (my 3D printer limit is 250mm) and 5mm thick arms (Arm length - 440mm)
- 1 Turn 90mm dia Helix with 200mm height and 4mm thick arms (Arm length - 320mm)
- 1 Turn 60mm dia Helix with 160mm height and 4mm thick arms (Arm length - 220mm)
The last one was small, firm and perfect.
All the required 3D models are here.
The base part of the model is incomplete right now. I will post an updated version soon.
Recommended print settings are there.
Step 2: Attach the LED Strips
With the 3D Models printed, start with the following
- Cut required length of LED Strip. It was 12 LEDs in my case.
- Solder the LED strip ends - check the direction before soldeing
- Fix the LED strips in the printed helix arms with adhesives. LED strip's own adhesive might not be sufficient.
- Make sure both the led strips are PARALLEL. Otherwise, fixing the strands will be hard and overall lamp will look weird.
- Once the strips are glued strong enough, start placing the strand pieces in between the arms along each LED. Glue them firmly. Attach rubber bands if needed.
- Once all the strands are fixed, test the strips if needed.
Step 3: The Circuit
The circuit is very simple. Once you have working Arduino Nano (ie having Boot loader installed), Connect the 5V and Ground to corresponding Vcc and Gnd of LED Strips and IR receiver. Connect D7, D8 with 330 Ohm resistor and either LED Strips serially. Connect D9 with IR Receiver Data pin. Voila. Put the circuit in the base and wrap it up.
You can use tapes to fix the IR Receiver aligning with hole in the base model.
Step 4: The Code
The code is fairly simple. I have used the latest Arduino IDE.
- Add FastLED and IRremote libraries in the Arduino Project
- Define and initialize required variables
- In setup() section
- In loop() section
- Function to process IR interrupts
- Functions to update LED lights
The sample .ino code is attached below.