Conversione string to byte

Grazie lesto per la pazienza e l'impegno che stai dimostrando :fearful:

Ho provato ma non funziona.
Qualsiasi valore che entro mi ritorna 10111111 cioè 191 cioè BF che nella tabella esadecimale corrispondono
La conversione sembra funzionare ma risulta indifferente al dato che invio

byte b1;
byte b2;
byte b3;

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

void loop()
{

  String b = "0xB0";
  String c = "0x02";
  String d = "0x7F";
  
  while (Serial.available()>0)
  {  
    
    Serial.read();
    
    b1=(strConv(b));
    b2=(strConv(c));    
    b3=(strConv(d));

    Serial.println(b3,BIN);
    Serial.println(b3,DEC);    
    Serial.println(b3,HEX);

//    Midi_Send(176,01,127);
  }
}
  
void Midi_Send(byte cmd, byte data1, byte data2) 
{
  Serial.write(cmd);
  Serial.write(data1);
  Serial.write(data2);
}


byte strConv(String str)
{
char stringa[5];
str.toCharArray(stringa,5);

Serial.println(stringa[0]);
Serial.println(stringa[1]);
Serial.println(stringa[2]);
Serial.println(stringa[3]);
Serial.println(stringa[4]);
Serial.println(stringa[5]);

byte a =0;
if (stringa[3] >= '0' && stringa[3] <= '9'){ //estraggo 'B'
   a = stringa[3] - '0';
}else{
   a = stringa[3] - 'A';
}
a = a << 4; //muovo il valore di 4 bit a sinistra
if (stringa[4] >= '0' && stringa[4] <= '9'){ //estraggo '1'
   a = stringa[4] - '0';
}else{
   a = stringa[4] - 'A';
}
return a;
}