Ayuda para programar Sketch

Hola a todos, primero quiero aclarar que soy nuevo en esto de la robótica.
Ahora bien; estoy teniendo problemas para programar un proyecto en el que estoy (ver código). Uno de los problemas que tengo es que cuando activo la luz conectada al pin 8 se detiene y no puedo hacer mas nada. El otro inconveniente es que cuando se activa algún servo la luz no funciona, solo funciona si alimento los servos con una fuente externa (GRN,5V), aclaro que estoy alimentando la placa (Arduino UNO) con usb. y el L298n con una fuente de 12v 1,5 a.
De todas maneras los servos no funcionan o no responden al código, (el mismo código para los servos fuera de este Sketch funciona bien), no se si es por que la placa no esta alimentada de forma externa o por algún conflicto en el código.
Aclaro que de un día para otro los servos que tenía dejaron de funcionar o si mi hijo que estuvo jugando con cables, la protoboard y algún transfo, los rompió (estoy esperando unos que compré).
Necesito saber si el código está bien, si la placa aguanta todas las conexiones que le hice y si la puedo alimentar con una fuente de 12v 1,5a.
Además quiero saber como encender y apagar la luz con el control Bluetooth, ya que solo logro encender y que se desactive solo mediante este código.

El cogigo es el siguiente:

// MOTORES RUEDAS
#include <Servo.h>

//puente h
const int motor1Pin1 = 5;
const int motor1Pin2 = 7;
const int enablem1Pin3 = 6;
const int motor2Pin1 = 4;
const int motor2Pin2 = 2;
const int enablem2Pin3 = 3;
// Modulo mp3
const int luz= 8;
byte serialA;
//servos
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;

void setup() {
Serial.begin(9600);
Serial.println(serialA);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(enablem1Pin3, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
pinMode(enablem2Pin3, OUTPUT);
pinMode(luz, OUTPUT);

servo1.attach(9);
servo2.attach(10);
servo3.attach(11);
servo4.attach(12);
servo1.write(0);
servo2.write(0);
servo3.write(0);
servo4.write(90);

servo1.write(0); //posicion inicial 0 grados:
servo2.write(90); //posicion inicial 90 grados:
delay(1000);
servo1.write(90); //posicion final 90 grados:
servo2.write(0); //posicion final 0 grados:
delay(1000);

servo3.write(0);
delay(3000);
servo3.write(180);
delay(6000);

servo4.write(90);
delay(2000);
servo4.write(45);
delay(1000);
servo4.write(90);
delay(2000);
servo4.write(135);
delay(1000);
servo4.write(90);
delay(1000);

}
void loop() {
if (Serial.available() > 0) {serialA = Serial.read();
Serial.println(serialA);}
switch (serialA) {
// luces
case 'V':
digitalWrite(luz, HIGH);
delay(12000);
digitalWrite(luz, LOW); // Turn off motor
Serial.println(serialA);

// forward
case 'F':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);

break;
// left
case 'L':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, LOW);
break;
// right
case 'R':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, LOW);
digitalWrite(enablem2Pin3, HIGH);
break;
// forward left
case 'G':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// forward right
case 'I':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward left
case 'H':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward right
case 'J':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward
case 'B':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// Stop
case 'S':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, LOW);
digitalWrite(enablem2Pin3, LOW);
break;

}
}

Hola es normal que los servos no te funcionen solo los haces funcionar en el setup, es decir al encender arduino y ya nunca mas, pero ademas ni siquiera eso por el motivo que te explicaré luego. Para que tu programa sea mas funcional cambia los delays por millis(), por ejemplo en el caso de encender el led has puesto led=on y esperar 12 segundos!!! asi que durante esos 12 segundos la placa no va a hacer nada le envies lo que le envies por el puerto serie.
Respecto al cableado no se que decirte pues no has puesto esquema, pero lo mas seguro es que los servos los estes alimentando desde Arduino, esto te provoca que al consumir mas que lo que Arduino puede dar se reinicie. Debes alimentar + y - de los servos con la fuente externa y unir el - de la fuente externa a GND de Arduino, asi arduino solo da las señales al servo pero no lo alimenta. Ojo con el consumo para que la fuente externa no se quede pequeña.

