¿Como enviar a través de BT comandos para LEDS y SERVOS?

Saludos buenas noches este es mi primer POST. Uso un Arduino NANO ATMEGA328 y ya hago pinitos y cositas por mi cuenta. He avanzado mucho en un par de meses. He sido capaz de hacer bastantes cosas.
Normalmente uso CODEBENDER para la parte del Arduino y APP INVENTOR para la parte del móvil (Uso un SAMSUNG S4). El motivo de este mensaje es ver si me podéis orientar un poco con este proyecto que estoy preparando. Por una parte aprendo y por otra le enseño a mi hijo uniendo LEGO ARDUINO etc.... Es altamente gratificante.
Aporto dos SKETCHS que funcionan sin errores por separado.
Por un lado la parte de los SERVOS que ya soy capaz de usar sin problemas (dos servos mueven dos brazos), por otro el sketch de los LEDS que se encienden y se apagan.

Ambas partes por separado funcionan sin ningún contratiempo como digo. El APP inventor controla ambos sketchs. Mi problema viene a la hora de emitir a traves del bluetooth los comandos.
He probado muchas cosas pero no hay forma. Los leds parece que van locos y no responden a los comandos cuando intento integrar ambas programaciones. Parece que va todo lento y los leds parpadean y no va el conjunto. Me pierdo con el envío simultáneo de comandos numéricos y comandos de texto.
Mi petición es que me orientéis para que tanto comandos numéricos como comandos de texto puedan convivir y desde la misma APP poder usar tanto los movimientos de los SERVOS como el encendido y apagado de los LEDS. A partir de que pueda hacerlo, ya me meteré con sensores ultrasonicos motores etc... Gracias por vuestros consejos.

CODIGO LEDS Y DEBAJO CODIGO SERVOS SEPARADOS POR -----------------------------------

#include <SoftwareSerial.h>
SoftwareSerial bluetooth(10, 11); 

// creates a "virtual" serial port/UART
// connect BT module TX to D10
// connect BT module RX to D11
// connect BT Vcc to 5V, GND to GND
char a; // stores incoming character from other device

void setup()  
{
  // set digital pin to control as an output
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  // set the data rate for the SoftwareSerial port
  bluetooth.begin(57600);
  Serial.begin(9600);
}

void loop() 
{
  if (bluetooth.available())
  // Si lleva texto a través del Bluetooth
  {
    a=(bluetooth.read());
    Serial.println(a);
    if (a=='A')
    {
      digitalWrite(5, HIGH);
      Serial.println("LED rojo1 on");
    }
    if (a=='B')
    {
      digitalWrite(5, LOW);
      Serial.println("LED rojo1 off");
    }
  if (a=='C')
    {
      digitalWrite(6, HIGH);
      Serial.println("LED rojo2 on");
    }  
     if (a=='D')
    {
      digitalWrite(6, LOW);
      Serial.println("LED rojo2 off");
    }
    if (a=='E')
    {
      digitalWrite(7, HIGH);
      Serial.println("LED verde on");
    }
     if (a=='F')
    {
      digitalWrite(7, LOW);
     Serial.println("LED verde off");
    }
   
  }
}



----------------------------------------------------------------------------


#include <SoftwareSerial.h>

#include <Servo.h> 
Servo myservo1, myservo2, myservo3, myservo4, myservo5, myservo6;

int bluetoothTx = 10;
int bluetoothRx = 11;

SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
void setup()
{  
  myservo1.attach(9);
  myservo2.attach(8);
  myservo3.attach(7);
  myservo4.attach(6);
  myservo5.attach(5);
  myservo6.attach(4);
  
  //Setup usb serial connection to computer
  Serial.begin(9600);

  //Setup Bluetooth serial connection to android
  bluetooth.begin(57600);
  

}

