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?