2 pulsadores a la vez, accionan una cerradura

Hola a todos me presento me llamo Jorge.

Llevo un tiempo realizando proyectos de arduino por mi cuenta, e comprado varios libros y por practicas e internet estoy aprendiendo poco a poco.

El problema que planteo es que no e sido capaz de encontrar ni en internet ni en el foro como actuar de la siguiente forma.

La idea es conseguir mediante 2 pulsadores a la vez que activemos un servo que nos abriria la cerradura de una caja. En el codigo que pondre a continuacion todo esta realizado con LEDS, unicamente esto es para averiguar si el funcionamiento me era correcto antes de llevarlo a la practica. Para mi me esta resultando mas sencillo de esta forma aprender.

La idea es si pulsas (pulsador izq) ilumina unos leds rojos izq (como señalando error) si pulsas (pulsador dch) ilumina unos leds rojos dch ( señalando error ) si pulsaras los 2 a la vez solamente se encenderian 2 leds verdes que señalizan que esta correcto y la cerradura a abierto.

El codigo esta completo a excepcion de la parte de los 2 pulsadores pues no consigo como poder realizarlo de ninguna forma.

#define LEDRI 8
#define LEDRD 10
#define LEDVI 9
#define LEDVD 11
#define LEDRBD 5
#define LEDABI 6
#define BOTONA 3
#define BOTONR 4
void setup() {

pinMode(LEDRI,OUTPUT); //LEDS ROJO IZQUIERDA GRUPO DE 3 ERROR
pinMode(LEDRD,OUTPUT); // LEDS ROJO DERECHA GRUPO DE 3 ERROR
pinMode(LEDVI,OUTPUT);// LED VERDE IZQUIERDA OK
pinMode(LEDVD,OUTPUT);// LED VERDE DERECHAOK
pinMode(LEDABI,OUTPUT); // LED AMARILLO AL LADO DEL PULSADOR AMARILLO ( MARCA CUANDO ESTA ON/OFF EL PULSADOR )
pinMode(LEDRBD,OUTPUT); // LED ROJO AL LADO DEL PULSADOR ROJO ( MARCA CUANDO ESTA ON/OFF EL PULSADOR )
pinMode(BOTONA,INPUT); // PULSADOR AMARILLO
pinMode(BOTONR,INPUT); // // PULSADOR ROJO
digitalWrite(LEDRI,LOW);
digitalWrite(LEDRD,LOW);
digitalWrite(LEDVI,LOW);
digitalWrite(LEDVD,LOW);
digitalWrite(LEDRBD,HIGH);
digitalWrite(LEDABI,HIGH);

  // put your setup code here, to run once:

}

void loop() {
  if(digitalRead(BOTONA)==HIGH)
  {
    digitalWrite(LEDABI,HIGH);
    digitalWrite(LEDRI,LOW);
    digitalWrite(LEDVI,LOW);
  }
   else
   {
    digitalWrite(LEDABI,LOW);
    digitalWrite(LEDRI,HIGH);
    digitalWrite(LEDVI,LOW); 
  }
  if(digitalRead(BOTONR)==HIGH)
  {
    digitalWrite(LEDRBD,HIGH);
    digitalWrite(LEDRD,LOW);
    digitalWrite(LEDVD,LOW);
  }
   else
   {
    digitalWrite(LEDRBD,LOW);
    digitalWrite(LEDRD,HIGH);
    digitalWrite(LEDVD,LOW); 
  }
  // put your main code here, to run repeatedly:
if ( (BOTONR == LOW) || (BOTONA == LOW) )

{digitalWrite(LEDABI,LOW);
    digitalWrite(LEDRI,LOW);
    digitalWrite(LEDVI,HIGH);
    digitalWrite(LEDRBD,LOW);
    digitalWrite(LEDRD,LOW);
    digitalWrite(LEDVD,HIGH); 
}
}

Espero no haber errado en donde e puesto el post, y pido disculpas si es asi. Poco a poco ire aprendiendo y solo consultare cuando ya no vea una salida.
Gracias a toda la comunidad y en un futuro no muy lejano me gustaria aportar y ayudar a todo el que lo necesite

Para comprobar si estan ambos pulsadores apretados estás usando

if ( (BOTONR == LOW) || (BOTONA == LOW) )

|| significa OR
&& significa and
Entonces deberias usar

if ( (BOTONR == LOW) && (BOTONA == LOW) )

