Mano Robotica HC05

Buenas tardes.
Les comento... Estoy trabajando en un proyecto que consiste en el control de una mano impresa en 3D mediante un guante con sensores de flexión incorporados.
Cada sensor envía una señal analógica al servo el cual debe moverse de 0 a 180º.
cual es mi problema? que por mas que busco información por Internet no veo nada y mis conocimientos sobre arduino son escasos.
les adjunto los dos códigos que tengo para el Maestro y el Esclavo.
Por cierto la comunicación de los dos HC05 la hace bien y se comunican correctamente.
Gracias por adelantado.

// MAESTRO

// Incluir la libreria del servomotor para agregar funciones de servo-control:
#include <SoftwareSerial.h>
#define BT_SERIAL_TX 2
#define BT_SERIAL_RX 3
SoftwareSerial BluetoothSerial(BT_SERIAL_TX, BT_SERIAL_RX);

// Definir la entrada analogica a la que ira conectado cada sensor-flex:

const int flexpin1 = A0;
const int flexpin2 = A1;
const int flexpin3 = A2;
const int flexpin4 = A3;
const int flexpin5 = A4;

int flexposition1;
int flexposition2;
int flexposition3;
int flexposition4;
int flexposition5;
int sensorMin = 760;
int sensorMax = 950;

char flex1[4];
char flex2[4];
char flex3[4];
char flex4[4];
char flex5[4];

String strflex1;
String strflex2;
String strflex3;
String strflex4;
String strflex5;

void setup()
{

Serial.begin(57600);
BluetoothSerial.begin(57600);
}
void loop()
{
flexposition1 = analogRead(flexpin1);
flexposition1 = map(flexposition1, sensorMin, sensorMax, 0, 175);
flexposition1 = constrain(flexposition1, 0, 180);
flexposition2 = analogRead(flexpin2);
flexposition2 = map(flexposition2, sensorMin, sensorMax, 0, 175);
flexposition2 = constrain(flexposition2, 0, 180);
flexposition3 = analogRead(flexpin3);
flexposition3 = map(flexposition3, sensorMin, sensorMax, 0, 175);
flexposition3 = constrain(flexposition3, 0, 180);
flexposition4 = analogRead(flexpin4);
flexposition4 = map(flexposition4, sensorMin, sensorMax, 0, 175);
flexposition4 = constrain(flexposition4, 0, 180);
flexposition5 = analogRead(flexpin5);
flexposition5 = map(flexposition5, sensorMin, sensorMax, 0, 175);
flexposition5 = constrain(flexposition5, 0, 180);

strflex1=String(flexposition1);
strflex1.toCharArray(flex1,4);
BluetoothSerial.write("flex1 ");
BluetoothSerial.write(flex1);
BluetoothSerial.write("\n");

strflex2=String(flexposition2);
strflex2.toCharArray(flex2,4);
BluetoothSerial.write("flex2 ");
BluetoothSerial.write(flex2);
BluetoothSerial.write("\n");

strflex3=String(flexposition3);
strflex3.toCharArray(flex3,4);
BluetoothSerial.write("flex3 ");
BluetoothSerial.write(flex3);
BluetoothSerial.write("\n");

strflex4=String(flexposition4);
strflex4.toCharArray(flex4,4);
BluetoothSerial.write("flex4 ");
BluetoothSerial.write(flex4);
BluetoothSerial.write("\n");

strflex5=String(flexposition5);
strflex5.toCharArray(flex5,4);
BluetoothSerial.write("flex5 ");
BluetoothSerial.write(flex5);
BluetoothSerial.write("\n");

Serial.print(" sensor1: ");
Serial.print(flexposition1);
Serial.print(" sensor2: ");
Serial.print(flexposition2);
Serial.print(" sensor3: ");
Serial.print(flexposition3);
Serial.print(" sensor4: ");
Serial.print(flexposition4);
Serial.print(" sensor5: ");
Serial.println(flexposition5);
delay(100);

}

