IR Remote Controlled Color Changing Cloud (Arduino)





This is a project I created for a Digital Art and Installations class.   The class covered basics of several types of programming, and our projects were meant to be an interactive cross between art and technology.  This was a fun and easy project with really impressive results (if I do say so myself) .  The same technology could be applied to many different types of types of projects.  The technology is very easily altered as well, for example, I was considering using a distance sensor or a light sensor.  I had everything on hand, so it cost nothing. This is my first instructable :] Sorry the photos don't really do it justice! Check out the video to see it in action:

    -Light weight, transparent container. example
    -Mesh Spackle tape. example 
    -Pollyfill stuffing
    -Fishing line or thread to hang
    -LEDs, Wires, Resistors, Infrared sensor and Remote
    -Battery or power source for arduino
    -Breadboard or blank circuit board, I used this one from Radio Shack.

    -Hot Glue
    -Soldering iron (optional)
    -Wire cutter, strippers

Step 1: Circuit and Code

Install the IR remote library

Set up the bread board with the attached schematic.
2 red leds to pin 2,
4 yellow leds to pin 3,
1 green to pin 4,
1 blue to pin 5,
1 pink/purple to pin 6,
2 white to pin 7,
1 RGB flashing to pin 8 (I had to use a resistor to dim it)

The reason I used multiple leds in parallel was so that the light would be dimmer from each individual one and be more defused

Connect the left leg on the IR sensor to 11, middle to ground, and right to 5 volts

Use the IRrecv Demo included with the examples to "configure" your remote. To do this run the sketch and open the serial monitor. Press buttons on the remote and note what numbers apear.

Open the attached IR Rainbow code and scroll down to each case statement   Change the number after the word case to match the button you want to use. 

My code has 
sun (white and yellow)
rain (blue and white)
lightning (blue and purple with flashing white)
??? (RGB flashing led)
and also on/off for each individual color.

Step 2: The Housing

I didnt take pictures while building but it was very easy.

Take the plastic container; something light weight, and clear. Mine was from spinach. Like this one.
Attach fishing line or thread to the corners of main part of the container, not to the lid. Secure them in the middle so that it hangs evenly. 

With the lid off, hang the container at a comfortable height to work on it.  Attach the mesh tape in arches to help disguise the squareness of the box.  To do this, cut lengths between about 6 inches and a foot, hot glue down one end, and then the other making sure the tape is arching away from the container.  Creating an X with the arches helps to give more support. (in the picture my cloud was starting to look a bit square-ish from being squished while transporting it. But before it was much puffier looking)

Next, hot glue puffs of poly fill around the whole container. 

Next, Poke wholes in the lid of the box, and use twist ties, wire scraps or cable ties to secure the breadboard or circuit board and arduino to the lid of the container.  If you used a battery secure that down as well, if you are using a power cord, poke a whole in the top of the container in the middle and feed it through.  

Flip the lid over and cover it and create puffs on top the same way you did on the outside of the container.

Step 3: Hang and Enjoy!

Put the lid on, and enjoy the light show!
In the future, there are some changes I would like the make.
- Replace power cord with a battery
- Build my own circuit board to replace the arduino
- Sound effects? perhaps recorded, or for example a small shaker for rain, etc
- Add fading. For some reason, as soon as I added fading the lights flashed instead (even when using a ~ pin). I would have liked "sun" to be fading between yellow and white, same for blue and white with "rain." I would have also liked to fade between functions.

Questions, Comments, Feedback welcome :]
Have fun with it!

Instructables Design Competition

Finalist in the
Instructables Design Competition

Make It Glow

Second Prize in the
Make It Glow

Holiday Gifts Contest

Participated in the
Holiday Gifts Contest

UP! Contest

Participated in the
UP! Contest

3 People Made This Project!


  • Beauty Tips Contest

    Beauty Tips Contest
  • Colors of the Rainbow Contest

    Colors of the Rainbow Contest
  • Pets Challenge

    Pets Challenge

57 Discussions


3 years ago on Step 3

Wow, this is amazing! I really love how it looks!

Perhaps you can improve it with sound and light effects (like lightning in a cloud + thunderstorm sound).

1 reply

Nice 'ible :)

I only 've got a question... Could you change the pin number of your IR reciever?

I'm new in the big world of arduino ^^

sorry for my poor english.

Yea, was aware of this, but needed it to be as bright as possible because it was being displayed in a lit room.

The updated version has proper resistors


5 years ago on Introduction

Hi, this is simply amazing ! I am just wondering about the script, i would like to try recreate this but wiothout using a remote, possible using LDRs to contol when the lighting changes, I am a rooky at this kind of stuff and so was just looking for any advice?

Thank you in advance

1 reply

Reply 4 years ago on Introduction

Hi, Im sorry I missed this, Im sure it would be possable. I considered using them, but was afraid it wouldnt be reliable due to the light coming from the cloud itself.


6 years ago on Introduction

Also, when I use the IRrec demo, it gives me different numbers (like 4885BBD6 and 890). I assume this isn't supposed to happen.

3 replies

Also, most remotes will give one code when the button is pressed, then another to when the button is being held. Is that what is happening?


i really dig this awsome project,
NEC protocol (results.value):



6 years ago on Introduction

Well removing the second #include line allowed it to compile and upload correctly. I can tell the board is receiving signals from the remote and using a library from Adafruit it will decode the signals for each button I press but nothing is lighting up. The remote I'm using is based on NEC codes (

2 replies

Reply 6 years ago on Introduction

Im not sure what NEC is. I was using DEC if that helps? Sorry, I dont know that much about coding. Send me your code and Ill try to take a look at it.


@romwhite im using the same NEC protocol can test the receiving signal using this sketch, just press 2 or 3 button to togle the pin13 Led on your Arduino:


int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
irrecv.enableIRIn(); // Start the receiver

void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, DEC);
irrecv.resume(); // Receive the next value

case 50151615:
digitalWrite (13, HIGH);
//red off
case 50184255:
digitalWrite (13, LOW);


@dablondeemu this is great instructables for basic IR remote bro!good work


6 years ago on Introduction

just to let you know I did not forget this, code is almost finished ;-) The hardest part for me is building the cloud, though..

sorry for the new reply, couldn't answer your last comment..

1 reply