if con varias condiciones & if case

Hola comunidad, estoy realizando un trabajo principiante.
Sé que para usar dos condiciones se hace de la forma :

if( (x < 100) || (x > 400) || (y == 3)) por ejemplo.

el problema es que quiero encender un led con pulsador, y a la vez poder encenderlo por bluetooth.

const int LED=13;
const int BOTON=7;
int val;
void setup(){
pinMode(LED,OUTPUT);
pinMode(BOTON,INPUT);
}
void loop(){
val=digitalRead(BOTON);
if  (val==HIGH){
digitalWrite(LED,HIGH);
}
else { digitalWrite(LED,LOW);
}
}

como puedo juntar los if del sketch anterior con estas condiciones:

int led1 = 10;


int estado = 0;

void setup()
{
  Serial.begin(9600);
  pinMode(led1, OUTPUT);
}

void loop()
{
  if( Serial.available()>0)
  {
    estado = Serial.read();
  }
  switch( estado)
  {
    case 'I':
    digitalWrite(led1, HIGH);
    break;
  }
}

con el bluetooth solo debe encender, no apagar.

Gracias desde ya, me he dado a la tarea de buscar pero no he encontrado exactamente lo que necesito.

Hola, así logres juntar los dos no van a funcionar ya que en esta parte del código

val=digitalRead(BOTON);
if  (val==HIGH){
digitalWrite(LED,HIGH);
}
else { digitalWrite(LED,LOW);
}

Lo que está haciendo es que cuando aplastas el boton enciende el led lo sueltas lo apaga por lo que si tu lo intentas prender desde el bluetooth lo que va a pasa es que el bluetooth lo va a encender y el botón lo va a apagar, por lo que yo te recomendaria que mediante una pulsación lo enciendas y con otra lo apagues y luego con el bluetooth se pueda encender, si te parece esta idea propone como la desarrollarías para guiarte con el código. Como quieres que funcione, si podrias explicar mejor su funcionamiento.

Claro, tienes razón, porque se debe de guardar el estado anterior del pulsador, si no en el momento que no haya pulso se apagará.
En efecto, es a como tu mencionas que lo quiero realizar.

Agradezco la ayuda que me puedas brindar.

Lo que más me genera duda es como poder unir el otro if

{
  if( Serial.available()>0)
  {
    estado = Serial.read();
  }
  switch( estado)
  {
    case 'I':
    digitalWrite(led1, HIGH);
    break;
  }
}

Ya que ocupo que la condición sea o el pulsador o que presione la letra "I" en la app bluetooth

Segun entiendo tu quieres "cambiar el estado" (conmutar) del LED desde el boton o desde bluetooth sin distincion. Es decir si LED esta apago que se prenda y si esta prendido que se apague.

Una manera simple de hacerlo es asi:

digitalWrite(LED, !digitalRead(LED));

Con el boton pulsador debes tener cuidado por un efecto llamado: rebote.

Entonces creo que esto es lo que necesitas, ahora por favor analizalo como funciona y no olvides poner una resistencia pull down al botón o si quieres conectar sin esta resistencia puedes utilizar la interna del arduino pero esta es pull up por lo que tendrás que cambiar algunas partes en el código ya que con resistencia pull up mientras no esta presionado el botón detecta un 1 y cuando es presionado detecta un 0 y el boton debe estar conectado a GND en este caso. Cualquier duda no dudes en preguntar.

#define pin_Led 13

struct BTN {
	byte          
		pin;
	bool          
		estado;
	const unsigned int 
		debounce = 100;
	unsigned long 
		tiempo = 0;
};
BTN boton1;

char comando = ' ';

void setup() {
	Serial.begin(9600);
	pinMode(pin_Led, OUTPUT);
	pinMode(boton1.pin = 4, INPUT);

void loop() {
	if (Serial.available() > 0)
	{
		comando = Serial.read();
		switch (comando)
		{
		case 'I':
				digitalWrite(pin_Led, HIGH);
				break;
		}
		comando = ' ';
	}
	if (millis() - boton1.tiempo >= boton1.debounce) {
		if (digitalRead(boton1.pin)) {
			if (!boton1.estado) {
				boton1.estado = true;
				digitalWrite(pin_Led, !digitalRead(pin_Led));
			}
		}
		else {
			boton1.estado = false;
		}
		boton1.tiempo = millis();
	}

}