Make Your Own TV Ambilight Using Arduino

155,876

593

41

Introduction: Make Your Own TV Ambilight Using Arduino

This is a very easy project.

I won't go into too much detail how each part works, because I have written some information on my blog.

https://oscarliang.com/diy-tv-ambilight-arduino-processing-ozilight-1/

https://oscarliang.com/arduino-ambilight-tv-processing-ozilight-2/

But you should be able to make it work with the information given on this instructable.


Here is the result

Step 1: Prepare RGB LED Strip

The RGB LEDs came as a strip, but I want them to be separated further, so I soldered wires in between. I also use hot glue to strengthen the soldering points.

you could buy led strips that have long cables, or you can just use this out of the box, it's up to you.

I am using 25 LEDs.

Step 2: Mount LED Strip on TV

My example is a bad one. you should be more accurate about the LED positions. and the should be facing outward with a angle, so the Lights can be seen brighter from the front.

The sketch is how the LEDs should be mounted on the TV.

Step 3: The Connection (Arduino, Power)

The good thing about these LED strip is, it only requires one data connection from the Arduino.

You have to use external power source. I am using a 5V 2A power adapter for this.

Note: GND of the power source should be connected to the Arduino GND.

Step 4: Finally the Source Code

Just copy these source code and you are good to go

I use Processing on the computer

2 People Made This Project!

Recommendations

  • Fix It! Contest

    Fix It! Contest
  • Furniture Contest 2018

    Furniture Contest 2018
  • Metalworking Contest

    Metalworking Contest

41 Discussions

Where did you get the code from? BC when I add it to the arduino, nothing happens. The last programm which was on the arduino just stops working

Can you show me exacly how to mount my led strip to arduino?

I had a lot of trouble getting the processing code to talk to the arduino until I checked the properties of the COM port and found that the speed was set to 9600. As soon as I changed it to 115200 it all started working..

Hope that helps someone :)

I have the same problem

0
None
AnonT

2 years ago

I know this post is a bit old but I'm trying to follow this and having some issues compiling the provided processing code.

When I try and compile the code (even bone stock) I get an error "Found one too many { characters without a } to match it."

I've been looking through the code and trying to figure out where the missing bracket goes but I'm not having any luck. Is anyone / everyone else having that same problem with the source code provided?

Can anyone help debug this and shed some light on where the elusive bracket needs to go?

I tried the code provided in the comments below and it seems to work until I activate the serial port to try it with my arduino. Then the window that should show the border color launches but ends up not responding.

The graphical representation works fine but the Neopixel stay off. Datapin is the right one. Seems like there is something wrong with the communication :(

I feel as though the program processing is not working properly. Does anyone have a matter that work? I would ask that we send this file. thank you

I use a macbook air. I have a problem that processing does not want to run a single LEDs. I always change the port between 0 and 3, and after 10 attempts, the LED lights light up but not always. What would cause this?

Hello!

I have one problem. The red color is green and purple is light blue. how to fix this?

1 reply

Just change this line:

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LED, PIN, NEO_GRB + NEO_KHZ800);

for:

Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LED, PIN, NEO_RGB + NEO_KHZ800);

Hi everybody,

thanks for good idea how to improve home entertainment. Everything works
well (for now only with 8pcs of 2812 for testing) I already ordered
strip with 150 pcs of these LEDs. As I know that to drive every LED
separatelly would take amount of PC capacity, I tried to change Arduino
code to send every incoming byte to 3 neighbouring LEDs. (in the
processing I would use just 50 rectangles) Is anybody able to check what
I have done wrong? I copied here only the part which I changed against original code. (With this program I can not light up more than 50
LEDs. Is the limit the line with “#define NUM_LED 50″ ? When I change it
to 150, Arduino expect bytes for 150 LEDs and receive only 50. Thanks.

------------------------------------------------------------------------------------------------

for (int i = 0; i < (3 * NUM_LED); i++) {
int led_index = i * 3 + 2;
strip.setPixelColor(i, strip.Color(led_color[led_index], led_color[led_index + 1], led_color[led_index + 2]));
i++;
strip.setPixelColor(i, strip.Color(led_color[led_index], led_color[led_index + 1], led_color[led_index + 2]));
i++;
strip.setPixelColor(i, strip.Color(led_color[led_index], led_color[led_index + 1], led_color[led_index + 2]));

}

Hi i am struggling a little with processing.

how do specify which monitor to measure ?

and how to specify what com port to use?

thanks.

Hi i am struggling a little with processing.

how do specify which monitor to measure ?

and how to specify what com port to use?

thanks.

i am lost - it loads without error, if I look at the serial monitor I get 'ozy', but when I launch Processing, it just sits there with a 'blank' screen.

I guess it might be because I am on a Mac.

I had this problem too, check your java version etc..

On windows I used the 32bits version of processing to get it works

Brilliant suggestion!

It wasn't Java, but was some java libraries inside Processing. Copied the ones from Arduino to Processing and it worked first time!

Thanks for the code and your hint!

OK - that makes sense. I downgraded to Arduino 1.0.6 for another problem which was caused by a timing issue in the compiler.

Thanks Seb, I will investigate further.

Tanks for your helpful project i realised ambilight whit 120 led and some modifications and is work perfectly tnx again