#define be 18
#define be2 5
#define bs2 17
#define bs 16
#define led1G 14
#define led2G 27
#define led1R 12
#define led2R 26
bool sbe = 0, sbe2 = 0, sbs = 0, sbs2 = 0, s = 0, d = 0;
int subindo = 0, descendo = 0;
void setup(){
pinMode(led1G, OUTPUT);
pinMode(led1R, OUTPUT);
pinMode(led2G, OUTPUT);
pinMode(led2R, OUTPUT);
pinMode(led1G, OUTPUT);
pinMode(be, INPUT);
pinMode(be2, INPUT);
pinMode(bs2, INPUT);
pinMode(bs, INPUT);
Serial.begin(115200);
Serial.println("iniciando...");
}
void loop(){
if(digitalRead(be) == LOW && digitalRead(bs) == LOW){
away();
}
if(digitalRead(be) == HIGH && digitalRead(bs) == LOW){
delay(20);
sub();
sbe = 1;
}
if(sbe == 1){
sub();
if(digitalRead(bs) == HIGH && sbe == 1){
alarme();
}
}
if(sbe == 1 && digitalRead(be2) == HIGH){
delay(20);
sub();
d = 1;
sbe2 = 1;
subindo++;
}
while(d == 1){
if(sbe2 == 1 && digitalRead(be2) == HIGH){
delay(20);
subindo++;
}
if(sbe2 == 1 && digitalRead(bs2) == HIGH){
delay(20);
sub();
sbs2 = 1;
}
if(sbs2 == 1 && digitalRead(bs) == HIGH){
delay(20);
sub();
subindo--;
if(subindo == 0){
delay(20);
sbe = 0;
sbe2 = 0;
sbs2 = 0;
sbs = 0;
d = 0;
break;
}
}
if(subindo < 0){
subindo = 0;
}
}
}
void alarme(){
digitalWrite(led1G, HIGH);
digitalWrite(led2G, HIGH);
digitalWrite(led1R, HIGH);
digitalWrite(led2R, HIGH);
delay(500);
digitalWrite(led1G, LOW);
digitalWrite(led2G, LOW);
digitalWrite(led1R, LOW);
digitalWrite(led2R, LOW);
delay(500);
}
void sub(){
digitalWrite(led1G, HIGH);
digitalWrite(led2G, LOW);
digitalWrite(led1R, LOW);
digitalWrite(led2R, HIGH);
}
void away(){
digitalWrite(led1G, HIGH);
digitalWrite(led2G, HIGH);
digitalWrite(led1R, LOW);
digitalWrite(led2R, LOW);
}