void loop()
{


  //Read from bluetooth and write to usb serial
  if(bluetooth.available()>= 2 )
  {
    unsigned int servopos = bluetooth.read();
    unsigned int servopos1 = bluetooth.read();
    unsigned int realservo = (servopos1 *256) + servopos; 
    Serial.println(realservo); 
    
    if (realservo >= 1000 && realservo <1180){
    int servo1 = realservo;
    servo1 = map(servo1, 1000,1180,0,180);
    myservo1.write(servo1);
    Serial.println("servo 1 ON");
    delay(10);

    }
    
    if (realservo >=2000 && realservo <2180){
      int servo2 = realservo;
      servo2 = map(servo2,2000,2180,0,180);
      myservo2.write(servo2);
      Serial.println("servo 2 On");
      delay(10);
      
    }
    
    if (realservo >=3000 && realservo < 3180){
      int servo3 = realservo;
      servo3 = map(servo3, 3000, 3180,0,180);
      myservo3.write(servo3);
      Serial.println("servo 3 On");
      delay(10);
    }
    if (realservo >=4000 && realservo < 4180){
      int servo4 = realservo;
      servo4 = map(servo4, 4000, 4180,0,180);
      myservo4.write(servo4);
      Serial.println("servo 4 On");
      delay(10);
    }
    
    if (realservo >=5000 && realservo < 5180){
      int servo5 = realservo;
      servo5 = map(servo5, 5000, 5180,0,180);
      myservo5.write(servo5);
      Serial.println("servo 5 On");
      delay(10);
    }
    
    if (realservo >=6000 && realservo < 6180){
      int servo6 = realservo;
      servo6 = map(servo6, 6000, 6180,0,180);
      myservo6.write(servo6);
      Serial.println("servo 6 On");
      delay(10);
    }

}}

Un saludo y gracias.

Que tipo de bluetooth y modelo para Arduino es?

Hola @segiotas73, bienvenido al foro!!

Te voy a pedir que usando tags de imágenes edites tu post incial para que las imágenes se puedan ver directamente.
Copia en un archivo de texto las direcciones web de las dos fotos que ya tienes adjuntadas. Boton derecho del mouse, copiar direccion de la imagen.
Luego debes editar tu post y entonces ve a More (abajo derecha) y luego Modify. Ya estas en modo edición.
Ahora vas al ícono junto al eslabón (la pantalla). Corresponde al tag de imágenes.
Click ahi y luego copia el primer URL desde la pagina de texto y luego INSERT.
Repito para el otro link

Ambas fotos se verán asi que dale Enviar o POST y ya esta.

Yo he trabajado con Bluetooth, moviendo motores y encendiendo leds, recibiendo y enviando datos, lo tengo bastante aclarado como para darte una mano; pero aún no entiendo qué es lo que quieres hacer..

Trata de juntar el código como te parezca correcto y súbelo para tratar de encontrar posibles errores, o trata de explicarte mejor que ya me perdí entre tanto texto! jaja

Lo que te convendría hacer es enviar una cadena de datos (como probablemente haces), con los valores numéricos y a su vez los de texto.. (a menos que tengas botones separados).

Yo lo que hice fué crear un mecánum (( 4WD 100mm Mecanum Wheel Learning Arduino Kit C009 - YouTube )) con 4 motores que se maneja con el acelerómetro del celular y algunos botones; no uso AppInventor, si no que yo programo en plano el Android; pero tiene el mismo fin.

Para lograr enviar los datos del acelerómetro e identificar si eran en la coordenada X o Y del celular, enviaba una cadena algo así: "~Y50" en donde "~" indica el comienzo de la cadena, "Y" el eje a mover (X o Y), "50" el valor real del acelerómetro.. Por lo tanto, el arduino recibía una cadena, por ejemplo: "~Y50~X25", y a través de un mapeo y lectura byte per byte en el sketch, lograba que el arduino, en este ejemplo, fuera en diagonal..

Espero haber ayudado en algo, y si amplías tu información trataré de ayudarte aún más