Hola Dystrom y muchas gracias por tu ayuda, con respecto a la alimentación de los servos: efectivamente los alimentaba con la placa luego me di cuenta pero no tenía los servos (ya que como dije al parecer mi hijo los golpeo jugando con mis cosas).
Con respecto al otro tema, pasar delays a mils, soy novato y no se como hacerlo; podrias ayurdarme o guiarme para poder cambiarlo.

Mira esta web, sobretodo el ejemplo que hay en el punto 7

http://www.educachip.com/razones-no-usar-funcion-delay-en-arduino/

Puedes cargarlo en tu arduino y hacer pruebas, una vez lo entiendas te será facil ir cambiando los delays.

Con esa guia no podrás resolver el problema, no para tu nivel de programación (sin ofender), tal vez me equivoque y por eso intento ayudarte.

Aunque la respuesta de Dystrom es 100% correcta, la implementación de millis() no es tan intuitiva por mas que veas ese tutorial.
Tienes que pensar que millis() hará que tu código este fluyendo todo el tiempo, de modo que no funciona como lo hace ahora, que se detiene para mover un servo tantos milisegundos y luego sigue con el sigueinte, sino que moverá un servo y luego estará libre de atender todos los eventos, por lo que debes mantener la orden de mover ESE SERVO por X milisegundos.
Esta secuencia inicial no tiene importancia, no afecta en nada el código que pretendes, puedes dejarla asi.

servo1.write(0); //posicion inicial 0 grados:
servo2.write(90); //posicion inicial 90 grados:
delay(1000);
servo1.write(90); //posicion final 90 grados:
servo2.write(0); //posicion final 0 grados:
delay(1000);
  
  
servo3.write(0);  
delay(3000);
servo3.write(180);
delay(6000);
 
servo4.write(90); 
delay(2000);
servo4.write(45);
delay(1000);
servo4.write(90); 
delay(2000);
servo4.write(135);
delay(1000);
servo4.write(90); 
delay(1000);

pero acá en el loop no puedes sostener ese concepto usando delay() o detendras todo el flujo del programa
yo veo solo una acción que necesita corrección

// luces
case 'V':
           digitalWrite(luz, HIGH);
           delay(12000);
           digitalWrite(luz, LOW); // Turn off motor       
           Serial.println(serialA);

Son 12 segundos sin atender el resto de las cosas.
Veo tambien que 'V' no tiene break; asi que atención.
Aca debes usar millis()
Yo cambiaría con 'V' el estado de una variable bool y la pondría en HIGH y al terminar los 12 seg la paso a LOW y deja de ejecutarse.
haría esto

// define en globales 
unsigned long intervalo;
bool activoLuces = false;
// luces
case 'V':
                activoLuces = HIGH;  // defino activoLuces como bool activoluces = false; en globales
                intervalo = millis() + 12000;          // defino intervalo como unsigned long en globales
                digitalWrite(luz, HIGH);
                break;

luego al final del case

if (activoLuces) {
   if (millis()> intervalo) {
      activoLuces = false;
      digitalWrite(luz, LOW);
   }
]

Gracias por la ayuda bueno lo de los mills es demasiado de momento para mi seguiré estudiando el tema.
Estuve probando las modificaciones que me dijo surbyte pero el led no apaga tengo que resetear la placa cada vez que lo enciendo.
de todos modos estoy intentando otra modificación que incorpore de alguna pág. de internet. en esta sí puedo encender y pagar el led pero la conexión con la aplicación de android es mala se corta y va con retardo; ademas el led Tx de la placa parpadea y después de un rato queda encendido, antes estaba encendido todo el tiempo.
Cuando comienza a funcionar no puedo controlar nada luego de unos segundos si
aquí va el código espero me puedan ayudar Gracias!!