Entonces se ejecutará lo siguiente sólo si ambos pulsadores están en LOW

Lo extraño en tu código es que primero comprobás cada pulsador comparando con HIGH pero para comprobar ambos a la vez comparás con LOW. Hay algo que no termina de cerrarme ahi. Cómo está conectados los pulsadores? Los podrías declarar como Pullup entonces comparás siempre con LOW.

Hola Pablo

he intentado con el codigo que me has dicho pero tampoco funciona, incluso e quitado todo el codigo y dejado este para ver si funcionaba aunque fuera los dos pulsadores a la vez y se encendian los pilotos verdes, pero nada.

Nose si es que estoy pensando en algo imposible,,, pero no veo tan descabellado hacer una secuencia que dos pulsadores deban estar pulsados a la vez, para poder accionar un par de salidas.

Nose si alguien mas puede ayudarme o decirme algo. Tampoco se si he escrito el hilo en el sitio adecuado ( quiero decir dentro del foro en el tema que toque para que sea mas visible a mas personas )

Agradezco tu ayuda mucho pablo, si se te ocurre cualquier otra cosa que pudiera funcionar estoy abierto a todo por que la verdad nose como poder hacerlo

Si no funciona es porque tus pulsadores están mal cableados, lo anterior esta bien explicado. Es álgebra de Boole y esta en toda internet y todavía se sigue escribiendo, de modo que ese comentario que lo buscaste y no lo encontraste no se condice con la realidad.
Lo que no encuentras es: cosas como 2 pulsadores a la vez, accionan una cerradura lo cual es una ingenuidad buscarlo y por favor, no te ofendas, porque no es mi intención hacerlo pero cuando afirmas

El problema que planteo es que no He sido capaz de encontrar ni en Internet ni en el foro como actuar de la siguiente forma.

Los pulsadores deben estar de alguna de estas formas de conexión
Pull up
Pull down
o Input PULLUP

Dejo este link para que veas, y compares y luego nos informes como los tienes tu cableados.

hola surbyte.
Como soy nuevo en esto de arduino y seguramente sea yo el que estoy haciendo algo mal e repasado todo el cableado de la placa ( los pulsadores en concreto que comentas ) junto con el link que me adjuntastes.
Los dos pulsadores estan cableados en PULL UP y haciendo un cambio a PULL DOWN el funcionamiento lo hace al reves, es decir como toca segun descripcion de PULL DOWN aun asi sigue sin funcionar.

Cuando comente que no habia encontrado nada en internet, no era intencion de ofender a nadie, ni nada, es mas ese link que enviastes ya o habia revisado y estudiado. No era nuevo para mi, y claramente se que no puedo buscar cosas como 2 pulsadores a la vez accionan una cerradura, mi nivel de tontuna llega a unos limites y ese lo e superado.

No e querido ofender a nadie con mi pregunta, buscando una ayuda a mi problema, lei las norma del foro y e intentado arreglarmelas por mi solo pero ya a sido desesperacion y pensaba que aqui me podriais echar una mano.
De todas formas sigo sin que pueda funcionar, al pulsar los dos pulsadores a la vez no se accionan los pilotos verdes. asi que sigue habiendo algo mal, y me niego a pensar que no es posible realizarlo con arduino.

Si alguien me muestra luz lo agradezco, si estoy ofendiendo y molestando a esta comunidad de arduino cerrare el post y ya esta. No puedo decir nada mas, pero no me estoy riendo de nadie ni queriendo molestar como me esta dando la impresion de que e echo por tu comentario

Si corregiste lo que te indiqué en mi anterior post con respecto a que en un lugar lees por HIGH y en otro por LOW, hay un error de concepto. Vos querés hacer algo si pulsas el botón R , otra cosa si pulsas el botón A, y una tercera si apretás ambos. El problema básicamente es que cuando apretás ambos no lo hacés simultáneamente, siempre existe una diferencia de tiempos, tal vez milisegundos. Por otro lado cuando apretás ambos, al pasar porif(digitalRead(BOTONA)==HIGH) lo detecta como verdadero porque no estás excluyendo la otra tecla, lo mismo con la segunda. Deberías buscar otro método si no querés agregar un tercer pulsador. Tal vez cuando detectes un pulsador apretado podrías chequear por varios milisegundos si no está pulsado el otro también y así saber si es uno o dos los pulsadores activados. Podés trabajar sobre esa base y si te trabás volvé a consultar.