Johnnie Walker Whisky-lamp
Johnnie Walker (or other glasses)
-One Neopixel led circle for each glass.
-Cardboard paper or an oblong box (something that you can use for store the led corcles and hold the glass)
-A glass or Plexi plate
-A microcontroller
(-If you have a power bank you don't need to fix the lamp at one place, so is suggest to use one as the power supply.)
Choose the Good Bottles
Why Johnnie Walker? Each Johnnie whiskey got a label color, and I programmed the LEDs to match with the label color: The red label gets a red light the gold gets the gold, etc. There is a green and blue label as well, but these were too expensive for me, but you can get it if you want. I have the black label as you can see, but there is no such thing as black light, so it would've broken my composition. I suggest you use emptied bottles because the golden-brown whiskey would change the color of the LEDs (except when you use White Walker or other fully covered bottles, then it looks pretty good with the light). However, you should fill the bottles with an opalescent fluid because that will break the light beautifully and it will glow more. You can use of course other brands bottles like Bombay Saphire, but as I said: the Johnnies are good because of the label colors.
Write the program: this one is for a 3 glass project. You can put more or less glass and also can change the colors.
Code
#include #include #define NUM_LEDS 24 #define LED_PIN 4
CRGB leds[NUM_LEDS];
void setup() { Serial.begin (9600); delay( 3000 ); FastLED.addLeds(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); FastLED.setBrightness( 32 ); for ( int i=0; i< 8; i++) leds[i] = CRGB(0, 0, 0); Serial.println ("changed color to (0,0,0)"); FastLED.show(); FastLED.delay(1000);
for ( int k=8; k< 16; k++) leds[k] = CRGB(0, 0, 0); Serial.println ("changed color to (0,0,0)"); FastLED.show(); FastLED.delay(1000);
for ( int l=8; l< 16; l++) leds[l] = CRGB(0, 0, 0); Serial.println ("changed color to (0,0,0)"); FastLED.show(); FastLED.delay(1000); }
void loop() {
for ( int i=0; i <8; i++) { leds[i] = CRGB(random (140,255), 0, 0); }
for ( int k=8; k <16; k++) { leds[k] = CRGB(255, random (140,210), 0); }
for ( int l=17; l <24; l++) { leds[l] = CRGB(random (240,255), random (240,255) , 255); } Serial.print ("changed color"); FastLED.show(); FastLED.delay(250); // put your main code here, to run repeatedly:
}
Making the Structure
To make the box that stores the LEDs you can choose a lot of options. I will recommend three:
-Cut and fold it from cardboard paper
-Buy or reuse an oblong box
-3D print it
At the moment as you can see, I only got the cardboard version, but soon I will get a 3D printed box from a University (sadly they were closed due to the holiday)
After you did this you need to solder your LEDs in a line and also solder them with your microcontroller.
The last steps are easy: Arrange the LEDs in the box (you can use glue to fix the cables just as I did) and put the glass plate on top of it. Connect your device to electricity and put the (whisky)glasses on the glass plated box.