// MOTORES RUEDAS
#include <Servo.h>

//puente h
const int motor1Pin1 = 2;
const int motor1Pin2 = 4;
const int enablem1Pin3 = 5;
const int motor2Pin1 = 7;
const int motor2Pin2 = 8;
const int enablem2Pin3 = 6;
// Modulo mp3
const int led= 12; //
int incomingByte; // a variable to read incoming serial data into
byte serialA;

//servos
Servo servo1;// brazo izquierdo
Servo servo2;// brazo derecho
Servo servo3;// ojos
Servo servo4;//cabeza

void setup() {
Serial.begin(9600);
Serial.println(serialA);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(enablem1Pin3, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
pinMode(enablem2Pin3, OUTPUT);
pinMode(led, OUTPUT);

servo1.attach(9);
servo2.attach(10);
servo3.attach(11);
servo4.attach(3);
servo1.write(0);
servo2.write(0);
servo3.write(0);
servo4.write(90);

servo1.write(0); //posicion inicial 0 grados:
servo2.write(90); //posicion inicial 90 grados:
delay(1000);
servo1.write(90); //posicion final 90 grados:
servo2.write(0); //posicion final 0 grados:
delay(1000);

servo3.write(0);
delay(3000);
servo3.write(180); //posicion final 180 grados:
delay(6000);

servo4.write(90);//al frente
delay(2000);
servo4.write(45);//derecha
delay(1000);
servo4.write(90);//al frente
delay(2000);
servo4.write(135);// izquierda
delay(1000);
servo4.write(90);//al frente
delay(1000);

}
void loop() {
// luces
if (Serial.available() > 0) {incomingByte = Serial.read();
}

if (incomingByte == 'V') {
digitalWrite(led, HIGH);
}
if (incomingByte == 'v') {
digitalWrite(led, LOW);
}

{
if (Serial.available() > 0) {serialA = Serial.read();
Serial.println(serialA);}
switch (serialA) {

// forward
case 'F':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);

break;
// left
case 'L':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, LOW);
break;
// right
case 'R':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, LOW);
digitalWrite(enablem2Pin3, HIGH);
break;
// forward left
case 'G':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// forward right
case 'I':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward left
case 'H':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward right
case 'J':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward
case 'B':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// Stop
case 'S':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, LOW);
digitalWrite(enablem2Pin3, LOW);
break;

}
}
}

Y de nuevo pones el código sin tags.

Como que no apaga? No insertaste las modificaciones donde corresponde hacerlo.
Debería funcionar.

Perdón no se como copiar los códigos jejeje.
bueno aquí va el código no se si esta bien porque no apaga el led

// MOTORES RUEDAS
#include <Servo.h>

//puente h
const int motor1Pin1 = 5; 
const int motor1Pin2 = 7; 
const int enablem1Pin3 = 6; 
const int motor2Pin1 = 4; 
const int motor2Pin2 = 2; 
const int enablem2Pin3 = 3;
// Modulo mp3 
const int luz= 8;
unsigned long intervalo;
bool activoLuces = false;
byte serialA; 
//servos
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;

void setup() { 
Serial.begin(9600); 
Serial.println(serialA);
pinMode(motor1Pin1, OUTPUT); 
pinMode(motor1Pin2, OUTPUT); 
pinMode(enablem1Pin3, OUTPUT); 
pinMode(motor2Pin1, OUTPUT); 
pinMode(motor2Pin2, OUTPUT); 
pinMode(enablem2Pin3, OUTPUT);
pinMode(luz, OUTPUT); 
digitalWrite(luz, LOW);

servo1.attach(9);
servo2.attach(10);
servo3.attach(11);
servo4.attach(12);
servo1.write(0);
servo2.write(0);
servo3.write(0);
servo4.write(90);

servo1.write(0); //posicion inicial 0 grados:
servo2.write(90); //posicion inicial 90 grados:
delay(1000);
servo1.write(90); //posicion final 90 grados:
servo2.write(0); //posicion final 0 grados:
delay(1000);
 
 
servo3.write(0);  
delay(3000);
servo3.write(180);
delay(6000);


servo4.write(90); 
delay(2000);
servo4.write(45);
delay(1000);
servo4.write(90); 
delay(2000);
servo4.write(135);
delay(1000);
servo4.write(90); 
delay(1000);

} 
void loop() {
if (Serial.available() > 0) {serialA = Serial.read();
Serial.println(serialA);} 
switch (serialA) { 
// luces
case 'V':

activoLuces = HIGH;  // defino activoLuces como bool activoluces = false; en globales
intervalo = millis() + 12000;          // defino intervalo como unsigned long en globales
digitalWrite(luz, HIGH);
if (activoLuces) {
  if (millis()> intervalo) {
     activoLuces = false;
     digitalWrite(luz, LOW);
  }
}       

break;


// forward 
case 'F': 
digitalWrite(motor1Pin1, HIGH); 
digitalWrite(motor1Pin2, LOW); 
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH); 
digitalWrite(enablem1Pin3, HIGH); 
digitalWrite(enablem2Pin3, HIGH);

break; 
// left 
case 'L': 
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW); 
digitalWrite(motor2Pin1, HIGH); 
digitalWrite(motor2Pin2, LOW); 
digitalWrite(enablem1Pin3, HIGH); 
digitalWrite(enablem2Pin3, LOW); 
break; 
// right 
case 'R': 
digitalWrite(motor1Pin1, LOW); 
digitalWrite(motor1Pin2, HIGH); 
digitalWrite(motor2Pin1, LOW); 
digitalWrite(motor2Pin2, HIGH); 
digitalWrite(enablem1Pin3, LOW); 
digitalWrite(enablem2Pin3, HIGH); 
break;
// forward left 
case 'G': 
digitalWrite(motor1Pin1, HIGH); 
digitalWrite(motor1Pin2, LOW); 
digitalWrite(motor2Pin1, LOW); 
digitalWrite(motor2Pin2, LOW); 
digitalWrite(enablem1Pin3, HIGH); 
digitalWrite(enablem2Pin3, HIGH); 
break; 
// forward right 
case 'I': 
digitalWrite(motor1Pin1, LOW); 
digitalWrite(motor1Pin2, LOW); 
digitalWrite(motor2Pin1, LOW); 
digitalWrite(motor2Pin2, HIGH); 
digitalWrite(enablem1Pin3, HIGH); 
digitalWrite(enablem2Pin3, HIGH); 
break; 
// backward left 
case 'H': 
digitalWrite(motor1Pin1, HIGH); 
digitalWrite(motor1Pin2, HIGH); 
digitalWrite(motor2Pin1, HIGH); 
digitalWrite(motor2Pin2, LOW); 
digitalWrite(enablem1Pin3, HIGH); 
digitalWrite(enablem2Pin3, HIGH); 
break; 
// backward right
case 'J': 
digitalWrite(motor1Pin1, LOW); 
digitalWrite(motor1Pin2, HIGH); 
digitalWrite(motor2Pin1, HIGH); 
digitalWrite(motor2Pin2, HIGH); 
digitalWrite(enablem1Pin3, HIGH); 
digitalWrite(enablem2Pin3, HIGH); 
break; 
// backward 
case 'B': 
digitalWrite(motor1Pin1, LOW); 
digitalWrite(motor1Pin2, HIGH); 
digitalWrite(motor2Pin1, HIGH); 
digitalWrite(motor2Pin2, LOW); 
digitalWrite(enablem1Pin3, HIGH); 
digitalWrite(enablem2Pin3, HIGH); 
break; 
// Stop 
case 'S': 
digitalWrite(motor1Pin1, LOW); 
digitalWrite(motor1Pin2, LOW); 
digitalWrite(motor2Pin1, LOW); 
digitalWrite(motor2Pin2, LOW); 
digitalWrite(enablem1Pin3, LOW); 
digitalWrite(enablem2Pin3, LOW); 
break;

}
}

