int Buup = 6;
int Budp = 5;
int Bbup = 4;
int Bbdp = 3;
int Bep = 8;
int Sup = 10;
int Sbp = 9;
int Buu, Bud, Bbu, Bbd, Be, Su, Sb;
int redLED = 12;
int greenLED = 13;
int atKitchenLED = 52;
int atDinningLED = 50;
void setup()
{
Serial.begin(9600);
pinMode(Buup, INPUT_PULLUP);
pinMode(Budp, INPUT_PULLUP);
pinMode(Bbup, INPUT_PULLUP);
pinMode(Bbdp, INPUT_PULLUP);
pinMode(Bep, INPUT_PULLUP);
pinMode(Sup, INPUT_PULLUP);
pinMode(Sbp, INPUT_PULLUP);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(atKitchenLED, OUTPUT);
pinMode(atDinningLED, OUTPUT);
}
void loop()
{
Buu = !digitalRead(Buup);
Bud = !digitalRead(Budp);
Bbu = !digitalRead(Bbup);
Bbd = !digitalRead(Bbdp);
Be = !digitalRead(Bep);
Su = !digitalRead(Sup);
Sb = !digitalRead(Sbp);
if(Su == 1)
{
Serial.println(0);
digitalWrite(atDinningLED, HIGH);
delay(500);
}
else
{
digitalWrite(atDinningLED, LOW);
}
if(Sb == 1)
{
//Serial.println(1);
digitalWrite(atKitchenLED, HIGH);
}
else
{
digitalWrite(atKitchenLED, LOW);
}
if(!Su && (Bbu == 1 || Buu == 1) && (Be == 0) && Su == 0)//if any up pb was pressed and,up sensor was not activated
{
digitalWrite(redLED, HIGH);//climbing
delay(5000);
Su = 1;
}
else
{
if(Be == 0)//emergency not pressed
{
if(!Sb)//Not in the bottom floor
{
if((Buu == 0) && (Bbu == 0)) //Upward pushbuttons in up or bottom floors were not pressed
{
if(Bud == 1 || Bbd == 1) //Downward pushbutton in up or bottom floors was pressed
{
digitalWrite(greenLED, HIGH);
}
else
{
digitalWrite(greenLED, LOW);
digitalWrite(redLED, LOW);
}
}
}
}
}
digitalWrite(greenLED, LOW);
digitalWrite(redLED, LOW);
}
Bottom Floor's Pushbuttons
Upper Floor's Pushbuttons
Upper floor state
Bottom floor state
Emergency
Climbing
Downing
at Kitchen
at Dinning