for ( int i = 0; i > 5; i++){ // Set the possition to 90 degrees
digitalWrite(servo, HIGH);
delayMicroseconds(1500);
digitalWrite(servo, LOW);
}
this loop has no delay after digitalWrite(servo, LOW); so it is effectively a high for 7.5 ms ?
Are you familiar with the blink without delay sketch?
It is a way to do timing more precise and it removes the blocking delays.
You need several extra variables to hold state.