Esta claro que no has entendido donde ubicar las modificaciones.
Estan muy claras.

// MOTORES RUEDAS
#include <Servo.h>

//puente h
const int motor1Pin1 = 5; 
const int motor1Pin2 = 7; 
const int enablem1Pin3 = 6; 
const int motor2Pin1 = 4; 
const int motor2Pin2 = 2; 
const int enablem2Pin3 = 3;
// Modulo mp3 
const int luz= 8;
unsigned long intervalo;
bool activoLuces = false;
byte serialA; 
//servos
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;

void setup() { 
	Serial.begin(9600); 
	Serial.println(serialA);
	pinMode(motor1Pin1, OUTPUT); 
	pinMode(motor1Pin2, OUTPUT); 
	pinMode(enablem1Pin3, OUTPUT); 
	pinMode(motor2Pin1, OUTPUT); 
	pinMode(motor2Pin2, OUTPUT); 
	pinMode(enablem2Pin3, OUTPUT);
	pinMode(luz, OUTPUT); 
	digitalWrite(luz, LOW);

	servo1.attach(9);
	servo2.attach(10);
	servo3.attach(11);
	servo4.attach(12);
	servo1.write(0);
	servo2.write(0);
	servo3.write(0);
	servo4.write(90);

	servo1.write(0); //posicion inicial 0 grados:
	servo2.write(90); //posicion inicial 90 grados:
	delay(1000);
	servo1.write(90); //posicion final 90 grados:
	servo2.write(0); //posicion final 0 grados:
	delay(1000);
	 
	 
	servo3.write(0);  
	delay(3000);
	servo3.write(180);
	delay(6000);


	servo4.write(90); 
	delay(2000);
	servo4.write(45);
	delay(1000);
	servo4.write(90); 
	delay(2000);
	servo4.write(135);
	delay(1000);
	servo4.write(90); 
	delay(1000);
}


void loop() {
	if (Serial.available() > 0) {serialA = Serial.read();
		Serial.println(serialA);
	} 
	switch (serialA) { 
		// luces
		case 'V':
		        activoLuces = HIGH;  					// defino activoLuces como bool activoluces = false; en globales
		        intervalo = millis() + 12000;          // defino intervalo como unsigned long en globales
		        digitalWrite(luz, HIGH);
		        break;
				
				// forward 
		case 'F': 
				digitalWrite(motor1Pin1, HIGH); 
				digitalWrite(motor1Pin2, LOW); 
				digitalWrite(motor2Pin1, LOW);
				digitalWrite(motor2Pin2, HIGH); 
				digitalWrite(enablem1Pin3, HIGH); 
				digitalWrite(enablem2Pin3, HIGH);

				break; 
		// left 
		case 'L': 
				digitalWrite(motor1Pin1, HIGH);
				digitalWrite(motor1Pin2, LOW); 
				digitalWrite(motor2Pin1, HIGH); 
				digitalWrite(motor2Pin2, LOW); 
				digitalWrite(enablem1Pin3, HIGH); 
				digitalWrite(enablem2Pin3, LOW); 
				break; 
		// right 
				case 'R': 
				digitalWrite(motor1Pin1, LOW); 
				digitalWrite(motor1Pin2, HIGH); 
				digitalWrite(motor2Pin1, LOW); 
				digitalWrite(motor2Pin2, HIGH); 
				digitalWrite(enablem1Pin3, LOW); 
				digitalWrite(enablem2Pin3, HIGH); 
				break;
		// forward left 
		case 'G': 
				digitalWrite(motor1Pin1, HIGH); 
				digitalWrite(motor1Pin2, LOW); 
				digitalWrite(motor2Pin1, LOW); 
				digitalWrite(motor2Pin2, LOW); 
				digitalWrite(enablem1Pin3, HIGH); 
				digitalWrite(enablem2Pin3, HIGH); 
				break; 
		// forward right 
		case 'I': 
				digitalWrite(motor1Pin1, LOW); 
				digitalWrite(motor1Pin2, LOW); 
				digitalWrite(motor2Pin1, LOW); 
				digitalWrite(motor2Pin2, HIGH); 
				digitalWrite(enablem1Pin3, HIGH); 
				digitalWrite(enablem2Pin3, HIGH); 
				break; 
		// backward left 
		case 'H': 
				digitalWrite(motor1Pin1, HIGH); 
				digitalWrite(motor1Pin2, HIGH); 
				digitalWrite(motor2Pin1, HIGH); 
				digitalWrite(motor2Pin2, LOW); 
				digitalWrite(enablem1Pin3, HIGH); 
				digitalWrite(enablem2Pin3, HIGH); 
				break; 
		// backward right
		case 'J': 
				digitalWrite(motor1Pin1, LOW); 
				digitalWrite(motor1Pin2, HIGH); 
				digitalWrite(motor2Pin1, HIGH); 
				digitalWrite(motor2Pin2, HIGH); 
				digitalWrite(enablem1Pin3, HIGH); 
				digitalWrite(enablem2Pin3, HIGH); 
				break; 
		// backward 
		case 'B': 
				digitalWrite(motor1Pin1, LOW); 
				digitalWrite(motor1Pin2, HIGH); 
				digitalWrite(motor2Pin1, HIGH); 
				digitalWrite(motor2Pin2, LOW); 
				digitalWrite(enablem1Pin3, HIGH); 
				digitalWrite(enablem2Pin3, HIGH); 
				break; 
		// Stop 
		case 'S': 
				digitalWrite(motor1Pin1, LOW); 
				digitalWrite(motor1Pin2, LOW); 
				digitalWrite(motor2Pin1, LOW); 
				digitalWrite(motor2Pin2, LOW); 
				digitalWrite(enablem1Pin3, LOW); 
				digitalWrite(enablem2Pin3, LOW); 
				break;

	}

	if (activoLuces) {
	   if (millis()> intervalo) {
	      activoLuces = false;
	      digitalWrite(luz, LOW);
	   }
	}
}

