Código Bluetooth funciona en UNO pero no en MEGA+Motor Shield

Un saludo al foro,
Estoy intentando realizar un proyecto similar a un Rover teledirigido, usando un par de arañas unidas, cuyos motores en lugar de mover ruedas mueven patas. El proyecto funciona bien en modo "autónomo" evitando obstáculos y demás, pero estoy teniendo problemas al intentar controlarlo vía Bluetooth.

El montaje consiste en una placa "MEGA 2560 R3" con un "Motor Shield Drive Dual L293D" encajado encima, y un módulo "Bluetooth HC-05" (con botoncito). El módulo Bluetooth requiere de un divisor de tensión para funcionar, resuelto mediante resistencias. La alimentación del conjunto se realiza mediante dos pilas de litio 18650.
El problema que tengo es que el módulo Bluetooth parece no recibir las órdenes; al recibir corriente parece enlazar correctamente con el móvil (cambiando la velocidad de parpadeo de su led), pero no da respuestas.

He probado sólo la parte del código de comunicación conectando el módulo Bluetooth a una placa Arduino UNO y funciona bien (es decir, enlaza con el móvil y recibe los comandos, que se visualizan en la pantalla de Monitor Serie); pero usando exactamente el mismo código y los mismos pines en la placa MEGA con el Motor Shield encima, no funciona (enlaza con el móvil, pero no hay respuesta).

El código que funciona en la placa UNO+módulo HC-05, pero no funciona con la placa MEGA+ShieldMotor+Módulo HC-05 es:

#include <SoftwareSerial.h>

SoftwareSerial mySerial(A0, A1); // el Pin A0 conectado directamente a TX, el Pin A1 con divisor de tensión
String command ="";
void setup()  
{
  Serial.begin(9600);
  Serial.println("Esperando datos desde dispositivo Bluetooth");
  mySerial.begin(9600);
}

void loop()
{
  if (mySerial.available()) {
      while(mySerial.available()) { 
      command += (char)mySerial.read();
      }
      Serial.println(command);
      command = "";
  }
}

He buscado problemas similares en Internet, y he probado utilizar diferentes pines y diferentes códigos (con y sin la librería SoftwareSerial), pero sin resultados positivos. La comunicación vía Bluetooth funciona con la placa UNO+módulo HC-05, pero no funciona con la placa MEGA+ShieldMotor+Módulo HC-05.

Cualquier ayuda será bien recibida. Gracias.

No se ve la conexión al Mega. Consulta, has unificado las masas del modulo con la del MEGA?

Gracias por la pronta respuesta.
He conectado la tierra del módulo Bluetooth a la posición del pin 55 de la Mega (en la esquina de la placa, con indicación GND), y también he probado alimentar el módulo desde el Motor Shield, usando uno de los Gnd taladrados sobre la placa. En ambos casos el módulo Bluetooth se enciende, y enlaza; pero parece que no recibe los comandos desde el móvil.
El mismo programa, utilizando los mismos pines en todas las conexiones, funciona en la placa UNO pero no en la Mega+Motor Shield.

!Funciona!
No sé la razón técnica, pero parece que es un problema de corriente.
el código que utilizaba para alimentar el módulo era:

pinMode(49, OUTPUT);  // Corriente 5v para el módulo Bluetooth
digitalWrite(49, HIGH);

Enciende el módulo bluetooth y enlaza, pero no comunica.

Todo funciona bien ahora al tomar los 5V desde uno de los pines la esquina de la placa Mega, cerca de los pines 21 y 22; y la tierra en la esquina opuesta, cerca de los pines 52 y 53 (aunque dice que es GND digital). He conectado TX y RX en los pines 52 y 53; me parece que no todos los pines valen usando la librería SoftwareSerial.

Ahora sí puedo controlar la araña desde el móvil, gracias.

Hay un error conceptual y es que el UNO tiene solo 1 puerto Serie y si necesitas otro entonces usas SoftwareSerial.

pero el MEGA tiene 3 puertos además del Serial ubicado en 0 y 1 de modo que usar SoftwareSerial no es lo apropiado.

Si quieres usar puerto Serial1 debes inicializarlo con ese nombre y lo mismo con Serial2 o Serial3.

Los pines los lees a la derecha TX1/RX1, TX2/RX2,TX3...RX3

Gracias, el proyecto en la Mega ahora funciona perfectamente usando el puerto Serial3.
!De los errores se aprende!
La idea inicial con la araña era añadir al programa de funcionamiento autónomo de evitar obstáculos, el poder controlarla vía Bluetooth desde el móvil. En vista de las dificultades propias de un novato en encontrar el error, decidí volver a empezar pero desde el control remoto vía Bluetooth, y una vez en funcionamiento, añadir la posibilidad de cambiar a funcionamiento autónomo.
Gracias de nuevo.

Muy bien por la forma en que encaraste la resolución del problema! Resalto esto para quien lo lea porque es el camino a seguir en la resolución de problemas.

No hay que seguir con insistencia cuando el proyecto es complejo por que uno tiende a repetir los mismos errores, por el contrario hay que identificar la falla (en tu caso el BT) y ver como resolver esa tarea individual y luego incorporar la solución al programa mayor.