#define BUF_LEN 64 int red_pin= 17; int green_pin = 19; int blue_pin = 18; char read_buffer[BUF_LEN]; int n_buffer = 0; void setup() { pinMode(red_pin, OUTPUT); pinMode(green_pin, OUTPUT); pinMode(blue_pin, OUTPUT); SerialUSB.begin(115200); } void parse_buffer() { int red_value = 0; int green_value = 0; int blue_value = 0; SerialUSB.println("buffer:"); SerialUSB.println(read_buffer); if (sscanf(read_buffer, "[%d,%d,%d]", &red_value, &green_value, &blue_value) == 3) { RGB_color(red_value, green_value, blue_value); } } void loop() { if (SerialUSB.available()) { char c = SerialUSB.read(); if (c == '\n') { read_buffer[n_buffer] = '\0'; // null terminator parse_buffer(); n_buffer = 0; } else { read_buffer[n_buffer] = c; n_buffer++; } } } void RGB_color(int red_value, int green_value, int blue_value) { analogWrite(red_pin, red_value); analogWrite(green_pin, green_value); analogWrite(blue_pin, blue_value); }