Need help with parachute deploy system

Hi guys, I am having trouble with a parachute deploy system i am working on , it uses a push button to know when launch happens then delay a signal to a servo to deploy the parachute , it was working fine , but the button got pushed for too long??? it is supposed to move 180 degrees, but it now moves a total of 90 degrees in ever smaller increments (e.g. 40-30-20-10) , the servo is ok , button is fine, nothing fried on the board , any suggestions on what to do to fix it? Many thanks :smiley: , code and schematic are below

CODE:

#include <Servo.h>
const int servoPin = 8; // Servo pin
const int buttonPin = 9; // Pushbutton pin
int buttonState = 0;
int directionState = 0;
Servo myservo;
int pos = 0;

void setup() {
myservo.attach( 8 ); -Spaced cause when previewed it showed an emoji
pinMode(buttonPin, INPUT);
}

void loop(){
buttonState = digitalRead(buttonPin);
if (directionState == 0){
if (buttonState == HIGH) {
directionState = 1;
for(pos = 0; pos < 180; pos += 1)
{
myservo.write(pos);
delay(15); // waits 15ms to reach the position
}
}

} else if (directionState == 1) {
if (buttonState == HIGH) {
directionState = 0;

for (pos = 180; pos>=1; pos -=1)
{
myservo.write(pos);
delay(15);
}
}
}
}

Untitled.png

myservo.attach( 8 ); -Spaced cause when previewed it showed an emoji

It only did that because YOU FAILed to use code tags.

Why are you supplying 3.3V to the switch?

You arenโ€™t really powering the servo from the Arduino, are you?