arduino hex rgb

Arduino: comportamiento extraño al convertir HEX en RGB



(2)

Cuando ejecuté su código todavía no estaba recogiendo el valor de rojo. Sin embargo, usando el mismo código de MAC

long number = (long) strtol( &hexstring[1], NULL, 16 );

a

long number = (long) strtol( &hexstring[0], NULL, 16 );

Espero que esto ayude a alguien a luchar con los valores RGB y HEX

Intento convertir un código de color HEX en RGB, pero cuando ejecuto el código en Arduino, no capta el ROJO.

¿Estoy haciendo algo mal?

En un compilador C ++ funciona bien.

void setup() { Serial.begin(115200); String hexstring = "B787B7"; int number = (int) strtol( &hexstring[1], NULL, 16); int r = number >> 16; int g = number >> 8 & 0xFF; int b = number & 0xFF; Serial.print("red is "); Serial.println(r); Serial.print("green is "); Serial.println(g); Serial.print("blue is "); Serial.println(b); } void loop() { }


Su number debe ser de tipo long ya que tipo int está codificado en 16 bits y no puede tomar un valor superior a 32.767.

void setup() { Serial.begin(115200); String hexstring = "B787B7"; long number = (long) strtol( &hexstring[1], NULL, 16); int r = number >> 16; int g = number >> 8 & 0xFF; int b = number & 0xFF; Serial.print("red is "); Serial.println(r); Serial.print("green is "); Serial.println(g); Serial.print("blue is "); Serial.println(b); } void loop() { }