proyecto coche 4x4 con brazo robot.

Ya vi cual es el problema.
Mira la variable estado que defines como global!!
Como esta definida como global al recibir un valor via BT, se queda siempre con ese valor hasta recibir otro.
Deberías ponerla a 0 una vez ejecutada la orden.

estado = "";

te dejo el código

 int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
int estado = 'g'; // inicia detenido

void setup() {
Serial.begin(9600); // inicia el puerto serial para comunicacion con el Bluetooth
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}

void loop() {

  if (Serial.available()>0){ // lee el bluetooth y almacena en estado
      estado = Serial.read();
  }
  if (estado=='G'){ // Forward
      Serial.println(estado);
      analogWrite(derB, vel);
      analogWrite(izqB, 0);
      analogWrite(izqA, vel);
      analogWrite(derA, 0);
  }
  
  if (estado=='J'){ // right
      Serial.println(estado);
      analogWrite(derB, vel);
      analogWrite(izqB, vel);
      analogWrite(derA, 0);
      analogWrite(izqA, 0);
  }
  
  if (estado=='K'){ // Stop
      Serial.println(estado);
      analogWrite(derB, 0);
      analogWrite(izqB, 0);
      analogWrite(derA, 0);
      analogWrite(izqA, 0);
  }
  
  if (estado=='I'){ // left
      Serial.println(estado);
      analogWrite(derB, 0);
      analogWrite(izqB, 0);
      analogWrite(izqA, vel);
      analogWrite(derA, vel);
  }

  if (estado=='H'){ // Reverse
      Serial.println(estado);
      analogWrite(derB, 0);
      analogWrite(izqB, vel);
      analogWrite(izqA, 0);
      analogWrite(derA, vel);
  }
  
  if (estado =='f'){ // Boton ON se mueve sensando distancia

  }
  
  if (estado=='g'){ // Boton OFF, detiene los motores no hace nada
  }
  estado = "";
}