In this Instructable I will demonstrate how to create a multicolored lamp controlled via Bluetooth using an Arduino, HC-05 Bluetooth module and Android device or Teraterm for computers with Bluetooth. The code for the lamp currently enables the user to choose off, yellow, red, green, blue, and the ability to fade red, green, or blue.

Bill of materials

1.) Arduino and Power Source

2.) Breadboard

3.) HC-05 Buy it here URL: http://www.amazon.com/gp/product/B00JP05S6C/ref=oh_aui_detailpage_o05_s00?ie=UTF8&psc=1

4.) 2X 330Ω

5.) 1X 100Ω

6.) 24X Jumper Wires*

7.) 8X Common Cathode RGB LED's**

8.) 1X Yellow LED***

9.) Android device with Arduino Bluetooth Controller or a computer with Bluetooth and Teraterm.

10.) Arduino Bluetooth Controller if that link doesn't work (my last 'ible taught me not to trust the embed tool) use this URL: https://play.google.com/store/apps/details?id=eu.j...

11.) Teraterm (Windows) and if this link doesn't work, URL: http://download.cnet.com/Tera-Term/3000-20432_4-75...

12.) Teraterm (Mac OS) URL: http://download.cnet.com/1772-20_4-0.html?query=T...

*Depends on the amount of RGB's you use.

**You can use as few or as many as you like 1-8 can use the same resistor.

***Can be any color.


I assume no responsibility for YOUR actions if this is illegal where you live, don't do it, If you some how manage to hurt yourself replicating this experiment how manage to use a computer is beyond me. If you break your stuff replicating this, it's your fault.

Step 1: The Code

The reason i'm having you flash the code onto the Arduino first is because you have to have the Rx and Tx wires to and from the Bluetooth module disconnected while the code is applied to the Arduino. you can perform this step last,, just remember to disconnect the Rx and Tx wires. For those of you who can't get new libraries to work or always have that error code about a library not existing, this code doesn't include any libraries except for what's already in the Arduino program, so you just flash the code, connect the wires and it'll work.

I made this code basing it off of a motor control code I found on an Instructable by RuiSantos: https://www.instructables.com/id/Arduino-Control-DC...

And I also used the Fade example Library, I feel I did enough work on the code to call it my own, that's why only my name is on it feel free to edit it just give credit where credit is due.

Step 2: Wiring the Circuit

First, run a red wire from 3.3V to the Red line on the breadboard and connect the Blue line to ground, then Yellow to the Rx (pin 0) on the Arduino to the Tx pin on the Bluetooth module and Orange from the Tx (pin 1) to the Rx pin on the Bluetooth module, remember it must be Tx to Rx and Rx to Tx If not the data you try to send won't go through and it won't work other than the Yellow status light coming on.

Wiring guide:

Bluetooth module: Red - 3.3V

Black - Ground

Yellow - Tx (on module)

Orange - Rx (on module)


Pin 0 = Rx pin - Color: Yellow Connect to: Bluetooth module Tx pin

Pin 1 = Tx pin - Color: Orange Connect to: Bluetooth module Rx pin

Pin 8 = Yellow LED

Pin 9 = Red LED

Pin 10 = Green LED

Pin 11 = Blue LED

Step 3: Using Arduino Bluetooth Controller

1.) Obviously you need to download the app

2.) Turn on Bluetooth and search for "HC-05" then pair, the password will be "1234" unless you've changed it yourself.

3.) Then open the app and follow the pictures above for the rest.

Step 4: Using Teraterm

After enabling Bluetooth and making sure no other devices are paired:

1.) Click "Serial"

2.) In my case it's COM14 So I click on that.

3.) Click "OK"

4.) Click anywhere in the black void of the Teraterm window.

5.) At this point the led on the HC-05 should be blinking twice quickly then off for a moment to signal that it is paired, if blinking rapidly then it isn't paired.

Note: I don't remember having to put in the passkey when using my computer, so you may not have to.

Step 5: Sending the Commands

When I was writing this code it took me two hours to realize that you can't send words such as "yellow" only numbers 0-9 seem to work but I don't have much experience in programming so for now 0-9 will have to do.

Here's the list of commands.

0 - All: off

1 - Red: on

2 - Green: on

3 - Blue: on

4 - Yellow: on

5 - Red: Fade

6 - Green: Fade

7 - Blue: Fade

Sending "8" or any letters results in pausing the program for some reason.

Step 6: Get Creative!

I'm going to work on the RGB's mixing colors next, and I need to make/find a good diffuser (fancy word for lampshade) maybe even put RGB strips on the ceiling, let me know what your ideas are and I may include them in updates to this 'ible.

Thanks for the ideas... <br><br>and here's a tip... <br>When you read your 'serial', instead of using the basic 'serial.read()', use 'serial.parseint()'. Now you can enter numbers larger than 9. You can look up the details but it has to do with the ascii table and how your information actually interpreted over the serial interface.
<p>You just opened up a whole new world for me hahah I'll be sure to try that with the code.</p>

About This Instructable




Bio: If you have any questions about my Instructables just ask me Kaltol1994@gmail.com Twitter and Snapchat Kaltol1994
More by KalTol1994:Cigarette Socket to USB Conversion Vertical Stand for PS4 LED Worklights For Your 3D Printer 
Add instructable to: