[Solucionado] Relay loco al iniciar arduino y con alimentacion externa

Bueno busque bastante antes de hacer mi pregunta puesto que seguro no soy al primero que le pasa, pero la verdad no encontre o no supe buscar bien, como sea igual tengo una serie de problemas/preguntas.

Como dice el titulo, cuando inicio el arduino, 1 de los 2 rele de mi modulo titila 4 o 5 veces muy rapido, despues se prenden los dos juntos, cuando lo que quiero es justamente lo contrario y evitar este "titileo" por supuesto, este seria el primer problema.

El segundo problema es que cuando conecto una fuente de 9v 300mA al arduino, el rele entra en "titileo" constante y no arranca el arduino

Dejo mi sketch. (los controles de los rele los manejo por bt y android):

void setup(){
//
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
Serial.begin(9600);
}

void loop(){
//
digitalWrite(11, HIGH);
char dato = Serial.read();
if(dato == 'A')digitalWrite(12,HIGH);
if(dato == 'B')digitalWrite(12,LOW);
if(dato == 'B')digitalWrite(13,HIGH);
if(dato == 'A')digitalWrite(13,LOW);
}

Bueno el problema era el pin 13 que no se porque cuando inicia arduino titila, yo tenia conectado un rele ahi, lo cambie de pin y listo. Tambien al cambiar de pin y dejar de usar el 13, el arduino arranca sin dar problemas con la fuente de 9v. 300mA.

""En cuanto a que quedaban encendidos los dos rele del optoacoplado, le di la orden digitalWrite(12, HIGH);
digitalWrite(11, HIGH); y listo, cuando arranca quedan apagados.""

Bueno esto de dejarlos apagados no me funciono, pense que ya lo habia resuelto pero cuando conecte el BT ni caso me hicieron, arrancan apagados si, pero despues no prenden cuando doy la orden, que tendria que agregar para que arranquen apagados (en HIGH) pero despues respondan a mi ordenes?

Gracias.

void setup() {
//
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
Serial.begin(9600);
}

void loop() {
//

digitalWrite(12, HIGH);
digitalWrite(11, HIGH);

char dato = Serial.read();
if (dato == 'A')digitalWrite(12, HIGH);
if (dato == 'B')digitalWrite(12, LOW);
if (dato == 'B')digitalWrite(11, HIGH);
if (dato == 'A')digitalWrite(11, LOW);
}

Te he pedido por privado que uses tags, ahora lo hago público.
Este programa es incoherente mira por qué?

void setup() {
  //
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  //

  digitalWrite(12, HIGH); // no importa que hagas via Serial, siempre pin 12 estara en HIGH
  digitalWrite(11, HIGH); // no importa que hagas via Serial, siempre pin 11 estara en HIGH

  char dato = Serial.read();
  if (dato == 'A')digitalWrite(12, HIGH); 
  if (dato == 'B')digitalWrite(12, LOW);
  if (dato == 'B')digitalWrite(11, HIGH);
  if (dato == 'A')digitalWrite(11, LOW);
}

Este programa es realmente un contrasentido.
Presionas B y pones digitalWrite(12, LOW); y acto seguido la instrucción de arriba lo pone en HIGH
Presionas A y pones digitalWrite(11, LOW); y acto seguido la instrucción de arriba (bajo loop) lo pone en HIGH.
No veo como eso sea una solución.

Ante todo gracias por la atencion y si, estaba mal puesto el digitalWrite(12, HIGH); en void loop, lo pase a voidsetup y listo arrancan en high, (lo vi en el post de la lavadora que max_saeta lo corrigio) despues puedo ordenarles lo que a continuacion puse, en electricidad seria una "llave combinada por corto". El sketch me quedo asi y funciona perfecto en Arduino UNO, le agrege un boton (C) para la parada del motor, este, en el estado que esten los reles:

void setup() {
//
pinMode(12, OUTPUT); // declaro el pin12 como salida al rele in1
pinMode(11, OUTPUT); // declaro el pin 11 como salida al rele in2
digitalWrite(12, HIGH); //declaro que el pin 12 arranque en HIGH (rele apagado)
digitalWrite(11, HIGH); //declaro que el pin 11 arranque en HIGH (rele apagado)
Serial.begin(9600); // no se que es esto lo saque de un tutorial, se que es la velocidad de comunicacion al BT?
}

void loop() {
//

char dato = Serial.read(); // Lo mismo aca es de tutorial...
if (dato == 'C')digitalWrite(12, HIGH); // si presiono boton Stop (letra C) en mi aplicacion android BT el pin 12 a HIGH.
if (dato == 'C')digitalWrite(11, HIGH); // si presiono boton Stop (letra C) en mi aplicacion android BT el pin 11 a HIGH.
if (dato == 'A')digitalWrite(12, HIGH); //si presiono boton Arriba (letra A) en mi aplicacion android BT el pin 12 a HIGH.
if (dato == 'B')digitalWrite(12, LOW); //si presiono boton Arriba (letra B) en mi aplicacion android BT el pin 12 a LOW.
if (dato == 'B')digitalWrite(11, HIGH); //si presiono boton Abajo (letra B) en mi aplicacion android BT el pin 11 a HIGH.
if (dato == 'A')digitalWrite(11, LOW); //si presiono boton Abajo (letra A) en mi aplicacion android BT el pin 12 a LOW.
}

// nunca fui un 10 en clase.

Bueno este tema estaria solucionado pero ahora tengo otro problema, pase todo a una Pro Mini, ya subi el sketch al Pro Mini 5v 16mhz, hasta ahi todo bien, el blink responde asi que decidi subir mi programa, instale el BT, los reles y el power en RAW (9v.) pero la luz del Pro Mini no enciende, saque todo y deje la placa sola, tampoco encendio la luz de power por RAW... Igual lo mejor me parece qe seria abrir otro post con este problema del que no encontre respuestas en google, al menos en español :S.

"""""Bueno al parecer era problema del transformador que dejo de andar y nunca lo revise confiado que funcionaba, hasta hace unas horas venia andando perfecto, quizas mucha joda con el motor lo revente jeje, recien le puse otra fuente y la luz prendio, ahora queda armar todo de nuevo y espero que no surga ningun problema!! y si lo hay ya lo sabran jiji, graciasss."""""""""""

(nunca me aviso del mensaje privado, es mas, acabo de fijarme y no tengo ningun mensaje privado. ahora busco que es un tag para arduino ;)). ah, y gracias por la primer clase explicando tx y rx.