Problema con motores DC en brazo robótico móvil controlado por Bluetooth.

Hola,
Estoy haciendo un proyecto que se basa en la construcción de un brazo robótico móbil controlado mediante una aplicación creada con App Inventor. Las articulaciones estan hechas con servomotores, y en la base del robot hay dos motores DC para que el robot pueda desplazarse. Los motores estan conectados a un puente H L298N.
Los servos funcionan bien, pero los motores DC no responden a la aplicación. Al pulsar los botones correspondientes a estos, los motores pitan y a los servos les dan una especie de espasmos.
Agradecería que alguien me dijera a qué puede deberse este error. Si se necesitan más detalles hacédmelo saber. Os dejo por aquí el código.
Muchas gracias.

#include <SoftwareSerial.h>               //Biblioteca connexions serials
#include <Servo.h>                        //Biblioteca servos

Servo servo1;                             //Servo base
Servo servo2;                             //Servo articulació 1
Servo servo3;                             //Servo articulació 2
Servo servo4;                             //Servo pinça
int IN1 = 5;                             //Pol A motor esquerre connectat a pin 5
int IN2 = 6;                             //Pol B motor esquerre connectat a pin 6
int IN3 = 9;                             //Pol A motor dret connectat a pin 9
int IN4 = 12;                            //Pol B motor dret connectat a pin 10
char dada;                                //Caràcter que s'envia des de l'aplicació
String readString;                        //Objecte que crea una cadena

void setup(){
  servo1.attach(2);                       //Servo 1 connectat al pin 2
  servo2.attach(4);                       //Servo 2 connectat al pin 4
  servo3.attach(7);                       //Servo 3 connectat al pin 7
  servo4.attach(8);                       //Servo 4 connectat al pin 8
  pinMode(IN1, OUTPUT);                  //Estableix el pin 5 com a sortida
  pinMode(IN2, OUTPUT);                  //Estableix el pin 6 com a sortida
  pinMode(IN3, OUTPUT);                  //Estableix el pin 9 com a sortida
  pinMode(IN4, OUTPUT);                  //Estableix el pin 10 com a sortida
  Serial.begin(9600);                     //Inicia connexió serial amb el mòdul Bluetooth
}

void loop(){
  if (Serial.available()>0) {               //Quan hi ha connexió serial
    dada = Serial.read();                 //Cada cop que es rep la variable dada, s'ha d'interpretar
     
    if(dada=='A'){                        //Si dada correspon a 'A', moure servo 1
      motor1();
    }

    if(dada=='B'){                        //Si dada correspon a 'B', moure servo 2
      motor2();
    }

    if(dada=='C'){                        //Si dada correspon a 'C', moure servo 3
      motor3();
    }

    if(dada=='D'){                        //Si dada correspon a 'D', moure servo 4
      motor4();
    }

    if(dada=='E'){                        //Si dada correspon a 'E', avança
      analogWrite(IN4, LOW);
      analogWrite(IN2, LOW);
      analogWrite(IN3, HIGH);
      analogWrite(IN1, HIGH);
     
    }

    if(dada=='F'){                        //Si dada correspon a 'F', gira a l'esquerra
      analogWrite(IN4, LOW);
      analogWrite(IN2, LOW);
      analogWrite(IN3, LOW);
      analogWrite(IN1, HIGH);
     
    }

    if(dada=='G'){                        //Si dada correspon a 'G', para
      analogWrite(IN4, LOW);
      analogWrite(IN2, LOW);
      analogWrite(IN3, LOW);
      analogWrite(IN1, LOW);
     
    }

    if(dada=='H'){                        //Si dada correspon a 'H', gira a la dreta
      analogWrite(IN4, LOW);
      analogWrite(IN2, LOW);
      analogWrite(IN3, HIGH);
      analogWrite(IN1, LOW);
     
    }

    if(dada=='I'){                        //Si dada correspon a 'I', marxa enrere
      analogWrite(IN4, HIGH);
      analogWrite(IN2, HIGH);
      analogWrite(IN3, LOW);
      analogWrite(IN1, LOW);
      
    }
  }
}
          
void motor1(){                            //Acció motor1
  delay(10);                              //Retràs de 10 ms
  while (Serial.available()) {            //Mentre hi hagi connexió serial
    char dada2 = Serial.read();           //Emmagatzema la informació rebuda en el caràcter dada2
    readString += dada2;
  }
  if (readString.length() >0) {           //Si la cadena és més gran que 0
    Serial.println(readString.toInt());   //Converteix les dades en nombres
    servo1.write(readString.toInt());     //Assigna un valor al servo
    readString="";                        //Borra la cadena
  }
}
        
void motor2(){
  delay(10);
  while (Serial.available()) {
    char dada2 = Serial.read();
    readString += dada2;
  }
  if (readString.length() >0) {
    Serial.println(readString.toInt());
    servo2.write(readString.toInt());
    readString="";
  }
}  

void motor3(){
  delay(10);
  while (Serial.available()) {
    char dada2 = Serial.read();
    readString += dada2;
  }
  if (readString.length() >0) {
    Serial.println(readString.toInt());
    servo3.write(readString.toInt());
    readString="";
  }
}

void motor4(){
  delay(10);
  while (Serial.available()) {
    char dada2 = Serial.read();
    readString += dada2;
  }
  if (readString.length() >0) {
    Serial.println(readString.toInt());
    servo4.write(readString.toInt());
    readString="";
  }
}

Hola @GebratOor, has leído parcialmente las normas o no entendiste que hay sitios para postear una consulta y otros para los proyectos.
Aunque para ti esto sea un proyecto no lo es desde el punto de vista del foro porque solo planeas una consulta a tu problema y eso no es un proyecto.
Debiste haber leído los dos primeros hilos y entenderías porque no debiste postear aquí.
Muevo el hilo a Software