Rayan kiwan
Published © CERN-OHL

arduino-bluetooth-rgb-led-control-using-android-app

Hello all, in this project I will control RGB led using Bluetooth.

IntermediateFull instructions provided1,682
arduino-bluetooth-rgb-led-control-using-android-app

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
HC-05 Bluetooth Module
HC-05 Bluetooth Module
×1
RGB Diffused Common Cathode
RGB Diffused Common Cathode
×1
Resistor 220 ohm
Resistor 220 ohm
×3
Jumper wires (generic)
Jumper wires (generic)
×5

Story

Read more

Schematics

Bluetooth Control RGB led

Code

BT control RGB led

Arduino
#include <SoftwareSerial.h>
#include <Wire.h>
SoftwareSerial mySerial(0,1); // RX and TX pins
int PIN_RED = 9;
int PIN_GREEN = 10;
int PIN_BLUE = 11;
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()));
}

Credits

Rayan kiwan

Rayan kiwan

36 projects • 1 follower

Comments