Paro de motores

Buenos días:

-He buscado un programa por internet, que me permite mover por medio de un Joystick dos motores DC de 12V. Y lo que me sucede, es que al posicionar el Joystick en reposo, los motores siguen su curso, cuando deberían de estar parados.
Adjunto programa, para por si acaso alguno me puede ayudar.

Gracias¡¡¡¡

int enA = 9;
int in1 = 8;
int in2 = 7; //para el motor A

int enB = 3; //para el motor B más adelante.
int in3 = 5;
int in4 = 4; 

int joyVert = A0; // joystick vertical
int joyHorz = A1; // joystick horizontal

int MotorSpeed1 =0; // velocidad del motor al comenzar
int MotorSpeed2 =0;

int joyposVert = 512; // lectura del joystick en 512
int joyposHorz = 512;

void setup ()
{
  pinMode(enA,OUTPUT);// declara el tipo de variables que es, INPUT entradas OUTPUT salidas
  pinMode(enB,OUTPUT);
  pinMode(in1,OUTPUT);
  pinMode(in2,OUTPUT);
  pinMode(in3,OUTPUT);
  pinMode(in4,OUTPUT);

  digitalWrite(enA,LOW);// para el motor A que utilizamos al principio
  digitalWrite(in1,HIGH);
  digitalWrite(in2,LOW);

  digitalWrite(enB,LOW);// para el motor B que utioizaremos más adelante
  digitalWrite(in3,HIGH);
  digitalWrite(in4,LOW);
}

void loop()
{
  joyposVert=analogRead (joyVert);
  joyposHorz=analogRead (joyHorz); // leer las posiciones del joystick
  //determina si son movimiento adelante o atrás 
  //hace esto leyendo el valor del vertice
  //aplica el resultado para velocidaes del motor y las direción.

 if (joyposVert < 460)
 {
 //condicione para ir hacia atrás
 
 digitalWrite (in1,LOW); //para el motor A
 digitalWrite (in2,HIGH);

 digitalWrite (in3,LOW); // para el motor B
 digitalWrite (in4,HIGH);
  
 //invertir la lectura

 joyposVert = joyposVert - 460;  //produce numeros negativos
 joyposVert = joyposVert * - 1;  // produce numeros positivos

 MotorSpeed1=map(joyposVert,0,460,0,255);
 MotorSpeed2=map(joyposVert,0,460,0,255);
}
else if (joyposVert > 564)
{
digitalWrite (in1,HIGH);//para el motorA
digitalWrite (in2,LOW);

digitalWrite (in3,HIGH);//para el motor B
digitalWrite (in4,LOW);

MotorSpeed1= map(joyposVert,564,1023,0,255);
MotorSpeed2= map(joyposVert,564,1023,0,255);

}
else
{
  MotorSpeed1=0;
  MotorSpeed2=0;
}

if (joyposHorz<460)
{
  //moviemiento a la izquierda
  
joyposHorz = joyposHorz - 460;//el producto en negativo de los numeros
joyposHorz = joyposHorz * -1; // el numero es positivo

////mapea con valor maximo  de 255

joyposHorz= map (joyposHorz,0,460,0,255);

MotorSpeed1=MotorSpeed1 - joyposHorz;
MotorSpeed2=MotorSpeed2 + joyposHorz;

//no exceder el radio de 0-255 para la velocidad de motor

if (MotorSpeed1<0)MotorSpeed1=0;
if (MotorSpeed2>255)MotorSpeed2=255;

}
else  if  (joyposHorz > 564)
{
//mover a la derecha
  
  joyposHorz= map (joyposHorz,564,1023,0,255);

  MotorSpeed1=MotorSpeed1 + joyposHorz;
  MotorSpeed2=MotorSpeed2 - joyposHorz;

if (MotorSpeed1>255)MotorSpeed1=255;
if (MotorSpeed2<0)MotorSpeed2=0;

}

//ajustar la ¨buzzin¨ a mucha velocidad
    if (MotorSpeed1 > 255)MotorSpeed1 = 255;
  if (MotorSpeed2 < 0)MotorSpeed2 = 0;


    if (MotorSpeed1 < 8)MotorSpeed1 = 0;
    if (MotorSpeed2 < 8)MotorSpeed2 = 0;
 
//Set el motor velocidad

  analogWrite (enA, MotorSpeed1);
  analogWrite (enB, MotorSpeed2);
}

Doble, triple, cuadruple, quintuple, sextuple post.
Te he enviado un email!!
Te pedi que leas las normas
Te pedi que sigas un solo hilo y que no abandones 6 iguales.
Vuelves y creas uno nuevo.
Pues, sinceramente no solo voy a cerrar este sino que tienes una advertencia y el nivel de la advertencia te lo voy a indicar por privado.