Was du HEX nennst ist wohl nur eine Frage der Präsentation.
Denn dein Array sieht nicht so aus, als müsste da die hexadezimale Ascii Repräsentation des Wertes eingetragen werden.
Winkel = map(xVal,518, 0 ,0 , 220);
Faktor = (Winkel + 100);
Faktor kann offensichtlich Werte bis 320 annehmen, das passt in kein Byte!
Der Datentype von Faktor ist mir nicht bekannt, also zeige ich dir eine Zuweisung mit (vermutlich) implizitem Typecast auf Byte.
const byte platzhalterIndex = 3;
byte vvec[8] = {0x1C, 0x00, 0x00, 0/* platzhalter */, 0x00, 0x00, 0x00, 0x00};
xVal = analogRead(A0);
Winkel = map(xVal,518, 0 ,0 , 220);
Faktor = (Winkel + 100);
vvec[platzhalterIndex] = Factor;