hola chicos estoy en la construcción de un ascensor de tres pisos he compilado el código y al momento de hacer las conexiones y todo funciona muy bien pero al momento de llamar en algún piso del ascensor los sensores no me están cumpliendo su función
espero me puedan ayudar
estoy ocupando un sensor de obstáculo y unas botoneras a y un motor cc de 5 volt
#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
#define S1 5 // Control pin sensor primera planta
#define S2 6 // Control pin sensor segunda planta
#define S3 7 // Control pin sensor tercera planta
const int ledPin = 11; //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 SENSOR_1 = 0; //variables para controlar el estado de los sensores de cada planta
int SENSOR_2 = 0;
int SENSOR_3 = 0;
void setup(){
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(S1, INPUT);//SENSOR
pinMode(S2, INPUT);//SENSOR
pinMode(S3, INPUT);//SENSOR
pinMode(ledPin, OUTPUT);//LED CABINA
}
void loop()
{
digitalWrite(ledPin, HIGH);
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
SENSOR_1=digitalRead(5); //lee el estado del pin 5 asignado para la planta primera
SENSOR_2=digitalRead(6); //lee el estado del pin 6 asignado para la planta segunda
SENSOR_3=digitalRead(7); //lee el estado del pin 7 asignado para la planta tercera
if(PULSADOR_1==HIGH) //si se pulsa el boton de la primera planta
{
if(SENSOR_2==HIGH) // y la planta actual es la segunda, el ascensor baja
{
digitalWrite(E1, HIGH); // Activamos Motor
digitalWrite(I1, LOW); // Arrancamos para BAJAR
digitalWrite(I2, HIGH);
if(SENSOR_1==HIGH){
digitalWrite(E1, LOW); // Paramos Motor
}
}
if(SENSOR_3==HIGH) //si esta la cabina en la planta tercera el ascensor baja mas timempo
{
digitalWrite(E1, HIGH); // Activamos Motor
digitalWrite(I1, LOW); // Arrancamos para BAJAR
digitalWrite(I2, HIGH);
if(SENSOR_1==HIGH){
digitalWrite(E1, LOW); // Paramos Motor
}
}
}
else if(PULSADOR_2==HIGH) //si pulsamos el boton de la planta segunda
{
if(SENSOR_1==HIGH) //y la planta actual es la primera
{
digitalWrite(E1, HIGH); // Activamos Motor
digitalWrite(I1, HIGH); // Arrancamos para SUBIR
digitalWrite(I2, LOW);
if(SENSOR_2==HIGH){
digitalWrite(E1, LOW); // Paramos Motor
}
}
if(SENSOR_3==HIGH) //y la planta actual es la tercera
{
digitalWrite(E1, HIGH); // Activamos Motor
digitalWrite(I1, LOW); // Arrancamos para BAJAR
digitalWrite(I2, HIGH);
if(SENSOR_2==HIGH){
digitalWrite(E1, LOW); // Paramos Motor
}
}
}
else if(PULSADOR_3==HIGH) //si pulsamos el boton de la tercera planta
{
if(SENSOR_2==HIGH)// y la planta actual es la segunda
{
digitalWrite(E1, HIGH); // Activamos Motor
digitalWrite(I1, HIGH); // Arrancamos para SUBIR
digitalWrite(I2, LOW);
if(SENSOR_3==HIGH){
digitalWrite(E1, LOW); // Paramos Motor
}
}
if(SENSOR_1==HIGH) //y la planta actual es la primera
{
digitalWrite(E1, HIGH); // Activamos Motor
digitalWrite(I1, HIGH); // Arrancamos para SUBIR
digitalWrite(I2, LOW);
if(SENSOR_3==HIGH){
digitalWrite(E1, LOW); // Paramos Motor
}
}
}
}
reflecIR-TCRT5000.pdf (164 KB)
pulsador-6mm (1).pdf (202 KB)