#include const int const int const int const int a = 2;///primer disp b = 3; c = 4; d = 5; const const const const i
Views 203 Downloads 71 File size 21KB
#include const int const int const int const int
a = 2;///primer disp b = 3; c = 4; d = 5;
const const const const
int int int int
e f g h
const const const const const const
int int int int int int
SW1 = SW2 = SW3 = SW4 = SW5 = CNY70
= = = =
6;/// segundo disp 7; 8; 9; A0; ///SW ---->> Significa interruptor piso 1 A1; A2; A3; A4; = A5;
const int Subir = 13; const int Bajar = 12; int int int int int int int
entrada1 = 0; ///declaro las variables de entrada digital entrada2 = 0; entrada3 = 0; entrada4 = 0; entrada5 = 0; pisoActual = 0; piso = pisoActual;
int sensor = 0;
//declaro la variable del
sensor
void setup() { Serial.begin(4800); pinMode(a, OUTPUT);//// declaro los pines a,b,c,d,etc como salidas pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(h, OUTPUT); pinMode(Subir, OUTPUT); pinMode(Bajar, OUTPUT); pinMode(SW1, pinMode(SW2, pinMode(SW3, pinMode(SW4, pinMode(SW5,
INPUT); //// declaro los SWcomo entradas INPUT); INPUT); INPUT); INPUT);
pinMode(CNY70, INPUT); //declaro en pin A5(CNY70) como entrada digitalWrite(Subir, LOW); digitalWrite(Bajar, LOW); Serial.println(EEPROM.read(0)); } void loop() { if(EEPROM.read(0)==255){
pisoActual=1; piso=1; EEPROM.write(0,1); display1(pisoActual); display2(pisoActual); Serial.println(EEPROM.read(0)); }else{ display1(pisoActual); display2(pisoActual); } entrada1 = digitalRead(SW1);//// Asigno los sw a las variables entrada y le digo que las lea como 1 y 0 entrada2 = digitalRead(SW2); entrada3 = digitalRead(SW3); entrada4 = digitalRead(SW4); entrada5 = digitalRead(SW5); if(entrada1==HIGH){ while(entrada1==HIGH){entrada1 display1(1); piso=1; if(pisoActual!=piso){ MoverAscensor(piso); } }else if(entrada2==HIGH){ while(entrada2==HIGH){entrada2 display1(2); piso=2; if(pisoActual!=piso){ MoverAscensor(piso); } }else if(entrada3==HIGH){ while(entrada3==HIGH){entrada3 display1(3); piso=3; if(pisoActual!=piso){ MoverAscensor(piso); } }else if(entrada4==HIGH){ while(entrada4==HIGH){entrada4 display1(4); piso=4; if(pisoActual!=piso){ MoverAscensor(piso); } }else if(entrada5==HIGH){ while(entrada5==HIGH){entrada5 display1(5); piso=5; if(pisoActual!=piso){ MoverAscensor(piso); } }
= digitalRead(SW1);}
= digitalRead(SW2);}
= digitalRead(SW3);}
= digitalRead(SW4);}
= digitalRead(SW5);}
} int pisoSubir=0; int i = 0; void MoverAscensor(int nuevoPiso){ pisoSubir = nuevoPiso - pisoActual; // + + + "-" +
Serial.print("Me movere "); Serial.print(pisoSubir); Serial.println(" pisos."); if(nuevoPiso > pisoActual){ digitalWrite(Subir, HIGH); digitalWrite(Bajar, LOW); i=0; while(i < pisoSubir){ Serial.println("Subiendo..."); sensor = digitalRead(CNY70); // Asigno a la variable sensor es estado de la entrada del CNY70 if(sensor==HIGH){ //while(digitalRead(CNY70)==HIGH){} pisoActual++; EEPROM.write(0,pisoActual); i=i+1; delay(350); display2(pisoActual); } } digitalWrite(Subir, LOW); digitalWrite(Bajar, LOW); }else if(nuevoPiso < pisoActual){ digitalWrite(Subir, LOW); digitalWrite(Bajar, HIGH); i=0; while(i > pisoSubir){ Serial.println("Bajando..."); sensor = digitalRead(CNY70); // Asigno a la variable sensor es estado de la entrada del CNY70 if(sensor==HIGH){ //while(digitalRead(CNY70)==HIGH){} pisoActual--; EEPROM.write(0,pisoActual); i=i-1; delay(350); display2(pisoActual); } } digitalWrite(Subir, LOW); digitalWrite(Bajar, LOW); } } void display1(int numero) { switch (numero) { case 1: digitalWrite(d, LOW); digitalWrite(c, LOW); digitalWrite(b, LOW); digitalWrite(a, HIGH); break; case 2: digitalWrite(a, LOW); digitalWrite(b, HIGH); digitalWrite(c, LOW); digitalWrite(d, LOW);; break; case 3:
}
digitalWrite(a, digitalWrite(b, digitalWrite(c, digitalWrite(d, break; case 4: digitalWrite(a, digitalWrite(b, digitalWrite(c, digitalWrite(d, break; case 5: digitalWrite(a, digitalWrite(b, digitalWrite(c, digitalWrite(d, break;
HIGH); HIGH); LOW); LOW); LOW); LOW); HIGH); LOW); HIGH); LOW); HIGH); LOW);
} void display2(int numero) { switch (numero) { case 1: digitalWrite(e, HIGH); digitalWrite(f, LOW); digitalWrite(g, LOW); digitalWrite(h, LOW);
} }
break; case 2: digitalWrite(e, digitalWrite(f, digitalWrite(g, digitalWrite(h, break; case 3: digitalWrite(e, digitalWrite(f, digitalWrite(g, digitalWrite(h, break; case 4: digitalWrite(e, digitalWrite(f, digitalWrite(g, digitalWrite(h, break; case 5: digitalWrite(e, digitalWrite(f, digitalWrite(g, digitalWrite(h, break;
LOW); HIGH); LOW); LOW);; HIGH); HIGH); LOW); LOW); LOW); LOW); HIGH); LOW); HIGH); LOW); HIGH); LOW);