Ayuda con mi codigo

Tengo un gran problema con los datos que me devuelve el arduino
Estoy tratando de procesar datos de la conecion serial, pero lo que me devuelve el arduino no tiene sentido.

el parámetro que le paso es este: cocina-tre-id03-onn-74

el resultado esperado es este:

vpar[0] cocina
vpar[1] tre
vpar[2] id03
vpar[3] onn
vpar[4] 74

pero el que obtengo es este:

vpar[0] cocina
vpar[1]
vpar[2]
vpar[3]
vpar[4] id03onn

este es mi codigo

int p = 0;
String Parametro[19];
String vpar[5];

int leo = 0;


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

void loop()
{
  if (Serial.available() > 0) //si hay coneccion
  {
    // lee el byte entrante:
    leo = ((char)Serial.read());

    if (leo==-1)
    {
      //no hay datos en la coneccion
    }
    else
    {
      if (-1 != leo) 
      {
        if(p<19)
        {
          if(leo==46)
          {
            Parametro[p] = ".";
            p++;
          }
          if(leo==45)
          {
            Parametro[p] = "-";
            p++;
          }
          if(leo==48)
          {
            Parametro[p] = "0";
            p++;
          }
          if(leo==49)
          {
            Parametro[p] = "1";
            p++;
          }
          if(leo==50)
          {
            Parametro[p] = "2";
            p++;
          }
          if(leo==51)
          {
            Parametro[p] = "3";
            p++;
          }
          if(leo==52)
          {
            Parametro[p] = "4";
            p++;
          }
          if(leo==53)
          {
            Parametro[p] = "5";
            p++;
          }
          if(leo==54)
          {
            Parametro[p] = "6";
            p++;
          }
          if(leo==55)
          {
            Parametro[p] = "7";
            p++;
          }
          if(leo==56)
          {
            Parametro[p] = "8";
            p++;
          }
          if(leo==57)
          {
            Parametro[p] = "9";
            p++;
          }
          if(leo==97)
          {
            Parametro[p] = "A";
            p++;
          }
          if(leo==98)
          {
            Parametro[p] = "B";
            p++;
          }
          if(leo==99)
          {
            Parametro[p] = "C";
            p++;
          }
          if(leo==100)
          {
            Parametro[p] = "D";
            p++;
          }
          if(leo==101)
          {
            Parametro[p] = "E";
            p++;
          }
          if(leo==102)
          {
            Parametro[p] = "F";
            p++;
          }
          if(leo==103)
          {
            Parametro[p] = "G";
            p++;
          }
          if(leo==104)
          {
            Parametro[p] = "H";
            p++;
          }
          if(leo==105)
          {
            Parametro[p] = "I";
            p++;
          }
          if(leo==106)
          {
            Parametro[p] = "J";
            p++;
          }
          if(leo==107)
          {
            Parametro[p] = "K";
            p++;
          }
          if(leo==108)
          {
            Parametro[p] = "L";
            p++;
          }
          if(leo==109)
          {
            Parametro[p] = "M";
            p++;
          }
          if(leo==110)
          {
            Parametro[p] = "N";
            p++;
          }
          if(leo==111)
          {
            Parametro[p] = "O";
            p++;
          }
          if(leo==112)
          {
            Parametro[p] = "P";
            p++;
          }
          if(leo==113)
          {
            Parametro[p] = "Q";
            p++;
          }
          if(leo==114)
          {
            Parametro[p] = "R";
            p++;
          }
          if(leo==115)
          {
            Parametro[p] = "S";
            p++;
          }
          if(leo==116)
          {
            Parametro[p] = "T";
            p++;
          }
          if(leo==117)
          {
            Parametro[p] = "U";
            p++;
          }
          if(leo==118)
          {
            Parametro[p] = "V";
            p++;
          }
          if(leo==119)
          {
            Parametro[p] = "W";
            p++;
          }
          if(leo==120)
          {
            Parametro[p] = "X";
            p++;
          }
          if(leo==121)
          {
            Parametro[p] = "Y";
            p++;
          }
          if(leo==122)
          {
            Parametro[p] = "Z";
            p++;
          }
        }
        if(p==19)
        {    
          for(int l=0;l<19;l++)
          {
            Serial.println(Parametro[l]);
          }
          int h=0;
          for(int i=0;i<19;i++)
          {

            if(Parametro[i]=="-")
            {
              if(h==0)
              {
                h=1;
                i++;
              } 
              if(h==1)
              {
                h=2;
                i++;
              }
              if(h==2)
              {
                h=3;
                i++;
              }
              if(h==3)
              {
                h=4;
                i++;
              }
              if(h==4)
              {
                i++;
              }           
            }
            
            vpar[h] = vpar[h] + Parametro[i];
          }
          Serial.println(vpar[0]);
          Serial.println(vpar[1]);
          Serial.println(vpar[2]);
          Serial.println(vpar[3]);
          Serial.println(vpar[4]);
          Serial.flush();
          p=0;
          h=0;
        }
      }
    }
  }
}
#define CAPACIDAD 5
char pos = 0, c;
String vpar[CAPACIDAD];

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

void loop()
{
  if (Serial.available()) 
  {
    c = Serial.read();
    if(c=='-') pos=min(pos++,CAPACIDAD-1);
    else vpar[pos]+=c;
  }
}