Esclusa con Arduino UNO
Publicado por Zamora (2 intervenciones) el 25/08/2020 02:48:09
Buen día a todos
Soy nuevo con Arduino, tengo un proyecto interesante que ya se realizo pero se tiene un detalle, se tiene dos puertas, se tienen chapar electricistas y sensores magnéticos en cada uno de ellas, con dos botones se permite la apertura de las chapas, si se oprime el botón uno y la puerta dos esta cerrada permite la apertura de la puerta uno, mientras este abierta la puerta uno no permite la apertura de la puerta 2, y viceversa, esto ya esta funcionando ya que tiene este arreglo:
El problema es cuando oprimen el botón de puerta uno (libera la chapa) si la puerta no se muevo y desconecta el sensor de la puerta permite la abertura de la puerta 2.
intente
pero no sale del "WHILE" cuando se abre la puerta uno se queda dentro del ciclo, alguna idea para resolver esto?
Saludos y de antemano agradezco su ayuda.
Soy nuevo con Arduino, tengo un proyecto interesante que ya se realizo pero se tiene un detalle, se tiene dos puertas, se tienen chapar electricistas y sensores magnéticos en cada uno de ellas, con dos botones se permite la apertura de las chapas, si se oprime el botón uno y la puerta dos esta cerrada permite la apertura de la puerta uno, mientras este abierta la puerta uno no permite la apertura de la puerta 2, y viceversa, esto ya esta funcionando ya que tiene este arreglo:
1
2
3
4
5
6
7
8
if (SW_BOTON1 == 1 and SE_PUERTA2 == 1){
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
delay(2500);
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
}
El problema es cuando oprimen el botón de puerta uno (libera la chapa) si la puerta no se muevo y desconecta el sensor de la puerta permite la abertura de la puerta 2.
intente
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (SW_BOTON1 == 1 and SE_PUERTA2 == 1){
digitalWrite(8, LOW);
digitalWrite(12, HIGH);
digitalWrite(11, HIGH);
delay(2500);
digitalWrite(8, HIGH);
digitalWrite(11, LOW);
delay(2000);
while (SE_PUERTA1 == 1)
{
digitalWrite(11, HIGH);
delay(50);
digitalWrite(11, LOW);
delay(50);
if (SE_PUERTA1 == 0){
break;
}
}
}
pero no sale del "WHILE" cuando se abre la puerta uno se queda dentro del ciclo, alguna idea para resolver esto?
Saludos y de antemano agradezco su ayuda.
Valora esta pregunta


0