BLUETOOTH RGB LED COLOR PICKER

QUICK PROJECT DESCRIPTION
  • PROJECT OBJECTIVE: Remote control of LED color with an app through Bluetooth on an Android device.
  • HARDWARE REQUIREMENTS: Arduino-compatible board, HC-06 module, RGB LED module, 8 male to male jumper cables, mini-breadboard.
  • SOFTWARE REQUIREMENTS: Arduino environment (or online editor). Download the remotexy libraries here. Unzip and paste the folder in the Arduino libraries folder. It’s in the same location as your default sketches. You can look it up under File/Preferences Sketchbook location.
  • KNOW-HOW REQUIREMENTS: Basic Arduino environment knowledge (learn more here).
INSTRUCTIONS
  1. Connect everything as shown in the diagram.
  2. Install the RemoteXY library and the app on your Android device.
  3. Compile and upload the sketch to your board board by clicking on the triangle on the upper left..
  4. Activate Bluetooth on your device and connect to HC-06. Use the pin 1234 to authorize.
  5. Launch the app and connect again to HC-06.
PIN OUT DIAGRAM
1
2
3
4
5
6
7
8
1

5 VOLTS

2

GROUND

3

PIN 3 (TX) TO RX

4

PIN 2 (RX) TO TX

5

GROUND

6

PIN9 PWM

7

PIN10 PWM

8

PIN11 PWM

CODE

/* Reviewed by Dr. Mangus from MangoLabs
   -- RGB Led tst -- 

   To compile this code using RemoteXY library 2.3.3 or later version  
   download by link http://remotexy.com/en/library/ 
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                    
     - for ANDROID 4.1.1 or later version; 
     - for iOS 1.2.1 or later version; 

   This source code is free software; you can redistribute it and/or 
   modify it under the terms of the GNU Lesser General Public 
   License as published by the Free Software Foundation; either 
   version 2.1 of the License, or (at your option) any later version.     
*/ 

////////////////////////////////////////////// 
//        RemoteXY include library          // 
////////////////////////////////////////////// 

// RemoteXY select connection mode and include library  
#define REMOTEXY_MODE__SOFTSERIAL
#include <SoftwareSerial.h> 

#include <RemoteXY.h> 

// RemoteXY connection settings  
#define REMOTEXY_SERIAL_RX 2 
#define REMOTEXY_SERIAL_TX 3 
#define REMOTEXY_SERIAL_SPEED 9600 

// RemoteXY configurate   
#pragma pack(push, 1) 
uint8_t RemoteXY_CONF[] = 
  { 255,4,0,0,0,28,0,8,25,0,
  2,0,39,6,22,11,2,26,31,31,
  79,78,0,79,70,70,0,6,0,28,
  21,41,41,2,26 }; 

// this structure defines all the variables of your control interface  
struct { 

    // input variable
  uint8_t switch_1; // =1 if switch ON and =0 if OFF 
  uint8_t rgb_1_r; // =0..255 Red color value 
  uint8_t rgb_1_g; // =0..255 Green color value 
  uint8_t rgb_1_b; // =0..255 Blue color value 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY; 
#pragma pack(pop) 

///////////////////////////////////////////// 
//           END RemoteXY include          // 
///////////////////////////////////////////// 

#define PIN_SWITCH_1 13

void setup()  
{ 
  RemoteXY_Init ();  

  pinMode (PIN_SWITCH_1, OUTPUT);

  // TODO you setup code 

} 

void loop()  
{  
  RemoteXY_Handler (); 

  digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
    analogWrite(9, RemoteXY.rgb_1_r);
    analogWrite(10, RemoteXY.rgb_1_g);
    analogWrite(11, RemoteXY.rgb_1_b);
  // TODO you loop code 
  // use the RemoteXY structure for data transfer 

}