Está en la página 1de 4

#include <CapacitiveSensor.

h>

#define E1 10 // activa el Pin para motor


#define I1 8 // Control pin 1 para motor
#define I2 9 // Control pin 2 para motor

#define P1 2 // Control pin pulsador primera planta


#define P2 3 // Control pin pulsador segunda planta
#define P3 4 // Control pin pulsador tercera planta

CapacitiveSensor capSensor = CapacitiveSensor(6, 5); //entradas para


controlar el sensor capacitativo
int threshold = 10; //valor a partir del cual el sensor actua

const int ledPin = 7; //control pin para controlar los leds

int PULSADOR_1 = 0; //variables para controlar el estado de los


pulsadores de cada planta
int PULSADOR_2 = 0;
int PULSADOR_3 = 0;

int plantaActual=3; //definimos la planta actual donde comienza el


ascensor

void setup()
{
Serial.begin(9600);

pinMode( I1, OUTPUT);//MOTOR


pinMode( I2, OUTPUT);//MOTOR
pinMode( E1, OUTPUT);//MOTOR

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

pinMode(ledPin, OUTPUT);//LED CABINA


}
void loop()
{

// store the value reported by the sensor in a variable


long sensorValue = capSensor.capacitiveSensor(30);

Serial.println(sensorValue);
if (sensorValue > threshold) //si el valor del sensor es mayor
que el valor definido enciende los leds de la cabina
{
//enciende los leds de la cabina
digitalWrite(ledPin, HIGH);
}
// si es menor el valor leido por el sensor que el valor
definido no los enciende o los apaga
else
{
//apaga los leds de la cabina
digitalWrite(ledPin, LOW);
}

delay(10);

PULSADOR_1=digitalRead(2); //lee el estado del pin 2 asignado


para la planta primera
PULSADOR_2=digitalRead(3); //lee el estado del pin 3 asignado
para la planta segunda
PULSADOR_3=digitalRead(4); //lee el estado del pin 4 asignado
para la planta tercera

if(PULSADOR_1==HIGH) //si se pulsa el boton de la primera planta


{
if(plantaActual==2) // y la planta actual es la segunda, el
ascensor baja
{
Serial.print("PLANTA ACTUAL ES 2\n");
digitalWrite(E1, HIGH); // Activamos Motor

digitalWrite(I1, LOW); // Arrancamos para BAJAR


digitalWrite(I2, HIGH);
delay(900); //tiempo de bajada del ascensor de la planta 2 a
la planta 1

digitalWrite(E1, LOW); // Paramos Motor

plantaActual=1; //como hemos pulsado el pulsador de la planta


primera, la planta actual es la primera

}
if(plantaActual==3) //si esta la cabina en la planta tercera el
ascensor baja mas timempo
{
Serial.print("PLANTA ACTUAL ES 3\n");
digitalWrite(E1, HIGH); // Activamos Motor

digitalWrite(I1, LOW); // Arrancamos para BAJAR


digitalWrite(I2, HIGH);
delay(2200); //tiempo de bajada del ascensor de la planta 3 a
la planta 1

digitalWrite(E1, LOW); // Paramos Motor

plantaActual=1; //como hemos pulsado el pulsador de la planta


primera, la planta actual es la primera
}
}
else if(PULSADOR_2==HIGH) //si pulsamos el boton de la planta
segunda
{

if(plantaActual==1) //y la planta actual es la primera


{
Serial.print("PLANTA ACTUAL ES 1\n");
digitalWrite(E1, HIGH); // Activamos Motor
digitalWrite(I1, HIGH); // Arrancamos para SUBIR
digitalWrite(I2, LOW);
delay(1300); //tiempo para subir el ascensor de la planta 1 a
la planta 2

digitalWrite(E1, LOW); // Paramos Motor

plantaActual=2; //ahora la planta actual es la segunda

}
if(plantaActual==3) //y la planta actual es la tercera
{
Serial.print("PLANTA ACTUAL ES 3\n");
digitalWrite(E1, HIGH); // Activamos Motor

digitalWrite(I1, LOW); // Arrancamos para BAJAR


digitalWrite(I2, HIGH);
delay(800); //tiempo para bajar el ascensor de la planta 3 a
la planta 2

digitalWrite(E1, LOW); // Paramos Motor

plantaActual=2; //ahora la planta actual es la segunda


}

}
else if(PULSADOR_3==HIGH) //si pulsamos el boton de la tercera
planta
{
Serial.print("ENTRO EN PULSADOR 3 \n");
if(plantaActual==2)// y la planta actual es la segunda
{
Serial.print("PLANTA ACTUAL ES 2\n");
digitalWrite(E1, HIGH); // Activamos Motor

digitalWrite(I1, HIGH); // Arrancamos para SUBIR


digitalWrite(I2, LOW);
delay(1100); //tiempo para subir de la segunda planta a la
tercera

digitalWrite(E1, LOW); // Paramos Motor

plantaActual=3; //ahora la planta actual es la tercera

}
if(plantaActual==1) //y la planta actual es la primera
{
Serial.print("PLANTA ACTUAL ES 1\n");
digitalWrite(E1, HIGH); // Activamos Motor

digitalWrite(I1, HIGH); // Arrancamos para SUBIR


digitalWrite(I2, LOW);
delay(2000); //tiempo para subir de la primera planta a la
tercera
digitalWrite(E1, LOW); // Paramos Motor

plantaActual=3; //ahora la planta actual es la tercera


}
}

También podría gustarte