Maybe you can have a try.
#include "RGBdriver.h"
#define CLK 2//pins definitions for the driver
#define DIO 3
#include <SoftwareSerial.h>
RGBdriver Driver(CLK,DIO);
void setup()
{
Serial.begin(9600);
}
char dtaSocket[10]; //the max leng of command
int dtaLen = 0; //actual leng of command
unsigned char getDta = 0;
unsigned char judge(char *str1, char *str2, int n) //discriminant function
{
for(int i = 0; i<n; i++)
{
if(str1[i] != str2[i])
{
return 0;
}
}
return 1;
}
void loop()
{
if(Serial.available())
{
dtaSocket[dtaLen++] = Serial.read();
if(dtaSocket[dtaLen-1]=='\n')
{
getDta = 1;
}
if(dtaLen > 8)
{
getDta = 0;
dtaLen = 0;
}
}
if(getDta)
{
getDta = 0;
if(judge(dtaSocket, "Blue", 1) && dtaLen == 5) //turn Blue led on when you input "Blue"
{
Serial.println("Blue:\t");
Driver.begin(); // begin
Driver.SetColor(0, 0, 255);//Blue. first node data
Driver.end();
delay(500);
}
else if(judge(dtaSocket, "Red", 1) && dtaLen == 4) //turn Red led off when you input "Red"
{
Serial.println("Red:\t");
Driver.begin(); // begin
Driver.SetColor(255, 0, 0); //Red. first node data
Driver.end();
delay(500);
}
else if(judge(dtaSocket, "Green", 1) && dtaLen == 6) //turn Green led off when you input "Green"
{
Serial.println("Green:\t");
Driver.begin(); // begin
Driver.SetColor(0, 255, 0); //Green. first node data
Driver.end();
delay(500);
}
else
{
Serial.println("unavailable command");//others command are unavailable
}
dtaLen = 0;
}
}