Surbyte, la verdad la primera vez te entendí, pero no se porque no funcionó, luego leí que pusiste que la última parte la copiara al final del case por eso quedó ahí. Ahora si funciona! Muchas gracias!!!!!!

Ahora como dije estuve probando el código con una modificación en donde puedo encender y apagar el led con el mismo botón pero el problema que tiene este es que la conexión con el bluetooth va con retardo y a veces se corta. Además el pin Tx de la placa parpadea.

este es el código


// MOTORES RUEDAS
#include <Servo.h>

//puente h
const int motor1Pin1 = 2;
const int motor1Pin2 = 4;
const int enablem1Pin3 = 5;
const int motor2Pin1 = 7;
const int motor2Pin2 = 8;
const int enablem2Pin3 = 6;
// Modulo mp3
const int led= 12; //
int incomingByte; // a variable to read incoming serial data into
byte serialA;

//servos
Servo servo1;// brazo izquierdo
Servo servo2;// brazo derecho
Servo servo3;// ojos
Servo servo4;//cabeza

void setup() {
Serial.begin(9600);
Serial.println(serialA);
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(enablem1Pin3, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
pinMode(enablem2Pin3, OUTPUT);
pinMode(led, OUTPUT);

servo1.attach(9);
servo2.attach(10);
servo3.attach(11);
servo4.attach(3);
servo1.write(0);
servo2.write(0);
servo3.write(0);
servo4.write(90);

servo1.write(0); //posicion inicial 0 grados:
servo2.write(90); //posicion inicial 90 grados:
delay(1000);
servo1.write(90); //posicion final 90 grados:
servo2.write(0); //posicion final 0 grados:
delay(1000);

servo3.write(0);
delay(3000);
servo3.write(180); //posicion final 180 grados:
delay(6000);

servo4.write(90);//al frente
delay(2000);
servo4.write(45);//derecha
delay(1000);
servo4.write(90);//al frente
delay(2000);
servo4.write(135);// izquierda
delay(1000);
servo4.write(90);//al frente
delay(1000);

}
void loop() {
// luces
if (Serial.available() > 0) {incomingByte = Serial.read();
}

if (incomingByte == 'V') {
digitalWrite(led, HIGH);
}
if (incomingByte == 'v') {
digitalWrite(led, LOW);
}

{
if (Serial.available() > 0) {serialA = Serial.read();
Serial.println(serialA);}
switch (serialA) {

// forward
case 'F':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);

break;
// left
case 'L':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, LOW);
break;
// right
case 'R':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, LOW);
digitalWrite(enablem2Pin3, HIGH);
break;
// forward left
case 'G':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// forward right
case 'I':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward left
case 'H':
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward right
case 'J':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, HIGH);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// backward
case 'B':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, HIGH);
digitalWrite(enablem2Pin3, HIGH);
break;
// Stop
case 'S':
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
digitalWrite(enablem1Pin3, LOW);
digitalWrite(enablem2Pin3, LOW);
break;

}
}
}