//ESCLAVO

#include <SoftwareSerial.h>
#define BT_SERIAL_TX 2
#define BT_SERIAL_RX 3
SoftwareSerial BluetoothSerial(BT_SERIAL_TX, BT_SERIAL_RX);
#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
Servo servo5;
unsigned int flexposition1;
unsigned int flexposition2;
unsigned int flexposition3;
unsigned int flexposition4;
unsigned int flexposition5;
int servoposition1;
int servoposition2;
int servoposition3;
int servoposition4;
int servoposition5;
int sensorMin = 730;
int sensorMax = 940;

char cmd[100];
int cmdIndex;

void exeCmd(){

if( cmd[0]=='f' &&
cmd[1]=='l' &&
cmd[2]=='e' &&
cmd[3]=='x' &&
cmd[4]=='1' &&
cmd[5]==' ' ) {

int val = 0;
for(int i=6; cmd!=0; i++) { // number begins at cmd[6]
val = val*10 + (cmd-'0');
}

servo1.write(val);

}

if( cmd[0]=='f' &&
cmd[1]=='l' &&
cmd[2]=='e' &&
cmd[3]=='x' &&
cmd[4]=='2' &&
cmd[5]==' ' ) {

int val = 0;
for(int i=6; cmd!=0; i++) { // number begins at cmd[6]
val = val*10 + (cmd-'0');
}

servo2.write(val);

}

if( cmd[0]=='f' &&
cmd[1]=='l' &&
cmd[2]=='e' &&
cmd[3]=='x' &&
cmd[4]=='3' &&
cmd[5]==' ' ) {

int val = 0;
for(int i=6; cmd!=0; i++) { // number begins at cmd[6]
val = val*10 + (cmd-'0');
}

servo3.write(val);;
}

if( cmd[0]=='f' &&
cmd[1]=='l' &&
cmd[2]=='e' &&
cmd[3]=='x' &&
cmd[4]=='4' &&
cmd[5]==' ' ) {

int val = 0;
for(int i=6; cmd!=0; i++) { // number begins at cmd[6]
val = val*10 + (cmd-'0');
}

servo4.write(val);
}

if( cmd[0]=='f' &&
cmd[1]=='l' &&
cmd[2]=='e' &&
cmd[3]=='x' &&
cmd[4]=='5' &&
cmd[5]==' ' ) {

int val = 0;
for(int i=6; cmd!=0; i++) { // number begins at cmd[6]
val = val*10 + (cmd-'0');
}

servo5.write(val);
}

}

void setup()
{
Serial.begin(57600);
BluetoothSerial.begin(57600);
servo1.attach(8);
servo2.attach(9);
servo3.attach(10);
servo4.attach(11);
servo5.attach(12);

cmdIndex = 0;
}

void loop()

if (BluetoothSerial.available()>0){

char c = (char)BluetoothSerial.read();

if(c=='\n') {
cmd[cmdIndex] = 0;
exeCmd(); // ejecutar command
cmdIndex = 0; // reset cmdIndex
} else {
cmd[cmdIndex] = c;
if(cmdIndex<99) cmdIndex++;
}

}

}

Porfavor repasa las normas del foro ,sobre todo en lo referente a como adjuntar codigo y modifica tu post para adecuarlo a dichas normas.gracias.

Bien dicho esto,creo que te complicas demasiado con las conversiones a diferentes formatos que al final gastan tiempo de proceso innecesariamente.Si solo vas a enviar posiciones de servo ,quizas seria mas eficiente enviar algun tipo de codigo numerico.Una posible solucion seria una variable tipo int que puedes dividir en dos bytes ,numero de servo y posicion y en el maestro enviar esta variable que contiene los dos datos, separaradas por algun caracter no numerico para poder usar en el esclavo Serial.parseInt() para recoger los comandos y separar el numero de servo de la posicion.