#include SoftwareSerial mySerial(2, 1); // RX, TX #define white 8 #define red 7 #define green 3 #define blue 0 unsigned int incomingData; unsigned int incomingData1; unsigned int incomingDataRAW; int whiteColorIntensity = 0; int previousIncomingData; void setup() { mySerial.begin(9600); pinMode(white, OUTPUT); pinMode(red, OUTPUT); pinMode(green, OUTPUT); pinMode(blue, OUTPUT); } void loop() { if (mySerial.available() >= 2 ) // receive number from bluetooth { incomingData = mySerial.read(); incomingData1 = mySerial.read(); incomingDataRAW = (incomingData1 * 256) + incomingData; if (incomingDataRAW > 4) { whiteColorIntensity = incomingDataRAW; incomingDataRAW = previousIncomingData; } } if (incomingDataRAW == 1) { previousIncomingData = incomingDataRAW; digitalWrite(red, HIGH); delay(500); digitalWrite(red, LOW); digitalWrite(green, HIGH); delay(500); digitalWrite(green, LOW); digitalWrite(blue, HIGH); delay(500); digitalWrite(blue, LOW); digitalWrite(white, HIGH); delay(500); digitalWrite(white, LOW); delay(1000); } else if (incomingDataRAW == 2) { previousIncomingData = incomingDataRAW; digitalWrite(red, HIGH); delay(100); digitalWrite(red, LOW); digitalWrite(green, HIGH); delay(100); digitalWrite(green, LOW); digitalWrite(blue, HIGH); delay(100); digitalWrite(blue, LOW); digitalWrite(white, HIGH); delay(100); digitalWrite(white, LOW); delay(10); } else if (incomingDataRAW == 3) { previousIncomingData = incomingDataRAW; analogWrite(white, whiteColorIntensity); } else if (incomingDataRAW == 0) { digitalWrite(red, LOW); digitalWrite(green, LOW); digitalWrite(blue, LOW); digitalWrite(white, LOW); } }