Water Surface Lamp

by Qttting_F in Circuits > Arduino

14571 Views, 157 Favorites, 0 Comments

Water Surface Lamp

IMG_4450.jpg
IMG_9385.JPG
IMG_4542.jpg
日杂风-横-01.jpg
Water Surface Lamp

This Instructable will show you how to make an atmosphere lamp that lights up just like making little waves on the water surface. It can be placed on your table, shelf, or bedside to create a harmonious atmosphere, bringing an absorbing experience to the user. To do this, you'll first want to gather the following materials:

Parts, Tools, Supplies

IMG_4329.jpg
IMG_4334.jpg

Circuit Diagram and Code

water surface - light effect
WeChat4dbf2779bab5a03bbb54d194f8fb30cf.png
WechatIMG42.jpeg
WeChatd2e733ec00dda0058f3e0ffaf5e375c8.png

1. Simulate the final lighting effect:When people touch the center area to turn it on, the light effect will be like water waves, as if a hand touches the water surface.

2. The connection method of the touch sensor switch is shown in Figure 2. The open blue wire is to connect the conductive tape.

3. Connect the touch sensor and Neopixel rings with Arduino Uno, and play with the code to get a desired color affect.

You can change the code as follows according to your own Neopixel rings:

#define BUTTON_PIN   4 
#define PIXEL_PIN    6    
#define PIXEL_COUNT 111
#define BRIGHTNESS 50

bool oldState = HIGH;
int showType = 0; 
#define PIXEL_COUNT 111

Total number of leds.

void startShow(int i) {
  switch(i){
    case 0: colorAll(strip.Color(0, 0, 0), 0);    // Black/off
            break;
    case 1: 
      colorlast4(strip.Color(0, 255, 255), 0);
      for(int i=0; i<3; i++){ // change to i<2 to reduce from 3 to 2 repeats
      // adjust last value in each of these function calls to control speed
      // (more than 200 milliseconds for slower, less than 200 for faster)
      colorInnerRing(strip.Color(0, 150, 150), 200);
      colorInnerRing(strip.Color(0, 255, 255), 0);
      colorMiddleRing(strip.Color(0, 150, 150), 200);
      colorInnerRing(strip.Color(0, 150, 150), 0);
      colorMiddleRing(strip.Color(0, 255, 255), 0);
      colorOuterRing(strip.Color(0, 150, 150), 200);
      colorInnerRing(strip.Color(0, 0, 0), 0);
      colorMiddleRing(strip.Color(0, 150, 150), 0);
      colorOuterRing(strip.Color(0, 255, 255), 200);
      colorInnerRing(strip.Color(0, 0, 0), 0);
      colorMiddleRing(strip.Color(0, 0, 0), 0);
      colorOuterRing(strip.Color(0, 150, 150), 200);
      colorOuterRing(strip.Color(0, 0, 0), 0);  
    //colorAll(strip.Color(0, 0, 0), 0);
            break;}
}
colorInnerRing(strip.Color(0, 150, 150), 200);

Adjust the color of the leds.

void colorInnerRing(uint32_t c, uint8_t wait) {
  for(uint16_t i=0; i<12; i++) {
    strip.setPixelColor(i, c);
  }
  strip.show();
  delay(wait);
}
for(uint16_t i=0; i<12; i++)

In this line, "I'' stands for the number of leds. The inner Neopixel ring has 12 leds, so the code will be "I=0; I<12".

Downloads

Built the Circuit

IMG_4337.jpg
IMG_4341.jpg
IMG_4376 2.jpg
IMG_4382.jpg

1. Fix the position of Neopixel rings with nylon ties.

2. Build your circuit according to the circuit diagram above. You can test them on a breadboard first before soldering them together.

3. Plugin your Arduino board to your computer.

4. Download Arduino IDE if you haven’t already. Copy the code and run it in your Arduino IDE. Don’t forget to install the Adafruit NeoMatrix libraries before running the code if you never used an LED matrix before. Read this Adafruit-NeoPixel-Uberguide about NeoMatrix libraries, it will tell you the basics about NeoMatrix and how to install the libraries.

5. Download the code provided and upload the code to your Arduino.

6. Power supply with power bank.

Assembly

IMG_4348.jpg
IMG_4361.jpg
IMG_4381.jpg
IMG_4380.jpg
Water surface - Assembly Testing
IMG_4389.jpg
IMG_4392.jpg

1. Cut the cardboard. Cut a hole in the middle and make four supporting plates under the cardboard

2. Hide the Arduino Uno, the touch sensor and wires underneath.

3. Fix the rounded conductive tape in the center of the cardboard.

4. Secure the lamp on the cardboard with nylon ties.

5. Connect the power and test it.

6. Put everything into the bowl.

7. Stick a Neopixel strip around the inside of the bowl.

8. Cover the bowl with acrylic sheet.

Final Outcome

Water Surface - Final outcome