Quando premi 'a' gli passi direttamente la posizione 97 e ovviamente il servo va soltanto a quella posizione.
Potresti usare una variabile per indicare la posizione del servo e la aumenti o decrementi ad ogni pressione dei tasti.
Arduino:
#include <Servo.h>
Servo myservo;
byte posizione = 90;// la variabile per la posizione
void setup ()
{
myservo.attach(9);
Serial.begin(9600);
}
void loop()
{
if(Serial.available())
{
byte pos=Serial.read();
if (pos =='a')// se premi 'a' decrementi la variabile, sempre se non ha raggiunto il valore minimo 10
{
if(posizione > 10) // non deve diminuire se è 10
{
posizione--;
}
}
else if (pos =='d')// premendo 'd' aumenti la variabile fino al valore massimo 170
{
if(posizione < 170) // non deve aumentare se è 170
{
posizione++;
}
}
}
myservo.write (posizione);
}
E' solo un'idea, non l'ho provata ma è un punto di partenza.
Ciao