problema codice controllo servo

Salve sto costruendo un modellino di braccio robotico mosso da 5 servomotori, controllato da 2 joystick analogici e due pulsanti.
i due pulsanti dovrebbero rispettivamente aprire e chiudere la pinza ma i risultati non sono quelli sperati. questo è il codice:

#include <Servo.h> 
 
Servo rota;
Servo spalla;
Servo gomito;
Servo polso;
Servo mano;
 
int posrota = 90;
int posspalla = 40;
int posgomito = 60;
int pospolso = 90;
int posmano = 90;
int sxver = 0;
int sxori = 0;
int dxver = 0;
int dxori = 0;
int apri = 0;
int chiudi = 0;


void setup() 
{ 
  rota.attach(3);
  spalla.attach(5);
  gomito.attach(6);
  polso.attach(9);
  mano.attach(10);
} 
 
 
void loop() 
{ 
  sxver = analogRead(0);
  sxori = analogRead(1);   
  dxver = analogRead(2);
  dxori = analogRead(3);
  apri = digitalRead(7);
  chiudi = digitalRead(8);
  
  if ((sxver>800)&&(posspalla<180)) posspalla++;
  if ((sxori>800)&&(posrota<180)) posrota++;
  if ((dxver>800)&&(posgomito<120)) posgomito++;
  if ((dxori>800)&&(pospolso<180)) pospolso++;
  if ((sxver<200)&&(posspalla>50)) posspalla--;
  if ((sxori<200)&&(posrota>0)) posrota--;
  if ((dxver<200)&&(posgomito>0)) posgomito--;
  if ((dxori<200)&&(pospolso>0)) pospolso--;
  if ((apri==1)&&(posmano<150)) posmano++;
  if ((chiudi==1)&&(posmano>0)) posmano--;
  
  rota.write(posrota);
  spalla.write(posspalla);
  gomito.write(posgomito);
  polso.write(pospolso);
  mano.write(posmano);  
  delay(15);                       
 
}

il servo che da problemi è "mano", controllato con i joystick funziona correttamente ma con i pulsanti (controllato il corretto funzionamento con multimetro), si muove di poco ad ogni rilascio del pulsante anzichè muoversi finchè rimane premuto..
qualcuno mi sa aiutare?

il multimentro non vede la sporcizia che arriva dai pulsanti, ovvero una serie velocissima di 1 e 0

questo non spiega comunque il comportamento.. in quanto ad ogni 1 dovrebbe girare..

ops, scusa, ho interpretato male il codice.

il codice sembra corretto, quindi il problema potrebbe essere il cablaggio, in primis mi viene in mente che manca la pull down, specialmente se i pin digitali che usi sono vicini

ho risolto, avevo sbagliato la posizione di una resistenza di un terzo pulsante che rompeva un po' le scatole.