// DECLARACION DE CASE//
#define PISO1 0
#define SUBIENDO2 1
#define PISO2 2
#define SUBIENDO3 3
#define PISO3 4
#define BAJANDO3_1 5
#define SUBIENDO1_3 6
#define BAJANDO3_2 7
#define BAJANDO2_1 8
// DECLARACION DE ENTRADAS Y SALIDAS //
#define LUGAR1 34
#define LUGAR2 35
#define LUGAR3 32
#define NIVEL1 33
#define NIVEL2 25
#define NIVEL3 26
#define SALIDA1 21
#define SALIDA2 19
#define SUBIR 17
#define BAJAR 16
void setup() {
pinMode(LUGAR1, INPUT); //SWITCH1 PIN 34
pinMode(LUGAR2, INPUT); // SWITCH2 PIN 35
pinMode(LUGAR3, INPUT); //SWITCH3 PIN 32
pinMode(NIVEL1, INPUT); // BOTON1 PIN 33
pinMode(NIVEL2, INPUT); // BOTON2 PIN 25
pinMode(NIVEL3, INPUT); // BOTON3 PIN 26
pinMode(SALIDA1, OUTPUT); // LED ROJO PIN 21 SUBIENDO
pinMode(SALIDA2, OUTPUT); // LED VERDE PIN 19 BAJANDO
pinMode(SUBIR, OUTPUT); //SUBIR PIN 17 VIOLETA
pinMode(BAJAR, OUTPUT); //BAJAR PIN 16 AZUL
Serial.begin(115200);
}
int ascensor = PISO1;
void loop()
{
Serial.println(ascensor);
Serial.print("LUGAR1 = ");
Serial.print(digitalRead(LUGAR1));
Serial.print("LUGAR2 = ");
Serial.print(digitalRead(LUGAR2));
Serial.print("LUGAR3= ");
Serial.println(digitalRead(LUGAR3));
Serial.print("NIVEL1 = ");
Serial.print(digitalRead(NIVEL1));
Serial.print("NIVEL2 = ");
Serial.print(digitalRead(NIVEL2));
Serial.print("NIVEL3= ");
Serial.println(digitalRead(NIVEL3));
Serial.print("SALIDA1 = ");
Serial.print(digitalRead(SALIDA1));
Serial.print("SALIDA2= ");
Serial.println(digitalRead(SALIDA2));
Serial.print("SUBIR= ");
Serial.println(digitalRead(SUBIR));
Serial.print("BAJAR= ");
Serial.println(digitalRead(BAJAR));
switch (ascensor)
{
case PISO1:
if (digitalRead(LUGAR1) == HIGH)
{
if (digitalRead(NIVEL1) ==HIGH)
{
if (digitalRead(LUGAR2) == HIGH)
{
if (digitalRead(NIVEL2) == HIGH)
{
ascensor = SUBIENDO2;
}
}
}
}
digitalWrite(SALIDA1, HIGH);
digitalWrite(SALIDA2, LOW);
digitalWrite(SUBIR, LOW);
digitalWrite(BAJAR, LOW);
break;
case SUBIENDO2:
if (digitalRead(LUGAR1) == LOW)
{
if (digitalRead(NIVEL1) == LOW)
{
if (digitalRead(LUGAR2) == HIGH)
{
if (digitalRead(NIVEL2) == HIGH)
{
ascensor = PISO2;
}
}
}
}
digitalWrite(SALIDA1, HIGH);
digitalWrite(SALIDA2, LOW);
digitalWrite(SUBIR, HIGH);
digitalWrite(BAJAR, LOW);
break;
case PISO2:
if (digitalRead(LUGAR2) == HIGH)
{
if (digitalRead(NIVEL2) == HIGH)
{
if (digitalRead(LUGAR3) == HIGH)
{
if (digitalRead(NIVEL3) == HIGH)
{
ascensor = SUBIENDO3;
}
}
}
}
digitalWrite(SALIDA1, HIGH);
digitalWrite(SALIDA2, LOW);
digitalWrite(SUBIR, LOW);
digitalWrite(BAJAR, LOW);
break;
case SUBIENDO3:
if (digitalRead(LUGAR2) == LOW)
{
if (digitalRead(NIVEL2) == LOW)
{
if (digitalRead(LUGAR3) == HIGH)
{
if (digitalRead(NIVEL3) == HIGH)
{
ascensor = PISO3;
}
}
}
}
digitalWrite(SALIDA1, HIGH);
digitalWrite(SALIDA2, LOW);
digitalWrite(SUBIR, HIGH);
digitalWrite(BAJAR, LOW);
break;
case PISO3:
if (digitalRead(LUGAR3) == HIGH)
{
if (digitalRead(NIVEL3) == HIGH)
{
if (digitalRead(LUGAR1) == HIGH)
{
if (digitalRead(NIVEL1) == HIGH)
{
ascensor = SUBIENDO1_3;
}
}
}
}
digitalWrite(SALIDA1, LOW);
digitalWrite(SALIDA2, HIGH);
digitalWrite(SUBIR, LOW);
digitalWrite(BAJAR, LOW);
break;
case BAJANDO3_1:
if (digitalRead(LUGAR3) == LOW)
{
if (digitalRead(NIVEL3) == LOW)
{
if (digitalRead(LUGAR1) == HIGH)
{
if (digitalRead(NIVEL1) == HIGH)
{
ascensor = BAJANDO3_2;
}
}
}
}
digitalWrite(SALIDA1, LOW);
digitalWrite(SALIDA2, HIGH);
digitalWrite(SUBIR, LOW);
digitalWrite(BAJAR, HIGH);
break;
case SUBIENDO1_3:
if (digitalRead(LUGAR1) == LOW)
{
if (digitalRead(NIVEL1) == LOW)
{
if (digitalRead(LUGAR3) == HIGH)
{
if (digitalRead(NIVEL3) == HIGH)
{
ascensor = BAJANDO3_2;
}
}
}
}
digitalWrite(SALIDA1, HIGH);
digitalWrite(SALIDA2, LOW);
digitalWrite(SUBIR, LOW);
digitalWrite(BAJAR, HIGH);
break;
case BAJANDO3_2:
if (digitalRead(LUGAR3) == LOW)
{
if (digitalRead(NIVEL3) == LOW)
{
if (digitalRead(LUGAR2) == HIGH)
{
if (digitalRead(NIVEL2) == HIGH)
{
ascensor = BAJANDO2_1;
}
}
}
}
digitalWrite(SALIDA1, LOW);
digitalWrite(SALIDA2, HIGH);
digitalWrite(SUBIR, LOW);
digitalWrite(BAJAR, HIGH);
break;
case BAJANDO2_1:
if (digitalRead(LUGAR2) == LOW)
{
if (digitalRead(NIVEL2) == LOW)
{
if (digitalRead(LUGAR1) == HIGH)
{
if (digitalRead(NIVEL1) == HIGH)
{
ascensor = PISO1;
}
}
}
}
digitalWrite(SALIDA1, LOW);
digitalWrite(SALIDA2, HIGH);
digitalWrite(SUBIR, LOW);
digitalWrite(BAJAR, HIGH);
break;
default:
ascensor = PISO1;
break;
}
delay(1000);
}