problema con transmisión serial por rf

Hola, estoy intentando hacer un carro a control remoto con dos arduinos, una uno como receptora y un chip atmega 328p-pu ( el chip de la arduino uno) como transmisor (aun no lo implementado por culpa del problema). todo esta bien y logro transmitir la información pero solo cuando tengo la arduino conectada a la PC (ensaye con una mega , una nano y una uno) la conecto a una fuente externa y no inicia la comunicación serial en la arduino transmisora tiene que estar conectada al PC y haber iniciado el monitor serial. de lo contrario no se inicia la comunicación serial y no prende el LED del pin TX(1).

Lo que necesito es que la comunicación serial inicie sin la necesidad de conectarlo a una PC.

dejo el código del transmisor y del receptor (este controla un puente H).

Transmisor:

int ade = 2
int atr = 3;
int L = 4;
int R = 5;


void setup()
{

 pinMode(ade, INPUT); // pines de entrada (pulsadores del control)
 pinMode(atr, INPUT);
 pinMode(L, INPUT);
 pinMode(R, INPUT);
 Serial.begin(9600);  // inicio la comunicación serial
}

void loop()
{
  
  if (digitalRead(ade) == HIGH) // si el pulsador ade es alto envía 1 lo cual es adelante en el receptor
 {
   Serial.write(1);
 } 
 
 if (digitalRead(atr) == HIGH) // lo mismo pero para atrás
 {
   Serial.write(2);
 } 
 
 if (digitalRead(L) == HIGH) // lo mismo para la izquierda
 {
   Serial.write(3);
 } 
 
 if (digitalRead(R) == HIGH) // lo mismo para la derecha
 {
   Serial.write(4);
 } 


}

Receptor:

int moAn = 8;
int moAs = 9;
int moBn = 10;
int moBs = 11;
int valo = 0;


void ade()                           // función para ir adelante

{
 digitalWrite(moAn, HIGH);
 digitalWrite(moAs, LOW);
 
 digitalWrite(moBn, HIGH);
 digitalWrite(moBs, LOW);
}

void atr()                            // función para ir atrás
{
 digitalWrite(moAn, LOW);
 digitalWrite(moAs, HIGH);
 
 digitalWrite(moBn, LOW);
 digitalWrite(moBs, HIGH);
}

void R()                                    // función para ir a la derecha
{
 digitalWrite(moAn, HIGH);
 digitalWrite(moAs, LOW); 
 
 digitalWrite(moBn, LOW);
 digitalWrite(moBs, HIGH);
}

void L()                              //función para ir a la izquierda 
{
 digitalWrite(moAn, LOW);
 digitalWrite(moAs, HIGH); 
 
 digitalWrite(moBn, HIGH);
 digitalWrite(moBs, LOW);
}

void alt()                              //función para detenerse

{
 digitalWrite(moAn, LOW);
 digitalWrite(moAs, LOW);
 
 digitalWrite(moBn, LOW);
 digitalWrite(moBs, LOW);
}


void setup()
{
Serial.begin(9600);              
pinMode(moAn, OUTPUT);  // salidas del motor A (las que se conectan a los IN del puente H 
pinMode(moAs, OUTPUT);  // no las de la salida de potencia)

pinMode(moBn, OUTPUT); // salidas del motor B 
pinMode(moBs, OUTPUT);


}

void loop() 
{
  
 valo = Serial.read(); // almaceno la lectura del serial en un variable
   
  
if (valo == 0)      // si la lectura del serial es 0 se detiene
{
  alt();
}

if (valo == 1)      // si la lectura del serial es 1 va hacia delante
{
  ade();
}

if (valo == 2)     // lo mismo para la izquierda
{
  L();
}

if (valo == 2)    // lo mismo para la derecha
{
  R();
}

}

el código es propio pero funciona puse mi mega como transmisora y mi uno como receptora y el carro se mueve pero como dije la mega, la uno o la nano no inician la comunicación serial hasta que abro el monitor serial en el PC y la idea es que sea el control remoto del carro y debe ser pequeño y no estar conectado a la PC.

utilizo 2 módulos rf de 433MHz :

El transmisor con 3 pines GND, 5V y DATA ( en esta pongo TX de la arduino) y
el receptor con 4 pines GND, 5V y 2 DATA los cuales ambos sirven (aquí pongo el RX de la arduino).

mi alternativa es comprar un modulo bluetooth ya que así la información la enviaría desde un teléfono que se que funciona (lo he visto).

entonces no se que hacer aprecio toda la ayuda y desde ya muchas gracias por leer el post

Como lo alimentas en el receptor?
Usas una batería segurametne, donde la conectas o a través de que?
Idem con el transmisor, como alimentas cuando no usas la PC

primero gracias por responder.

lo que hago es alimentar la arduino del carro con una batería usb y el receptor se alimeta del pin de 5 v de la arduino.

y el puente H con otra Batería usb (dañe un cable y solo cojo los contactos positivo y negativo de este y con eso alimento el voltaje del puente H y de los motores).

y la arduino transmisora se alimenta por otra batería usb pero cuando ya use el chip de la arduino en modo independiente (el atemga 328) lo alimentare con unas baterías recargables que me votan poco menos de 5v.

gracias de nuevo por responder

O sea que usando las baterias USB haces de cuenta como que siguiera conectado a la PC.
Vaya. Porque no funciona?
Lee con el tester entre masa y +5 de cada arduino a ver que tensión tienes con la Batería USB.

COn el tema del motor y el puente H, compartes masa con el arduino no?

gracias de nuevo y ya hice la prueba que dices y con ambas baterías los pines de 5V y gnd del arduino con el tester me da 5.08v y la otra me da 5.15v.

pero como digo todo se transmite el problema es que la arduino no inicia el serial hasta que inicio el monitor serial en el PC me pasa con todas las arduinos que tengo (excepto el atemega328 ese todavía no lo he ensayado) y intente también alimentarlas por Vin y gnd de estas aun así no da (o acaso el serial solo se inicia de esta manera con el monitor serial del PC aunque en la receptora no hace falta iniciarlo).

y en cuanto al puente H no, no comparto las tierras de la batería con la de la arduino debería ponerlas juntas aunque así funcione.

gracias nuevamente.

debes compartir la tierra del puente con el arduino sino estan flotando uno y otro.
Pero en esas condiciones dices que funciona cuando lo conectas al PC.. raro.

Las tensiones que lees estan por demás bien.
Prueba con la tierra común entre ambos. Pero repito.. resulta raro que funcione con el PC cuando estan las masas sin conectar.

Entonces unire las tierras a ver que pasa pero
Independiente a eso porque la arduino transmisora no inicia el serial si no esta conectada al PC y habro el monitor serial será un error de mi código o de la arduino. Ya que cuando incia el serial la arduino transmisora (habriendo el monitor serial en el PC) la receptora recibe la data estando conectada a una batería (de la manera que la transmisora no inicia el serial) y el carro se mueve básicamente es ese el problema no inicia el serial en la transmisora mas la receptora recibe la data cuando la transmisora si funciona.
Gracias de nuevo

Ahora miro tus códigos y lo que encuentro es que no usas librería de comunicaciones como esta

ejemplo de comunicacion

Adaptalo a tus conexiones.

Gracias intentare usar la librería ver que tal va si algo te digo como me fue muchas gracias por la ayuda.