Hi all

This is a project that I've build a time ago to have some ambient light in photos I've taken of some projects that I did to display in Arduino day in my town.

Using 4 potentiometers you can change the LED color and brightness .

 

Arduino Lightbox

 

Materials needed

  • Arduino - I've used a Micro Pro
  • 4x 10k potentiometer
  • 1x Adafruit Neopixel stick - or compatible
  • 1x 18650 battery
  • 1x 18650 battery holder
  • Toggle Switch ON-OFF
  • DC-DC Mini Step Up Power Module 1-5v to 5v boost converter
  • Lightbox components

 

LightBox schematics

3D printed case

Lightbox

 

Assembly

 

Following the schematics, the assembly is very simple.

Wire the toggle switch to the battery and to the step-up .

Lightbox

Insert the battery holder next to the wall - there is a separator to keep the holder in place.

Lightbox

Wire all the potentiometers and the Neopixel strip

Lightbox

Lightbox

Everything wired

LightboxLightbox components

 

Let it be light

Lightbox

 

Use 4 M2.5x7 screws to close the LID

Screws

Lightbox

Lightbox

LightboxLightbox

 

Code

Here's the Arduino code for it. It's very straightforward and it uses the FastLed library.

 

#include <FastLED.h>


#define NUM_LEDS 8

#define DATA_PIN 9

CRGB leds[NUM_LEDS];

const int redPin = A3;
const int greenPin = A2;
const int bluePin = A1;
const int brightPin = A0;

// variable for storing the potentiometer value
int redValue = 0;
int greenValue = 0;
int blueValue = 0;
int brightValue = 255; //1.0 ???

//store old values
int oldRedValue = 0;
int oldGreenValue = 0;
int oldBlueValue = 0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println();
  
  //LEDS
  FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
  
  //show leds
  fill_solid (leds, NUM_LEDS, CRGB(0, 0, 0));
  FastLED.show();
}


void loop() {
  // put your main code here, to run repeatedly:
  //Read colors to send
  redValue = map(analogRead (redPin),0, 1023, 0, 255);
  greenValue = map(analogRead (greenPin), 0, 1023, 0, 255);
  blueValue = map(analogRead (bluePin), 0, 1023, 0, 255); 
  brightValue = map(analogRead (brightPin), 0, 4095, 0, 255);
  /*Serial.print("R: ");
  Serial.println(redValue);
  Serial.print("G: ");
  Serial.println(greenValue);
  Serial.print("B: ");
  Serial.println(blueValue); */
  FastLED.setBrightness(brightValue);
  fill_solid (leds, NUM_LEDS, CRGB(redValue, greenValue, blueValue));
  FastLED.show();   
}

 

Hope you like it !

Files are attached

Thingiverse thing