int sube = 25;
int trabajando = 32;
int baja = 26;
int rojo = 18;
int verde = 4;
int amarillo =13;
int arriba= 33;
int abajo= 27;
#define DIR 19
#define STEP 21
#define topgaraje 12
#define bajogaraje 14
const int stepsPerRevolution = 200;
int I = 0 ;
int valor = 0;
void setup() {
pinMode(verde, OUTPUT);
pinMode(amarillo, OUTPUT);
pinMode(rojo, OUTPUT);
pinMode(STEP, OUTPUT);
pinMode(DIR, OUTPUT);
pinMode(trabajando, INPUT_PULLUP);
pinMode(sube, INPUT_PULLUP);
pinMode(baja, INPUT_PULLUP);
pinMode(abajo, INPUT_PULLUP);
pinMode(arriba, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
if (digitalRead(sube) == LOW){
valor = 10;}
if (digitalRead(baja) == LOW){
valor = 20;}
if (digitalRead(arriba) == LOW){
valor = 1201;}
if (digitalRead(abajo) == LOW){
valor = 40;}
if (digitalRead(trabajando) == LOW){
valor = 30;}
switch (valor) {
case 10:
( I++ <25 );
digitalWrite(DIR, HIGH);
digitalWrite(STEP, LOW);
delay (1);
digitalWrite(STEP, HIGH);
digitalWrite(amarillo, HIGH);
delay(500);
digitalWrite(amarillo, LOW);
delay(500);
break;
case 20:
( I++ <25 );
digitalWrite(DIR, LOW);
digitalWrite(STEP, HIGH);
delay (1);
digitalWrite(STEP, LOW);
digitalWrite(amarillo, HIGH);
delay(500);
digitalWrite(amarillo, LOW);
delay(500);
break;
case 30:
digitalWrite(amarillo, LOW);
digitalWrite(STEP, LOW);
digitalWrite(DIR, LOW);
break;
case 1201:
digitalWrite(verde, HIGH);
if(digitalRead(baja)==LOW){
digitalWrite(DIR, LOW);
digitalWrite(STEP, HIGH);
delay (1);
digitalWrite(STEP, LOW);
digitalWrite(amarillo, HIGH);
delay(500);
digitalWrite(amarillo, LOW);
delay(500);}
if(digitalRead(abajo)==LOW){
digitalWrite(rojo, LOW);}
if(digitalRead(arriba)==HIGH){
digitalWrite(verde, LOW);}
break;
case 40:
digitalWrite(rojo, HIGH);
if(digitalRead(sube)==LOW){
( I++ <25 );
digitalWrite(DIR, HIGH);
digitalWrite(STEP, LOW);
delay (1);
digitalWrite(STEP, HIGH);
digitalWrite(amarillo, HIGH);
delay(500);
digitalWrite(amarillo, LOW);
delay(500);}
if(digitalRead(arriba)==LOW){
digitalWrite(verde, LOW);}
if(digitalRead(abajo)==HIGH){
digitalWrite(rojo, LOW);}
break;
default:
digitalWrite(amarillo, LOW);
digitalWrite(STEP, LOW);
digitalWrite(DIR, LOW);
break;
}
}