Simular movimiento de dedos con servos sg90 y sensor de flexión

Buenas

Soy nuevo en el tema de programación en arduino y por cosas de la vida quise simular el movimiento de un dedo con servos sg90 mediante la flexión del sensor adosad a un guante. He montado la estructura, pero al confeccionar el código y ejercutarlo, los valores obtenidos y posterior codificación para ver los motores, resultan muy variados entorno a los ángulos y la velocidad de los servos en responder a los cambios constante que registra el sensor de flexión cuando muevo el dedo (temblores).

Es posible que sean las sentencias de valor absoluto, obtenga grados variados en una cantidad de tiempo determinado, generando movimientos bruscos.

Adjuntare el codido del programa que estado trabajando.

include <Servo.h>

Servo dedo11, dedo12;
int servoPin1 = 6;
int servoPin2 = 7;

int flexPin1 = A1;

void setup() {
 Serial.begin(9600);
 dedo11.attach(servoPin1, 500, 1500);
 dedo12.attach(servoPin2, 500, 1500);


 pinMode(servoPin1, OUTPUT);
 pinMode(servoPin2, OUTPUT);

 pinMode(flexPin1, INPUT);
 
}

void loop() {

Serial.println("Resistencia flexPin1:" + String((analogRead(flexPin1))));
while((analogRead(flexPin1)>=410 && analogRead(flexPin1)<=550)){
 float pos4 = map(analogRead(flexPin1), 410, 550, 0, 180);
 float pos5 = map(analogRead(flexPin1), 420, 560, 0, 180);

 float pos6 = pos4- pos5;
  if(pos6<=1,3){
 Serial.println("Resistencia flexPin1:" + String((analogRead(flexPin1))));
 pos6 = constrain(pos6, 0, 180);  
 Serial.println("Grados dedo12:" + String(pos4));
 Serial.println("Grados pos5:" + String(pos5));
 Serial.println("Grados pos6:" + String(pos6));
 dedo12.write(pos4);
 delay(1);
  } 

 
 while((analogRead(flexPin1)>=270 && analogRead(flexPin1)<=405)){
    
 float pos1 = map(analogRead(flexPin1), 270, 405, 0, 150);
 float pos2 = map(analogRead(flexPin1), 280, 400, 0, 150);

 float pos3 = pos1- pos2;
 if(pos3<=1,3){
 
 Serial.println("Resistencia flexPin1:" + String((analogRead(flexPin1))));
 pos3 = constrain(pos3, 0, 180);  
 Serial.println("Grados dedo11:" + String(pos1));
 Serial.println("Grados pos2:" + String(pos2));
 Serial.println("Grados:pos3" + String(pos3));
 dedo11.write(pos1);
 delay(1);
 }  

  } 
}
}

 //delay(1000);

_4_prueba_codigo_sg90_sensor_de_flexion.ino (1.48 KB)

Bienvenido al foro.

¿Y que es la pregunta?

Tendrá algo que ver con grados y radianes?
Tuve un problema matemático así y lo resolví simulando todo en un IDE Processing, se programa muy parecido al Arduino pero hace gráficos fácil entonces no tienes que estar cargando cada rato en el pobre Arduino, si tienes suerte puedes usarlo como monitor serial y graficas todas las lecturas (yo no pude porque parece que mi sistema 64 bits no es compatible con la librería de Arduino en Prcessing.

Recomiendo que veas el video. https://processing.org

Por favor lee las Normas del foro y edita tu post usando etiquetas de código
Por favor no lo dejes pasar y tampoco lo hagas en un nuevo post, edita el actúal.