regarding my previous question the matter has been solved and big thanks to whoever helped or tried to, but after writing a messy janky barely working code it caused the servos (MG995) to have a seizure. As soon as they are plugged into the 5V and GND and their PWM pin they keep trying to rotate a few degrees every second, i've even had them do a sweep even though the code has nothing to do with a sweep. the code is as follows:
#include <Servo.h>
Servo claw,base,extension,elevation;
int in1 = 2;
int in2 = 4;
int in3 = 7;
int in4 = 8;
char val;
void setup()
{
base.attach(3);
claw.attach(5);
extension.attach(6);
elevation.attach(11);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
Serial.begin(9600);
}
void loop()
{
while (Serial.available() > 0)
{
val = Serial.read();
Serial.println(val);
}
if( val == 'z') // Forward
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
else if(val == 's') // Backward
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
}
else if(val == 'q') //Left
{
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
}
else if(val == 'd') //Right
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
else if(val == 'x') //stop
{
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
else if(val == 't') //claw open
{
claw.write(30);
}
else if(val == 'g') //claw close
{
claw.write(40);
}
else if(val == 'b') //base right
{
base.write(130);
}
else if(val == 'v') //base middle
{
base.write(100);
}
else if(val == 'c') //base left
{
base.write(70);
}
else if(val == 'y') //up
{
elevation.write(30);
}
else if(val == 'h') //down
{
elevation.write(30);
}
else if(val == 'u') //long
{
extension.write(30);
}
else if(val == 'j') //short
{
extension.write(30);
}
}
any suggestions on why thy might be doing this?