Interrompere rotazione servo quando è arrivato al punto desiderato

salve
ho collegato ad arduino uno un FRS e un servo che va da 0 a 180
in base alla pressione applicata all FRS imposto 3 gradazioni…
90 (no pressione)
45 (pressione minima)
135 (pressione massima)
e funziona

il codice è il seguente

#include <SoftwareServo.h> 
 
SoftwareServo myservo;  // create servo object to control a servo 
 
int aperto = 0;   //variabile per switch case per aprire o chiudere i cassetti
const int limite = 600;
int fsrPin = 0;     // the FSR and 10K pulldown are connected to a0
int peso;     // the analog reading from the FSR resistor divider


void setup() 
{ 
  myservo.attach(9);  // attaches the servo on pin 9 to the servo object 
} 
 
void loop() 
{ 
 peso = analogRead(fsrPin);


  if (peso <= 100) {
    aperto = 0;    
  } else if (peso <= limite) {
    aperto = 1;    
  } else {
    aperto = 2;   
  }
  

  switch (aperto) {
  case 0: 
    myservo.write(90);
    SoftwareServo::refresh();
    break;  
  
  case 1:   
    myservo.write(135); 
    SoftwareServo::refresh();
    break;
  
  case 2:    
    myservo.write(45);   
    SoftwareServo::refresh();
    break;
  } 
  
  delay(150);
}

ora la domanda è questa…questo tipo di situazione fa si che COSTANTEMENTE, se si verifica (ad esempio) il caso 0, venga eseguito il comando myservo.write(90)

è possibile evitare di continuare a farlo eseguire se il servo ha effettivamente raggiunto i 90 gradi?
ho provato con la funzione myservo.read() ma non funziona bene o meglio io non sono in grado di farla funzionare a dovere…mi sapreste dare una mano?
oppure è una cosa “stupida” quello che cerco di fare in quanto il servo una volta arrivato lì sa già lui che non deve tentare oltre?

qui un breve video di come si comporta:

grazie
saluti

jackalope: oppure è una cosa "stupida" quello che cerco di fare in quanto il servo una volta arrivato lì sa già lui che non deve tentare oltre?

Il servo si ferma da solo alla posizione richiesta, è un sistema autonomo, la myservo.write(90) non fa altro che aggiornare la durata dell'impulso PPM a 1500 us, quindi ripeterla in continuazione non ha alcun effetto reale sul servo. La myservo.read() non fa altro che leggere l'ultimo valore che hai utilizzato con la myservo.write(), ovvero non legge la reale posizione del servo, in pratica è una funzione totalmente inutile.

avevo avuto il vago sospetto che il read() fosse piuttosto inutile visto che usandolo come test non ha mai funzionato...

grazie mille