Нещо такова си го представям:
#include <Servo.h> 
Servo myservo; 
int IRsensor = A0; 
int SensorVal = 0; 
int led1 = 13; 
int led2 = 12; 
int servo_direction = 0; // 0 - дясно, 1 - ляво
int servo_position = 0;  // първиначална позиция
void setup() 
{ 
myservo.attach(9); 
pinMode(led1,OUTPUT); 
pinMode(led2,OUTPUT); 
angle_servo = 45; 
InitServo(); //инициализиране на позицията на сервото
} 
void loop() 
{ 
SensorVal=analogRead(IRsensor); 
MoveServo(); // движение на сервото
if(SensorVal<200 &&angle_servo_IRsensor==angle_servo) 
{ 
digitalWrite(led1,HIGH); 
digitalWrite(led2,HIGH); 
} 
} 
//================================================ 
void MoveServo() 
{ 
  if(servo_direction == 0) // при дясно движение
  {
    servo_position++; // увеличи градуса с 1
    if(servo_position == 181) // ако сервото е стигнало крайна дясна точка (181 градуса)
    {
      servo_position = 180; 
       servo_direction = 1; // обърни посоката на движение на ляво
    }
  }
  else if(servo_direction == 1)  // при ляво движение
  {
    servo_position--; // намали градуса с 1
    if(servo_position == -1) // ако сервото е стигнало крайна лява точка (-1 градуса )
    {
      servo_position = 0;
      servo_direction = 0; // обърни посоката на движение на дясно
    }    
  }
  myservo.write(servo_position); // задай градуса на сервото
  delay(15);
} 
//===============================================
void InitServo()
{
  myservo.write(servo_position); //инициализиране на сервото
}
Така на всеки цикъл мести сервото с една позиция и в Loop имаш на каква позиция сега е сервото. Написъл съм и коментари. Ако имаш въпроси питай.