Nani Shin
Published © GPL3+

[Upcycling] Aquarium Light with RGBW LED Strip

It's an upcycling project to reuse metal body of aquarium light even original circuit was broken. I used RGBW LED strip and Arduino Nano.

IntermediateFull instructions provided2 hours2,158
[Upcycling] Aquarium Light with RGBW LED Strip

Things used in this project

Hardware components

broken aquarium light
Reuse metal body of broken aquarium light
×1
Adafruit RGBW LED Strip
Similar product to use same SK6812
×1
Arduino Nano R3
Arduino Nano R3
Control RGBW LED Strip
×1
Capacitor 100 µF
Capacitor 100 µF
Reduce RGBW LED damage by peak current
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)
Breadboard, 170 Pin
Breadboard, 170 Pin

Story

Read more

Schematics

RGBW_auqarium_light_fritzing

fritzing schemetics

RGBW_aquarium_light_schematics

RGBW Aquarium Light Schematices

RGBW_aquarium_light_photo

RGBW Aquarium Light Photo

Code

RGBW_aquarium_light

Arduino
It's modified from example (i.e. RGBWstrandtest) of Adafruit NeoPixel.
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
 #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
#endif

// Which pin on the Arduino is connected to the NeoPixels?
// On a Trinket or Gemma we suggest changing this to 1:
#define LED_PIN     6

// How many NeoPixels are attached to the Arduino?
#define LED_COUNT  36

// NeoPixel brightness, 0 (min) to 255 (max)
#define BRIGHTNESS 255

// Declare our NeoPixel strip object:
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRBW + NEO_KHZ800);
// Argument 1 = Number of pixels in NeoPixel strip
// Argument 2 = Arduino pin number (most are valid)
// Argument 3 = Pixel type flags, add together as needed:
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
//   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
//   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
//   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
//   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)

void setup() {
  // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
  // Any other board, you can remove this part (but no harm leaving it):
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
  clock_prescale_set(clock_div_1);
#endif
  // END of Trinket-specific code.

  strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)
  strip.show();            // Turn OFF all pixels ASAP
  strip.setBrightness(BRIGHTNESS); // Set BRIGHTNESS to about 1/5 (max = 255)
}

void loop() {
  // Fill along the length of the strip in various colors...
  colorWipe(strip.Color( 255, 255, 255, 255), 50); // Turn ON all of them (Red, Green, Blue and True white)
}

// Fill strip pixels one after another with a color. Strip is NOT cleared
// first; anything there will be covered pixel by pixel. Pass in color
// (as a single 'packed' 32-bit value, which you can get by calling
// strip.Color(red, green, blue) as shown in the loop() function above),
// and a delay time (in milliseconds) between pixels.
void colorWipe(uint32_t color, int wait) {
  for(int i=0; i<strip.numPixels(); i++) { // For each pixel in strip...
    strip.setPixelColor(i, color);         //  Set pixel's color (in RAM)
    strip.show();                          //  Update strip to match
    delay(wait);                           //  Pause for a moment
  }
}

Credits

Nani Shin
1 project • 1 follower
Let's live a life to reach spiritual enlightenment.
Contact

Comments

Please log in or sign up to comment.