Project in progress
Simple 3D-Printed WS2812-Based RGB Lamp

Simple 3D-Printed WS2812-Based RGB Lamp © CC BY

Learn how to make a 3D-printed RGB lamp using a WS2812 LED strip.

  • 2,242 views
  • 0 comments
  • 8 respects

Components and supplies

ws2812 led strip
×1
Ph a000066 iso (1) ztbmubhmho
Arduino UNO
×1
lithium ion cell x6 3.7V each
×1
Logo jycgurodtz
UTSOURCE Electronic Parts
everything above can be found here for a low price
×1

Necessary tools and machines

3drag
3D Printer (generic)

About this project

watch the video for construction and basic stuff

Thanks UTSOURCE.net to offer electronic components for this project!

you can check UTSOURCE.net, they deal in all kinds of electronic components, for example, Arduino board, RGBs, and many more.


Code

Untitled fileC/C++
#include <FastLED.h>

FASTLED_USING_NAMESPACE

#if defined(FASTLED_VERSION) && (FASTLED_VERSION < 3001000)
#warning "Requires FastLED 3.1 or later; check github for latest code."
#endif

#define DATA_PIN    5//#define CLK_PIN   4
#define LED_TYPE    WS2811
#define COLOR_ORDER GRB
#define NUM_LEDS    4
CRGB leds[NUM_LEDS];

#define BRIGHTNESS         128 //96
#define FRAMES_PER_SECOND  20 //120

void setup() {
  delay(3000); // 3 second delay for recovery
  
  // tell FastLED about the LED strip configuration
  FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  //FastLED.addLeds<LED_TYPE,DATA_PIN,CLK_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);

  // set master brightness control
  FastLED.setBrightness(BRIGHTNESS);
}


// List of patterns to cycle through.  Each is defined as a separate function below.
typedef void (*SimplePatternList[])();
SimplePatternList gPatterns = { rainbow};

uint8_t gCurrentPatternNumber = 0; // Index number of which pattern is current
uint8_t gHue = 0; // rotating "base color" used by many of the patterns
  
void loop()
{
  // Call the current pattern function once, updating the 'leds' array
  gPatterns[gCurrentPatternNumber]();

  // send the 'leds' array out to the actual LED strip
  FastLED.show();  
  // insert a delay to keep the framerate modest
  FastLED.delay(1000/FRAMES_PER_SECOND); 

  // do some periodic updates
  EVERY_N_MILLISECONDS( 20 ) { gHue++; } // slowly cycle the "base color" through the rainbow
  EVERY_N_SECONDS( 10 ) { nextPattern(); } // change patterns periodically
}

#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))

void nextPattern()
{
  // add one to the current pattern number, and wrap around at the end
  gCurrentPatternNumber = (gCurrentPatternNumber + 1) % ARRAY_SIZE( gPatterns);
}

void rainbow() 
{
  // FastLED's built-in rainbow generator
  fill_rainbow( leds, NUM_LEDS, gHue, 7);
}

Custom parts and enclosures

3D file 1
3D file 2
3D file 3

Schematics

rgb_trip_bb_0b1PlZY1xb.png
Rgb trip bb 0b1plzy1xb

Comments

Similar projects you might like

3D-Printed RGB Wallet

Project tutorial by Alex Wulff

  • 2,057 views
  • 0 comments
  • 8 respects

NeoPixel RGB Mixinator

Project tutorial by Arnov Sharma

  • 349 views
  • 0 comments
  • 5 respects

3D-Printed Jet Turbine

Project tutorial by Arnov Sharma

  • 9,204 views
  • 15 comments
  • 44 respects

Voice Controlled RGB Lamp

Project tutorial by Pham Hoang Son

  • 4,034 views
  • 1 comment
  • 14 respects

3D-Printed Nanoleaf ATtiny85

Project tutorial by Arnov Sharma

  • 3,743 views
  • 0 comments
  • 15 respects

Arc RGB LED Lamp

Project in progress by antiElectron

  • 1,797 views
  • 0 comments
  • 7 respects
Add projectSign up / Login