Vaya hombre (como dicen los españoles) que llevo varios mensajes pidiéndote que postees usando tags y vienes y me pegas de nuevo sin ellos.
Que no me da ganas de ayudarte ya!!

Por otro lado compruebo que no usas el código corregido y has mezclados dos lecturas del puerto para leer el BT.
Un verdadero entuerto.

Perdóname tío (como dicen los españoles), no es que me esté quedando contigo; no pretendo hacerte perder el tiempo ni nada por el estilo.
Te comento que no entiendo mucho de nada; la verdad no entiendo ni siquiera a que te refieres con los tags(creo que es la manera de adjuntar el código), bueno la verdad es que le di a adjuntar al código pero como ves salió el cuadro y luego se copió el código.
Te pido que me tengas paciencia, estoy tratando de entender como programar, la verdad leo por ahí en foros y voy copiando cosas para hacer el código que quiero. Es mi primera vez en estos temas soy de la Ciencia Histórica y como veras no tiene nada que ver con la electrónica, estoy haciendo un esfuerzo por mi hijo que me lo pidió. No me di cuenta lo del BT estuve probando maneras de encender el led y me perdí en lo que estaba haciendo la verdad tanto copiar diferentes códigos se van quedando cosas sin borrar, todo un rollo lo mío. Estoy por debajo de lo básico...

Con respecto al código los cambios que me proporcionaste funcionan de maravilla quedó todo excelente y Gracias nuevamente.
Espero no te enfades o como decimos en Argentina no te calentés y te pido que me eches un cable.
La verdad al código corregido solo le falta un retraso en el inicio de los servos ya que comienzan a trabajar a penas se enciende el Arduino, me gustaría que empezara a mover servos un par de minutos después o incluso cuando se active el led.

intentaré copiar el código espero quede

Saludos Cordiales

[code]

// MOTORES RUEDAS
#include <Servo.h>

//puente h
const int motor1Pin1 = 5; 
const int motor1Pin2 = 7; 
const int enablem1Pin3 = 6; 
const int motor2Pin1 = 4; 
const int motor2Pin2 = 2; 
const int enablem2Pin3 = 3;
//led 
const int luz= 8;
unsigned long intervalo;
bool activoLuces = false;
byte serialA; 
//servos
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;

void setup() { 
  Serial.begin(9600); 
  Serial.println(serialA);
  pinMode(motor1Pin1, OUTPUT); 
  pinMode(motor1Pin2, OUTPUT); 
  pinMode(enablem1Pin3, OUTPUT); 
  pinMode(motor2Pin1, OUTPUT); 
  pinMode(motor2Pin2, OUTPUT); 
  pinMode(enablem2Pin3, OUTPUT);
  pinMode(luz, OUTPUT); 
  digitalWrite(luz, LOW);

  servo1.attach(9);
  servo2.attach(10);
  servo3.attach(11);
  servo4.attach(12);
  servo1.write(0);
  servo2.write(0);
  servo3.write(0);
  servo4.write(90);

  servo1.write(0); //posicion inicial 0 grados:
  servo2.write(90); //posicion inicial 90 grados:
  delay(1000);
  servo1.write(90); //posicion final 90 grados:
  servo2.write(0); //posicion final 0 grados:
  delay(1000);
   
   
  servo3.write(0);  
  delay(3000);
  servo3.write(180);
  delay(6000);


  servo4.write(90); 
  delay(2000);
  servo4.write(45);
  delay(1000);
  servo4.write(90); 
  delay(2000);
  servo4.write(135);
  delay(1000);
  servo4.write(90); 
  delay(1000);
}


