comunicación I2C

hola muy buenas tardes amigos; soy nuevo en este foro y espero que me ayuden con su gran experiencia;

tengo una comunicación mediante I2C; donde tengo un arduino mega como maestro y un arduino uno como esclavo.

en el esclavo estoy censando una variable analoga, mediante un potenciometro; y dicho valor lo envio por la libreria, con una letra que nos indica quien indica que si el valor es igual o mayor a 50, enviar el valor con la letra.

codigo esclavo::::

#include <Wire.h>

int P=A0;
int Valor=0;
int dato[2];
int num=0;
int d;
char T;

void setup()
{
pinMode(P,INPUT );
Wire.begin(0);
Wire.onRequest(evento);
Serial.begin(9600);
}

void loop()
{
Valor = map(analogRead(P),0,1023,0,100);
dato[0]=(Valor/100);
num=(Valor%100);
dato[1]=(num/10);
dato[2]=(num%10);

if(Valor<=49)
{
T=‘a’;
Serial.write(T);
}

if(Valor>49)
{
T=‘A’;
Serial.write(T);
}
Serial.print(dato[0]);
Serial.print(dato[1]);
Serial.print(dato[2]);
Serial.println();
}

void evento()
{

for(d=0; d<3;d++)
{
Wire.print(dato[d]);
}

Wire.print(T);

}

esto es lo que se envia;

A060;

luego en el maestro recibo la informacion y la iprimo para corroborar.

este es el codigo maestro…

#include <Wire.h>
int C;

void setup()
{
Wire.begin();
Serial.begin(9600);
}

void loop()
{

Wire.requestFrom(0,4);
while(Wire.available())
{
C= Wire.read();

}

Serial.write(C);
Serial.println();

}

y si me emprime el valor del esclavo hasta hay voy bien; el problema es que eso es un string, y no se como convertirla en un numero, que permita operar.

Si es un valor que va de cero a 100, puedes enviarlo/recibirlo con un solo byte. Si es el resultado de analogRead, serían dos bytes o imprimiendo su valor con print.