ASCENSOR

#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

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

#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);