void loop() {
  if (Serial.available() > 0) {serialA = Serial.read();
    Serial.println(serialA);
  } 
  switch (serialA) { 
    // luces
    case 'V':
            activoLuces = HIGH;           // defino activoLuces como bool activoluces = false; en globales
            intervalo = millis() + 12000;          // defino intervalo como unsigned long en globales
            digitalWrite(luz, HIGH);
            break;
        
        // forward 
    case 'F': 
        digitalWrite(motor1Pin1, HIGH); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW);
        digitalWrite(motor2Pin2, HIGH); 
        digitalWrite(enablem1Pin3, HIGH); 
        digitalWrite(enablem2Pin3, HIGH);

        break; 
    // left 
    case 'L': 
        digitalWrite(motor1Pin1, HIGH);
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, HIGH); 
        digitalWrite(motor2Pin2, LOW); 
        digitalWrite(enablem1Pin3, HIGH); 
        digitalWrite(enablem2Pin3, LOW); 
        break; 
    // right 
        case 'R': 
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, HIGH); 
        digitalWrite(motor2Pin1, LOW); 
        digitalWrite(motor2Pin2, HIGH); 
        digitalWrite(enablem1Pin3, LOW); 
        digitalWrite(enablem2Pin3, HIGH); 
        break;
    // forward left 
    case 'G': 
        digitalWrite(motor1Pin1, HIGH); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW); 
        digitalWrite(motor2Pin2, LOW); 
        digitalWrite(enablem1Pin3, HIGH); 
        digitalWrite(enablem2Pin3, HIGH); 
        break; 
    // forward right 
    case 'I': 
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW); 
        digitalWrite(motor2Pin2, HIGH); 
        digitalWrite(enablem1Pin3, HIGH); 
        digitalWrite(enablem2Pin3, HIGH); 
        break; 
    // backward left 
    case 'H': 
        digitalWrite(motor1Pin1, HIGH); 
        digitalWrite(motor1Pin2, HIGH); 
        digitalWrite(motor2Pin1, HIGH); 
        digitalWrite(motor2Pin2, LOW); 
        digitalWrite(enablem1Pin3, HIGH); 
        digitalWrite(enablem2Pin3, HIGH); 
        break; 
    // backward right
    case 'J': 
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, HIGH); 
        digitalWrite(motor2Pin1, HIGH); 
        digitalWrite(motor2Pin2, HIGH); 
        digitalWrite(enablem1Pin3, HIGH); 
        digitalWrite(enablem2Pin3, HIGH); 
        break; 
    // backward 
    case 'B': 
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, HIGH); 
        digitalWrite(motor2Pin1, HIGH); 
        digitalWrite(motor2Pin2, LOW); 
        digitalWrite(enablem1Pin3, HIGH); 
        digitalWrite(enablem2Pin3, HIGH); 
        break; 
    // Stop 
    case 'S': 
        digitalWrite(motor1Pin1, LOW); 
        digitalWrite(motor1Pin2, LOW); 
        digitalWrite(motor2Pin1, LOW); 
        digitalWrite(motor2Pin2, LOW); 
        digitalWrite(enablem1Pin3, LOW); 
        digitalWrite(enablem2Pin3, LOW); 
        break;

  }

  if (activoLuces) {
     if (millis()> intervalo) {
        activoLuces = false;
        digitalWrite(luz, LOW);
     }
  }
}

[/code]