Infrared and Bluetooth controllable device for 4 PWM channels
Recently I found a IR remote controllable 5 m RGB LED strip in our local hardware store. Not the best quality and obviously from China but relatively cheap so I bought one. The remote is called Wireless RGB LED Controller and has 24 buttons. It features 16 color settings with brightness control, On/Off, and four predefined color patterns. Quite nice but it has some annoying features.
First, which is of course not the fault of the strip nor the controller, white as a mixture from RGB Leds is absolutely nothing for ambient lightning. Maybe a matter of taste, but I simply don't like it. But the most annoying thing is, that its flickering. OK, when changing color this can happen due to the limited color depth, that's fine and expected. But this even happens with a steady color, some more some less visible. It's not like fast on and offs but you see and feel that it not smooth. I have no idea where this is coming from and all I can think of is that the controller has a very low PWM frequency but that's just a guess.
All in all it seemed to be the perfect time to build such a device by our self. It should have 4 channels for one RGB LED strip and one additional strip with warm-white LEDs and of course an IR receiver module. In addition, it should be able to attach an Bluetooth module to be able to control it with an app (see here). I thought it cannot be that hard to write some code to read out the signal from an IR remote control. Well, that was wrong but luckily other guys did before which save me a lot of time (I'll give some useful links below).
Here you can find the code, the simple layout and some images of the finished project:
The key features are:
The actual IR remote controller is called PRC-08 for only 1 EUR. Later I found out it uses the RECS-80 protocol. Good information about how IR remote control works and the code I used:
I'm using two common anode LED strips a 3 m, one RGB (180 LEDs, max. 3.6 A) and one with warm-white (360 LEDs, max. 1.8 A). My power supply is way too underdesigned (only about 4 A max) but I never run all channels on the edge (full white - white). All this fits well on top of a wall cupboard in my living room. I have to say that's really cool sitting on the couch and adjusting the ambient light!
On the 6 pin header on the controller board a bluetooth module can be easily attached. I took the Bluetooth Mate Silver from Sparkfun which uses the RN-42 Bluetooth module. The module uses serial communication (UART) to transmit data to the microcontroller. I wrote a simple app for my android cell phone which connects to this module. The following video shows its basic functionality.
To get it working the firmware of the microcontroller needed to be adjusted and can be found here. Now I can control the LEDs with an ir remote control and with my mobile phone. Impressive - but not a big gain ... anyway, it was the project that counts. If you are interested in the android code, I also put it in the download section. Since I was totally new in the app writing business it took me quite some time.