Senior Design Project Help

Good afternoon I’m Cheems :],

I’m having issues with my project where my infrared sensors react too slow. The project is to have the robot stop at each syringe pump dispenser to mix each solution on after the other. I want my arm to stop directly stop right under a syringe pump dispenser but the sensors don’t give inputs fast enough. I’ve linked my project below…

Youtube Video of my project:https://www.youtube.com/watch?v=P1-joIYc45g
As you can see the arm just slightly misses syringe pumps 1 and 2. I kind of regret using IR sensors >.<…

I’m trying to slow the 360 servo motor but so far that’s as slow I can get it. Can I make it go slower?
Can I edit my code so that it reacts to the infrared sensors faster?
Can anyone recommend any other switch or sensor that would be more efficient in this situation?
I’m open to any suggestions for better accuracy.

Please and thank you :]

int stage_state = 1;
void loop(){
int Btn_read = digitalRead(Pump1_Btn);
int IR_read = analogRead(Reciever_pin);
char customKey = customKeypad.getKey();
Serial.println(IR_read);

if(customKey != NO_KEY){
Serial.println("Please Wait");
/*---------------------Polling Statements----------------*/
      if(stage_state == 1){
      goto STAGE1;
      }
      else if(stage_state == 2){
        goto STAGE2;
      }
      else if(stage_state == 3){
        goto STAGE3;
      }
      else if (stage_state == 4){
        goto STAGE4;
      }
/*---------------------Goto While Loops----------------------------*/
 STAGE1:
 Serial.println("Stage 1 Begin: ");
 while(stage_state == 1){
Btn_read = digitalRead(Pump1_Btn);
Serial.println(Btn_read);
   //FIND PUMP 1
   //Motor Counter Clock
   servo_360.writeMicroseconds(1400); 
      if(Btn_read == LOW){
            //Motor Stop
            servo_360.write(1500);
            delay(1000);
            //Dispense Syringe Pump 1
            Pump1();
            delay(1000);
            //Turn a Bit to Mix
            Arm_Clock(TURN_30);
            delay(1000);
            //Mix Solutions
            Mix();
            delay(1000);
            //increment stage counter
            stage_state += 1;
            delay(1000);
            break;
            }
            else{
            //Motor Counter Clock
            servo_360.writeMicroseconds(1400); 
            }
 }
 STAGE2:
 Serial.println("Stage 2 Begin: ");
 //Turn Pump 2 IR Emitter on 3.3v
 analogWrite(Emitter1_pin, 186);
 while(stage_state == 2){
  IR_read = analogRead(Reciever_pin);
  Serial.println(IR_read);
   //FIND PUMP 2
   //Motor  Clock
   servo_360.writeMicroseconds(1600); 
  if(IR_read >= 1){
            //Motor Stop
            servo_360.write(1500);
            delay(1000);
            //Dispense Syringe Pump 2
            Pump2();
            delay(1000);
            //Turn to mix
            Arm_Clock(TURN_45);
            delay(1000);
            //Mix Solution
            Mix();
            delay(1000);
            //increment stage counter
            stage_state += 1;
            delay(1000);
            //Turn Pump 1 IR Emitter off
            analogWrite(Emitter1_pin, 0);
            break;
            }
            else{
            //Motor Counter Clock
            servo_360.writeMicroseconds(1600); 
            }
  }
 STAGE3:
 Serial.println("Stage 3 Begin: ");
 //Turn Pump 3 IR Emitter on 3.3v
 analogWrite(Emitter2_pin, 186);
 while(stage_state == 3){
 IR_read = analogRead(Reciever_pin);
 Serial.println(IR_read);
    //FIND PUMP 2
    //Motor Clock
    servo_360.writeMicroseconds(1600); 
    if(IR_read >= 1){
            //Motor Stop
            servo_360.write(1500);
            delay(1000);
            //Dispense Syringe Pump 3
            Pump3();
            delay(1000);
            //Trun to Mix
            Arm_Clock(TURN_45);
            delay(1000);
            //Mix Solution
            Mix();
            delay(1000);
            //increment stage counter
            stage_state += 1;
            delay(1000);
            //Turn Pump 1 IR Emitter off
            analogWrite(Emitter2_pin, 0);
            break;
            }
            else{
            //Motor Counter Clock
            servo_360.writeMicroseconds(1600); 
            }
  }

  STAGE4:
  Serial.println("END CODE");
  while(1){
    /*TEMPORARILY STOP CODE*/
    }
}
}

I'd do some experiments with different speeds. Try every number in writeMicroseconds from 1500 to 1400. It seems to move pretty fast at 1400. When you have it dialed in, you can go most of the way quickly and creep towards the target slowly at the end.

thanks :]