A simple implementation to send the colors from a Windows-PC-Screen to a LED-Strip over Arduino.
Maybe some people would call it "Ambilight" ;)
The Arduino sketch is written in standard C and the Windows application in C#.
11.03.2016 - V184.108.40.206
- Changed minimum limit of field "MINIMUM_REFRESH_RATE_MS" from 20 to 0 for better refresh rate on older devices
- Fixed: Wrong disposing of Direct3D device when energy saving => no color update after wake up
- Changed some minor visual studio project settings
02.03.2016 - V220.127.116.11
- Init Release
Arduino or compatible device
Optional AC adapter if using too many LEDs. USB provides 500mA (USB2.0) or 1000mA (USB3.0) and each LED (in example "WS2812B") can pull up to 60mA per LED on full brightness. Note that the microcontroller needs about 50mA by itself.
Windows PC with DirectX9 and hardware accelerated graphics
FastLED compatible LED-Stripe (See: https://github.com/FastLED/FastLED/wiki/Chipset-reference)
How to use:
!!! If you just want to use Bambilight without compiling the Windows application by yourself, you only need the contents of the "Binary" folder and the bambilight.ino Arduino sketch. !!!
Customize the .ino sketch (NUM_LEDS, LED_DATA_PIN, LED_TYPE) and flash it to your arduino device.
Connect the arranged LED-Stripe to your arduino device and the arduino to your PC.
Start the Bambilight tool and configure your screen setup (maybe overlay mode helps).
Some faster screen capturing. Depending on system the capturing takes about 20-40ms
Serial speed calculations for max led setting
Sending brightness value to arduino instead of fix value
Dynamic control limit for min and max values
Dynamic arrow positions in overlay
- Wrong start number in overlay if having only 1 column and activated "Mirror X-Axis"
- Using SlimDX Library in Version 18.104.22.168 (Copyright (c) 2007-2011 SlimDX Group)
- Using FastLED Library in Version 3.1 (Copyright (c) 2013 FastLED)