Solucionado, puedo almacenarlo en una variable con un String Constructor.
String DatosHEX=String(Results.value,HEX);
jose:
Supongo que tendras un motivo por el que tiene que ser hexadecimal,pero el valor recibido es el mismo ,sea en hexadecimal,decimal,octal o binario ,lo unico que cambia es la manera de representarlo.en cuanto a lo de los codigos ,no se si estamos hablando de lo mismo o que....tienes un mando ,cuando pulsas un boton
recibes un codigo ,pero en ese codigo no se de donde sacas que tu direccion es 20DF y el codigo 40BF ,es todo un solo numero y lo vas a recibir cada vez que pulses esa tecla,asi como cada tecla tendra su propio codigo diferente ,otra cosa es que tu controles el emisor ,codifiques un codigo y lo envies al receptor,pero si estas usando un mando a distancia esos codigos son siempre los mismos y ya estan predefinidos.Puedes usar la notacion 0x para indicar un hexadecimal ,pero internamente arduino solo entiende binarios y por defecto la funcion Serial.println() representa los valores en decimal:unsigned long codigo = 0x20DF40BF;
void setup(){
Serial.begin(9600);
Serial.println(codigo);
Serial.println(codigo,HEX);
}
void loop(){
}
A ver, te repito, yo toco ahora 3 botones aleatorios del mando, y lo dejo en decimal, obtengo:
551534655
551502015
551518335
Lo cual es en primer lugar "pesado" de separar y en segundo, según el mando, lioso (¿cuántos dígitos son la dirección? ¿cómo parto un decimal?).
Si yo trabajo en hexadecimal obtengo:
20dfc03f
20df40bf
20df807f
Esto me agiliza la vida bastante, en primer lugar hay chorrocientos comandos para partir strings sin pensar demasiado, en segundo lugar no hay lío posible, los 4 primeros dígitos van a ser siempre la dirección y los siguientes 4 la instrucción.
Espero haber sido suficientemente claro en el porque, en cualquier caso muchas gracias por la ayuda.
Doy esto por solucionado.