//you can see the blue LED lights in different intensity // maximum pwm value 255 int green =PF_3 ; int blue =PF_2 ; int red =PF_1 ; int i,j; char data,a; char data_check; char rgb[36]; int r_value=0,r_read=0,g_value=0,g_read=0,b_value=0,b_read=0,r_led=0,g_led=0,b_led=0; void setup() { /* int PF_1 red; int PF_2 blue;*/ Serial.begin(9600); // msp430g2231 must use 4800 pinMode(PF_1, OUTPUT); pinMode(PF_2, OUTPUT); pinMode(PF_3, OUTPUT); Serial.println("RGB"); analogWrite(red ,0); analogWrite(green,0 ); analogWrite(blue ,0); Serial.println("RGB"); } void loop() { /* analogWrite(red ,50); analogWrite(green,75 ); analogWrite(blue ,225); */ if (Serial.available() > 0) { data = Serial.read(); if(data=='C') { for(i=0;i<34;i++) { rgb[i]=data; while(!Serial.available()) ; data = Serial.read(); } rgb[i]='/0'; } for(i=0;i<34;i++) { data_check=rgb[i]; if(data_check=='R') { for(j=0;rgb[i+2]!=',';j++) { r_read=((rgb[i+2])-48); if(j==0) { r_value=(r_value+(r_read*100)); } if(j==1) { r_value=(r_value+(r_read*10)); } if(j==2) { r_value=(r_value+(r_read*1)); } i++; } if(j==1) { r_value=((r_value)/100); } if(j==2) { r_value=((r_value)/10); } Serial.print(r_value); Serial.print(','); } if(data_check=='G') { for(j=0;rgb[i+2]!=',';j++) { g_read=((rgb[i+2])-48); if(j==0) { g_value=(g_value+(g_read*100)); } if(j==1) { g_value=(g_value+(g_read*10)); } if(j==2) { g_value=(g_value+(g_read*1)); } i++; } if(j==1) { g_value=((g_value)/100); } if(j==2) { g_value=((g_value)/10); } Serial.print(g_value); Serial.print(','); } if(data_check=='B') { for(j=0;rgb[i+2]!=']';j++) { b_read=((rgb[i+2])-48); if(j==0) { b_value=(b_value+(b_read*100)); } if(j==1) { b_value=(b_value+(b_read*10)); } if(j==2) { b_value=(b_value+(b_read*1)); } i++; } if(j==1) { b_value=((b_value)/100); } if(j==2) { b_value=((b_value)/10); } Serial.println(b_value); } } r_led=r_value; g_led=g_value; b_led=b_value; r_value=0; g_value=0; b_value=0; } analogWrite(red ,r_led); analogWrite(green,g_led); analogWrite(blue ,b_led); }