Arduino Bluetooth RGB led control android app

Hello world! Today i made a Arduino Bluetooth RGB led control android app to control a RGB Led module with a Android Device. Contact me for the Open source code of the APP.
NOTE: If you bought a Common Anode LED connect it to 5v
I used a Common Cathode Led which needs to be connected to GND. The KY-019 Module from keyes.
Download the APP on google play! Ask me for the Open Source Code! Contact@arduinosensors.nl

Arduino Bluetooth RGB led control android app

Simple Instructions to change the APPs RGB Pallette.
When clicking the IMAGEbutton the RGB rgb pallette will change to a Square instead of a circle.
When holding the IMAGE button the RGB rgb pallette will change back to a circle.

Schematic:
Arduino Bluetooth RGB led control android app
Just wire it up like the Schematic Upload the code and it should work! you will have yourself a nice device working with my Arduino Bluetooth RGB led control android app

Parts list:
Arduino uno, I used the RobotDyn uno.
HC-06 Bluetooth module
KY-016 Or any RGB Led
Jumper wire set MM/FF/MF.
Android app & Phone.

Code:

#include <SoftwareSerial.h>
#include <Wire.h>
SoftwareSerial mySerial(10,11); //Define PIN11 & PIN12 as RX and TX pins

int PIN_RED = 3;
int PIN_GREEN = 5;
int PIN_BLUE = 6;

String RGB = ""; 
String RGB_Previous = "255.255.255"; 
String ON = "ON"; 
String OFF = "OFF"; 
boolean RGB_Completed = false;
 
void setup() {
  pinMode (PIN_RED, OUTPUT);
  pinMode (PIN_GREEN, OUTPUT);
  pinMode (PIN_BLUE, OUTPUT);
  Serial.begin(9600); 
  mySerial.begin(9600);
  RGB.reserve(30);
}
 
void loop() {

  while(mySerial.available()){
    char ReadChar = (char)mySerial.read();
 
    if(ReadChar == ')'){
      RGB_Completed = true;
    }else{
       RGB += ReadChar;
    }
  }
  
  if(RGB_Completed){
 
      Serial.print("RGB:");
      Serial.print(RGB);
      Serial.print("     PreRGB:");
      Serial.println(RGB_Previous);
      
      if(RGB==ON){
          RGB = RGB_Previous; 
          Light_RGB_LED();
      }else if(RGB==OFF){
          RGB = "0.0.0"; 
          Light_RGB_LED();
      }else{
          Light_RGB_LED();   
          RGB_Previous = RGB;     
      }
      RGB = "";
      RGB_Completed = false;      
  } 
} 
 
void Light_RGB_LED(){
 
  int SP1 = RGB.indexOf(' ');
  int SP2 = RGB.indexOf(' ', SP1+1);
  int SP3 = RGB.indexOf(' ', SP2+1);
  String R = RGB.substring(0, SP1);
  String G = RGB.substring(SP1+1, SP2);
  String B = RGB.substring(SP2+1, SP3);

  Serial.print("R=");
  Serial.println( constrain(R.toInt(),0,255));
  Serial.print("G=");
  Serial.println(constrain(G.toInt(),0,255));
  Serial.print("B=");
  Serial.println( constrain(B.toInt(),0,255));
 
  analogWrite(PIN_RED,  (R.toInt()));//comment if colors are inverted
  analogWrite(PIN_GREEN, (G.toInt()));//and uncomment part below.
  analogWrite(PIN_BLUE,  (B.toInt()));

//  analogWrite(PIN_RED,  (255-R.toInt()));//uncomment if colors are inverted
//  analogWrite(PIN_GREEN, (255-G.toInt()));//and comment above part.
//  analogWrite(PIN_BLUE,  (255-B.toInt()));
  
}
Danny van den Brande

http://www.arduinosensors.nl

Programmer, Game Designer, 3D Designer, Web Designer, Graphic Designer. Jup this website looks crappy.. :) But enjoy the projects! Everything you need is here.

Leave a Reply

Your email address will not be published. Required fields are marked *