Академический Документы
Профессиональный Документы
Культура Документы
h>
const int a = 2;///primer disp
const int b = 3;
const int c = 4;
const int d = 5;
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);
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 = digitalRead(SW1);}
display1(1);
piso=1;
if(pisoActual!=piso){
MoverAscensor(piso);
}
}else if(entrada2==HIGH){
while(entrada2==HIGH){entrada2 = digitalRead(SW2);}
display1(2);
piso=2;
if(pisoActual!=piso){
MoverAscensor(piso);
}
}else if(entrada3==HIGH){
while(entrada3==HIGH){entrada3 = digitalRead(SW3);}
display1(3);
piso=3;
if(pisoActual!=piso){
MoverAscensor(piso);
}
}else if(entrada4==HIGH){
while(entrada4==HIGH){entrada4 = digitalRead(SW4);}
display1(4);
piso=4;
if(pisoActual!=piso){
MoverAscensor(piso);
}
}else if(entrada5==HIGH){
while(entrada5==HIGH){entrada5 = digitalRead(SW5);}
display1(5);
piso=5;
if(pisoActual!=piso){
MoverAscensor(piso);
}
}
}
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);
}
}
break;
case 2:
digitalWrite(e, LOW);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
digitalWrite(h, LOW);;
break;
case 3:
digitalWrite(e, HIGH);
digitalWrite(f, HIGH);
digitalWrite(g, LOW);
digitalWrite(h, LOW);
break;
case 4:
digitalWrite(e, LOW);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
digitalWrite(h, LOW);
break;
case 5:
digitalWrite(e, HIGH);
digitalWrite(f, LOW);
digitalWrite(g, HIGH);
digitalWrite(h, LOW);
break;
}
}