como borro el puerto serie?

resulta que estoy haciendo un carrito con arduino que funcione mediante el bluetooth, y todo va bien excepto que una vez que presiono los botones que destine para “incomingByte” los dos motores A y B se quedan girando segun la programacion que yo les di, mi duda era como le hago para a cada “if” ponerle un delay y así que la instrucción solo dure el tiempo que le doy en el delay. o si se puede que mientras presiono la tecla para cada if que en este caso son 1, 2, 3 y 4 los motores hagan su funcion y al soltar las teclas los motores se apaguen. ya intente poniendoles delay’s pero no me funciona.
les dejo mi programa para que me digan que puedo hacer? Ahorita tenfgo que precionar ‘0’ para apagar pero quiero que basicamente siempre esten apagados excepto cuando presiono la tecla para la funcion que quiero. gracias!

int entradamotor1 = 4;
int entradamotor2 = 7;
int entradamotor3 = 6;
int entradamotor4 = 5;
int incomingByte; 


void setup(){
  pinMode(entradamotor1, OUTPUT);  //IN1
  pinMode(entradamotor3, OUTPUT);  //IN2
  pinMode(entradamotor2, OUTPUT);  //IN3
  pinMode(entradamotor4, OUTPUT);  //IN4
   Serial.begin(9600);
}

void loop(){
  if (Serial.available() > 0) 
  {
  incomingByte = Serial.read();
  }
  
     //ADELANTE//
    if (incomingByte == '1')
     {
      digitalWrite(entradamotor2, LOW); // motor A
      digitalWrite(entradamotor4, HIGH); //motor A
      digitalWrite(entradamotor1, LOW); //motor B
      digitalWrite(entradamotor3, HIGH); // motor B
      delay (apagado);
      
    }
      //  ATRAS //
    if  (incomingByte == '4')
    {
      digitalWrite(entradamotor2, HIGH); //motor A
      digitalWrite(entradamotor4, LOW); //motor A
      digitalWrite(entradamotor1, HIGH); //motor B
      digitalWrite(entradamotor3, LOW); //motor B
      
    }
      // DERECHA //
    if (incomingByte == '2')
    {
      digitalWrite(entradamotor2, LOW); // motor A
      digitalWrite(entradamotor4, HIGH); //motor A
      digitalWrite(entradamotor1, HIGH); //motor B
      digitalWrite(entradamotor3, LOW); //motor B
}
     // IZQUIERDA //
     if (incomingByte == '3')
     {
      digitalWrite(entradamotor2, HIGH); //motor A
      digitalWrite(entradamotor4, LOW); //motor A
      digitalWrite(entradamotor1, LOW); //motor B
      digitalWrite(entradamotor3, HIGH); // motor B
     }

       //APAGAR//
       if(incomingByte == '0')
       {digitalWrite(entradamotor2, LOW); //motor A
      digitalWrite(entradamotor4, LOW); //motor A
      digitalWrite(entradamotor1, LOW); //motor B
      digitalWrite(entradamotor3, LOW); // motor B
       }
}

adelante_atras_izquierda_derecha.ino (1.51 KB)

Prueba con esto:

void loop(){

incomingByte=9;

if (Serial.available() > 0) { incomingByte = Serial.read(); }

//ADELANTE// if (incomingByte == '1')

Jopapa www.jopapa.me