Sound Reactive Lightning Cloud




Introduction: Sound Reactive Lightning Cloud

This is a DIY cloud lamp that flashes like realistic lightning if it hears a loud noise. It took me only 4 hours to make and my knowledge of coding NeoPixels and wiring is very basic! So if I can do it, then pretty much anyone can!

I followed this tutorial ( but had to make some adjustments due to having different resources. To do my version of this project you will need:

Paper Lanterns:

Hot glue and gun

A breadboard (small is better, but a normal-sized one will work. Just be sure it has the + and - strip on the side):

An Arduino Uno:

An A to B USB cord:

A cell phone charger block (5v, 2A sats work best; the one I used was a 5V, 1A iPhone charger)

A sound sensor/microphone module for arduino:

2 meters of NeoPixels:

What I used –

What I suggest using–

Pillow Stuffing (you can buy bags of this at Walmart or craft stores if you don't have any old pillows to tear open)

Spray Adhesive (you can find this at Walmart in the craft section)

(May also need soldering gun and solder.)

Step 1: Solder (optional)

My NeoPixel strand came with wires a special connector on the beginning end so I didn't have to solder wires onto the LED. But, if yours doesn't come with a connector, you will need to do some soldering (honestly, I find this easier than trying to figure out which wire is ground, Din, or +5V). Also, if you're like me, you may need to solder two strands of NeoPixels together. Just make sure to solder the Din side of the LED to the Dout side of the of LED (on my strands there were little arrows on the strand to show the flow of information, so as long as all the arrows point the same direction than you're good.)

Step 2: Create the Structure

Open all the paper lanterns and then hot glue them together in a formation you think resembles a cloud. Then wrap the NeoPixel strand around the structure (the strand I used had an adhesive back to them, but if yours don't then you can apply copious amounts of the spray adhesive to the back of the strand). As you can see, I wrapped mine horizontally, but I suggest sort of wrapping them around in a sort of spiral-like pattern to have all sides (including top and bottom) covered in NeoPixels. Just be sure to leave an opening at the top to put the breadboad, arduino and microphone in the lantern.

Step 3: Add Fluff

Using spray adhesive, stick the pillow stuffing (or polyester fiberfill) onto the paper lanterns. Just be sure you can access the beginning end (the Din side) of the NeoPixels so you can connect it to the other components. I suggest spraying the structure in sections, as opposed to spraying the whole thing at once and scrambling to put the fiberfill on before it dries. and don't be too worried about evenly applying your fluff; the more unevenly the fiberfill is applied, the more realistic the cloud will look and light up.

Step 4: Wiring

This is where things can become a bit complicated. Let's start with the wiring. Do NOT have the Arduino connected to power while doing any of the wiring, EVER. There is a possibility of frying the LEDs if you mess around with the wiring and it's connected to power, so just to be on the safe side always disconnect from the power source when fiddling with the wires. With that said, I will now explain the diagram I have included.

The green and red wires have to do with transferring power and the black wires have to do with transferring information. The red wires are specifically related to the positive part of wiring, so any time there is a Vin, 5V, or +, it will need to be connected to the (+) column on the breadboard. Green wires are associated with negative or ground, so any time there is a GND port or wire used it gets connected to the (-) column of the breadboard.

On my project, I connected the Din part of the NeoPixels to the 7 on the Arduino. You can choose any numbered port on the side of the Arduino labeled "digital'', just make sure to change it in the code if you end up using the code I've provided for you.

Step 5: Coding

Here is the original code that I borrowed and adapted, if you want to modify it yourself:

However, if don't really understand coding all that well (like me) and have used exactly the same resources as me (including the use of 120 LEDs) and done exactly the same wiring as me, then this code should work without having to do any adjustments:

Step 6: Adjusting Sound Senor Sensitivity

Connect the cloud to your power source and adjust the sensitivity of the sound sensor. See the note on the image of the sound sensor. This step is easiest to do while playing a recording of a thunderstorm at the desired volume and having the cloud at the desired distance from the speaker. I suggest that when you find the perfect sensitivity for when the sound sensor is outside of the cloud, you should make it just a tad more sensitive as it will be surrounded by fiberfill which can muffle and dull the intensity of the sound reaching the microphone.

Step 7: Final Steps

Connect the Arduino to power and place it and the breadboard inside the lantern. Then attach fishing line to the the metal bar of the paper lantern so you can hang it. ( I recommend tying the fishing line to all of the lanterns, instead of just the center, so as to reduce the possibility of the lanterns separating while hanging; in other words, to evenly distribute the weight of the cloud to all parts of it.)

There you have it! Your very own sound reactive lightning cloud lamp! Enjoy falling to sleep with your own simulated storm :)

Lights Contest 2017

Runner Up in the
Lights Contest 2017



    • Metalworking Contest

      Metalworking Contest
    • Water Contest

      Water Contest
    • Fix It! Contest

      Fix It! Contest

    58 Discussions

    in the code i noticed using of IR receiver and moods that could be changed by IR remote control. where is that? you didn't use remote control?

    2 replies

    I actually ended up frying my IR receiver because the pins on it weren't labeled and I accidentally hooked it up incorrectly. So I ended up not having mine remote controlled

    Do you happen to still have the original code that included the IR receiver section of the code? I would like to try implementing an IR remote for the moods. I've been looking over using the IR-Remote library and it doesn't seem too complicated. However, if you still have your original code that included the IR setup, that would be very helpful.

    Cool project. Seen a few of these but this is one of the better ones.

    Question about the wiring section. You have an image of the breadboard, the Arduino and the microphone with what looks like small speakers also wired to the breadboard. Are those in fact speakers? Are they needed for the project? I ordered all the materials on your list and just saw that in the image and was wondering if that is also necessary to complete the cloud.

    1 reply

    A speaker is not needed. The program I used to make the diagram didn't have a microphone so I had to use a distance sensor (which looks like a speaker) as a representative. The only things you need are the ones listed in the materials section. Good luck!


    1 year ago

    I am a total novice with the Arduino but the power to both the sound sensor and the pixels seems to be the VIN. I though that was input voltage?

    13 replies

    You are right. It should be connected to "5V", and not Vin!

    Not necessarily. Both pins 5V and Vin can be used for output voltages. The main differences are that the Vin will output slightly less than 5V (due to diode), but potentially can output more current. Vin can probably output 1A whereas the 5V is limited to about half that.
    Either way the neopixel strip is way under powered. You're probably looking at 5A at full brightness (for 2m). I always connect Neopixels to an external power supply to guarantee the colours work - After a few metres, I find the blue pixels tend to lose power and appear dim.
    Nice project though :)

    Just NO! That's an absolutely no-go to connect the LEDs to Vin.

    As it says "Voltage INPUT", not output.

    Vin is for 6-20V. So, if someone builds that and connects the Arduino to e.g. 12V (as common and described in the specs) this will fry all other electronics connected to this Vin which have a max of 5V.

    Just don't do such things.

    Do you have a reccomendation on how it should be done then? I want to do this project but I want to make sure I do it right.

    As mentioned above, you can connect to Vin, but you shouldn't (in most circumstances). 5V can be used if you are running a few LEDs - maybe up to 10. If you are using any more than this, you need an external 5V power supply - I use a 120W supply per 5 m of strip (or 300 LEDs).

    If you don't have enough current (or the voltage drops at one end) then the colours start to go funny. I've noticed that blue starts to fade first.

    I don't know who's right lol but my cloud is still working

    Yeah. I need more amps for sure. I was just on a limited budget and tried to use as many products that I already had laying around the house. The cloud doesn't always flash the same colors but I just say it looks more realistic haha

    I'm a novice too, so I could have wired it incorrectly but hey, it gets the job done lol

    Hmm, no offense meant, but if you are truly wiring into a voltage IN pin I do not see how the voltage from the wall plug could travel to the sound and lights. VIN is for voltage IN (as far as I know) and that pin is for supplemental or other sources of power and hooking it up this way would produce no voltage for the sound/lights. So are you absolutely certain it is hooked up this way?

    I'm 100% sure that is how it's wired. Before I started my project, I did a little crash course on programming neopixels with my creative technologies professor and when we had the Neopixels connected to the Arduino using the 5V, the first led would stay on as green. So my professor switched it from 5V to Vin and the constant little green light turned off and the strand still lit up according to the code. I know it doesn't make any sense, but I promise that this is how I did it.

    I do not doubt you at all Alison thank you for responding :)

    However, it's still not "right", something is off. Either my understanding of VIN (and Arduino's definition and explanation) or we are just missing something. My only worry now is if that is "safe". It may be working for you, but it might not be "safe".

    If It were me, I would go to the arduino reddit page and post this and see what those experts say, just to be on the safe side. I only suggest this because you self admitted you are also a novice.

    That's a really good idea. I'm gonna go do that