Подскажите, никак не получается. Chip дал код, я немного его подкорректировал и залил.
Код:
int ServoPin = 3; //управляющий выход для сервы
int in_4 = 4; // вход для первой кнопки
int in_5 = 5;  // вход для второй кнопки
int step = 100; //среднее положение сервы

void setup() 
{ 
pinMode(ServoPin, OUTPUT); 
pinMode(in_4, INPUT); 
pinMode(in_5, INPUT); 
} 

void loop() 
{ 
  if(step > 700){step = 700;} 
  if(step < 600){step = 600;} 

     if(digitalRead(in_4)==HIGH){step=step+10;} // если нажата первая кнопка делаем один шаг в право
     if(digitalRead(in_5)==HIGH){step=step-10;} // если нажата вторая кнопка делаем один шаг в лево
   
        digitalWrite(ServoPin, HIGH);  
        delayMicroseconds(step);   
        digitalWrite(ServoPin, LOW); 
        delayMicroseconds(20000-step);    
}
Но получается не то что я хочу. Во-первых серва поворачивает сначала не в ту сторону и ход у неё маленький,как увеличить?
если увеличить это значение
Код:
if(step > 700){step = 700;}
ТО получается что серва поворачивается больше,в принципе то что мы хотели,но тогда появляется такой эффект как, то что серва повернула и остановилась,но при этом слышно как моторчик пыхтит