TecnoAstro

TECNOLOGÍA
Arduino
Proyectos con Arduino
Robótica cableada

Otros proyectos
Electrónica

Reciclaje
Proyecto (memoria) 
Tecnología Industrial
Enlaces tecnología
Informática
Enlaces informática

ASTRONOMÍA
Observaciones
Prácticas
Enlaces astronomía

FOTOGRAFÍA

EVENTOS DE CIENCIA (PROYECTOS)
Máquinas en Acción
Microrrobots y ...
Taller de Galileo ...
Tecnología Basura

Comentarios y sugerencias

ASCENSOR
  Estructura Circuito Diagrama de flujo Programa
  
// ASCENSOR

const int ROJO=13; // LED ROJO = ASCENSOR OCUPADO
const int VERDE=12; // LED VERDE = ASCENSOR LIBRE

const int P1 = 8; // PULSADOR PRIMER PISO
const int P2 = 7; // PULSADOR SEGUNDO PISO
const int P3 = 6; // PULSADOR TERCER PISO

const int S1 = 11; // SENSOR PRIMER PISO
const int S2 = 10; // SENSOR SEGUNDO PISO
const int S3= 9; // SENSOR TERCER PISO

const int MOTOR=5;  // ARRANQUE Y PARADA DEL MOTOR
const int MOTORPIN2=4;
const int MOTORPIN7=3;

int piso;     // VARIABLE QUE IDENTIFICA EL PISO EN EL QUE ESTÁ EL ASCENSOR

void setup() {
 pinMode(ROJO, OUTPUT);
 pinMode(VERDE,OUTPUT);

 pinMode(P1,INPUT);
 pinMode(P2,INPUT);
 pinMode(P3,INPUT);

 pinMode(S1,INPUT);
 pinMode(S2,INPUT);
 pinMode(S3,INPUT);

 pinMode(MOTOR, OUTPUT);
 pinMode(MOTORPIN2, OUTPUT);
 pinMode(MOTORPIN7, OUTPUT);
 
  while(digitalRead(S1) == LOW){     // INICIALMENTE EL ASCENSOR SE LLEVA AL PISO
  bajar();
  }    
  piso = 1;
  }

void loop(){
 digitalWrite(MOTOR, LOW);           // EL MOTOR PARA
 digitalWrite(ROJO,LOW);
 digitalWrite(VERDE,HIGH);            // ASCENSOR LIBRE
 
 int pulsador_1 = digitalRead(P1);
 int pulsador_2 = digitalRead(P2);
 int pulsador_3 = digitalRead(P3);
 
 if (pulsador_3 == HIGH){
   while(digitalRead(S3) == LOW){      // SUBE MIENTRAS EL ASCENSOR NO HA LLEGADO AL TERCER PISO
     subir();
    }
  piso = 3;
  }

 if (pulsador_2 == HIGH && piso < 2){
   while(digitalRead(S2) == LOW){     // SUBE MIENTRAS EL ASCENSOR NO HA LLEGADO AL SEGUNDO PISO
    subir();
    }
  piso = 2;
  }

 if (pulsador_2 == HIGH && piso > 2){
   while(digitalRead(S2) == LOW){       // BAJA MIENTRAS EL ASCENSOR NO HA LLEGADO AL SEGUNDO PISO
    bajar();
    }
  piso = 2;
  }

 if (pulsador_1 == HIGH){
   while(digitalRead(S1) == LOW){     // BAJA MIENTRAS EL ASCENSOR NO HA LLEGADO AL PRIMER PISO
   bajar();
   }  
  piso = 1;
  }
}
   
void bajar(){
   digitalWrite(ROJO,HIGH);        // ASCENSOR OCUPADO
   digitalWrite(VERDE,LOW);
         
   digitalWrite(MOTOR, HIGH);      // EL MOTOR ARRANCA
   digitalWrite(MOTORPIN2, LOW);   // EL ASCENSOR BAJA
   digitalWrite(MOTORPIN7,HIGH);   // EL ASCENSOR BAJA
  }

void subir(){
   digitalWrite(ROJO,HIGH);        // ASCENSOR OCUPADO
   digitalWrite(VERDE,LOW);
       
   digitalWrite(MOTOR,HIGH);      // EL MOTOR ARRANCA
   digitalWrite(MOTORPIN2, HIGH); // EL ASCENSOR SUBE
   digitalWrite(MOTORPIN7, LOW);  // EL ASCENSOR SUBE
  }