salidas digitales desde mega en HIGH queriendo que estén en LOW

Hola, estoy haciendo un programa de control con BT, mediante señal de estado HIGH ó LOW, activo o apago el relé, al finalizar el programa y encender el mega, me encuentro que en vez de estar en modo reposo LOW, se ponen en HIGH los relés por defecto. Si le doy a LOW desde el bluetooth, este se apaga y si hago HIGH se activa pero no entiendo porque se ponen en HIGH nada más encender el mega.

podéis ayudarme a que el estado en inicio sea LOW?
¿Qué hago mal?
Tiene algo que ver que el modulo o placa de los relés sea con alimentación y después señal IN1, IN2, IN3, IN4?
Gracias

Lo he hecho, he invertido estados pero por defecto se activan los reles, es decir, cuando enciendo el mega y conecto el BT, tengo que dar al boton LOW para que se desconecte el relé, cuando por defecto debería estar en modo LOW.

Hola,
¿No tienes que inicializar algo para que por el serial entre el bluetooth en lugar del serial normal?
Saludos

ArduMyth:
@vffgaston. Entiendo que antes de probar coon blueooth lo está haciendo con un simple Serial() en base al código de la imagen, es decir, por consola, pues no veo el #include <SoftwareSerial.h> para usar el bluetooth.

Algo simple. quita las condiciones. y pon el estado en Alto o Bajo lo que quieras. Prueba y mira ver si funciona.
Esto lo comento porque veo que no hay un estado “apagado” del relé cuando no se cumpla ninguna condición…

De paso sería bueno que enseñaras algún diagrama de cómo lo tienes conectado, pero antes prueba a quitar las condiciones o añadir el caso que no se cumpla ninguna de ella con estado apagado y a ver que pasa :wink:

Me encantaría entenderte pero no llego a tanto, puedes explicarme de forma más sencilla?

esto es lo que tengo:

int bocina=22;  
int cabezal=23; 


void setup() {
Serial.begin(9600); 
pinMode(bocina,OUTPUT); 
pinMode(cabezal,OUTPUT);  


void loop() {
if(Serial.available()>0){ 
estado = Serial.read();   
}  

//Cabezal
if (estado=='1'){ 
digitalWrite(cabezal,HIGH);   
}
if (estado =='2'){ 
digitalWrite(cabezal,LOW);  
}  


//bocina
if (estado =='B'){ 
digitalWrite(bocina,HIGH);  
} 
if (estado =='C'){ 
digitalWrite(bocina,LOW);  
}

He añadido el #include <SoftwareSerial.h> pero sigue igual

tengo lo siguiente:

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTCcU_ZOMNqXIiCeGXGQRJTYIB4dmUBit2qWCGqKoogiEPSYK2Y

https://estore.om/wp-content/uploads/2018/07/c.jpg
con salidas digitales que se ven.

No te compliques y simplemente dentro del Setup() forzá las salidas a cero ( digitalWrite (cabezal,LOW) y digitalWrite(bocina,LOW). De ésta forma vas a arrancar el loop con los reles desconectados.

Pido disculpas, llevo un par de años fuera de onda y me he quedado como si no hubiese tocado nunca el arduino.

Lo he intentado forzando el pin a LOW pero igualmente queda activo, intentaré más adelante nuevamente, debo recuperar lo que he olvidado sobre el arduino.

Gracias