Arduino: introducir valores RGB con entrada única

Un LED RGB pode acenderse controlando as tres compoñentes (vermello (R), verde(G) e azul (B)) de forma independente. O valor que toma cada unha das compoñentes pode asignarse dentro do programa ou introducirse a través do monitor serie. O máis habitual é introducir os valores RGB un a un empregando a función Serial.read(). Neste post veremos como facelo nunha única entrada.

Unha vez definidas as variables, declarados os pines e iniciado o monitor serie, comezamos co bloque loop().

A función Serial.readStringUntil() permite almacenar nun string o texto introducido co teclado até que se pulsa enter. Esta cadea debe ser fragmentada en tres cadeas máis pequenas, unha para cada un dos valores RGB. Para iso, debo localizar a posición dos delimitadores que uso, que neste caso son comas (‘,’). Para este propósito emprego a función string.indexOf().

A continuación utilizo a función string.substring() para extraer a porción de cadea que corresponde ao R, ao G e ao B e almaceno esas subcadeas.

Para poder operar cos valores RGB obtidos, debo facer unha conversión de string a int que realizo con string.toInt(). Xa só queda chamar a función cor cos parámetros R, G, B e observar como o LED se acende.