Reporte del examen prctico: Simulacin de un
elevador con protoboard y Arduino UNO
Reporte del examen prctico
SIMULACIN DE UN ELEVADOR CON PROTOBOARD Y ARDUINO UNO
Presentado por
Becerra Valois Edwin Jonathan
Lpez Ramrez Jess
Melndez Gonzlez Mara Teresa
Muoz Amador Pedro Ricardo
Grupo G-91
Ingeniera en Computacin
Objetivo
Implementar en una tableta de pruebas (protoboard) varios LEDs que indiquen
el funcionamiento lgico de un elevador, con ayuda de la programacin y el set
Arduino UNO
Introduccin
Un elevador o ascensor es un sistema de transporte vertical diseado para
mover personas o bienes entre diferentes niveles. Puede ser utilizado para
ascender o descender en un edificio o en una construccin subterrnea. Est
formado por partes mecnicas, elctricas y electrnicas que funcionan
conjuntamente para lograr un medio seguro de movilidad.
Para efectos prcticos se implementar el diseo lgico del
funcionamiento de un ascensor de tres pisos y una puerta sobre un protoboard.
La lgica empleada para esta implementacin es la siguiente:
Seleccionar un nmero de piso (1, 2 o 3)
Si el ascensor se encuentra en algn piso superior, tendr que bajar con
la puerta cerrada hasta el piso donde se llam y posteriormente se abrir la
puerta.
Si el ascensor se encuentra en algn piso inferior, tendr que subir con
la puerta cerrada hasta el piso donde se llam y posteriormente se abrir la
puerta
Materiales
Protoboard
Set Arduino UNO
Resistencias
Cables
Diodos emisores de luz (LEDs)
Push buttons
Desarrollo
Con la lgica del funcionamiento del elevador propuesto y con el conocimiento
para programarla, se genera el cdigo en el IDE propio de Arduino. El cdigo
desarrollado para el circuito fsico es el siguiente:
/**
*Programa de Examen Elevador
* Creado por alumnos de la Ingenieria en computacion
* Becerra Valois Edwin
* Melendez Gonzalez Maria Teresa
* Muoz Amador Pedro Ricardo
*Lopez Ramirez Jesus
*/
int piso1=13; //variables para entrada de los pisos
int piso2=12;
int piso3=11;
int indPiso1=10; //variables de salida
int indPiso2=9;
int indPiso3=8;
int pAbierta=7;
int pCerrada=6;
int subir=1;
int bajar=0;
int p1=0; //asignar valores a las variables
int p2=0;
int p3=0;
int tiempo=1000; //variable para el delay
int centinela=1; //bandera
void setup()
{
pinMode(piso1, INPUT); //pines de entrada en Arduino
pinMode(piso2, INPUT);
pinMode(piso3, INPUT);
pinMode(indPiso1, OUTPUT); //pines de salida
pinMode(indPiso2, OUTPUT);
pinMode(indPiso3, OUTPUT);
pinMode(pAbierta, OUTPUT);
pinMode(pCerrada, OUTPUT);
pinMode(subir, OUTPUT);
pinMode(bajar, OUTPUT);
}
void puertas() //funcin destinada a la apertura de puertas
{
digitalWrite(pAbierta, 1);
delay(2000);
digitalWrite(pAbierta, 0);
digitalWrite(pCerrada, 1);
delay(2000);
digitalWrite(pCerrada, 0);
}
void loop() // funcin cclica
{
p1=digitalRead(piso1);
p2=digitalRead(piso2);
p3=digitalRead(piso3);
/*primer piso */
if(p1 == HIGH) {
if(centinela == 2 || centinela == 3) {
digitalWrite(bajar, 1);
delay(tiempo/2);
}
if(centinela == 3) {
digitalWrite(indPiso1, 0);
//delay(tiempo);
digitalWrite(indPiso2, 1);
delay(tiempo);
digitalWrite(indPiso2, 0);
centinela=1;
}
digitalWrite(indPiso1, 1);
delay(tiempo/2);
digitalWrite(indPiso2, 0);
digitalWrite(indPiso3, 0);
delay(tiempo);
puertas();
digitalWrite(bajar, 0);
}//if primer piso
/*segundo piso */
if(p2 == HIGH) {
if(centinela == 1) {
digitalWrite(subir, 1);
delay(tiempo/2);
centinela=2;
} else if(centinela == 3){
digitalWrite(bajar, 1);
delay(tiempo/2);
centinela=2;
}
digitalWrite(indPiso2, 1);
digitalWrite(indPiso1, 0);
digitalWrite(indPiso3, 0);
delay(tiempo);
puertas();
digitalWrite(subir, 0);
digitalWrite(bajar, 0);
}//if segundo piso
/*tercer piso */
if(p3 == HIGH) {
if(centinela == 1 || centinela == 2) {
digitalWrite(subir, 1);
delay(tiempo/2);
}
if(centinela == 1) {
digitalWrite(indPiso3, 0);
delay(tiempo);
digitalWrite(indPiso2, 1);
delay(tiempo);
digitalWrite(indPiso2, 0);
centinela=3;
}
digitalWrite(indPiso3, 1);
digitalWrite(indPiso2, 0);
digitalWrite(indPiso1, 0);
delay(tiempo);
puertas();
digitalWrite(subir, 0);
}//if tercer piso
}
Con el cdigo ya generado, se procede a montar el circuito en el protoboard y
se comprueba el funcionamiento del mismo.
Orden de los LEDs
3 LEDs transparentes: Confirmacin de que se oprimi un botn
seleccionador de puerta
3 LEDs rojos: Funcionan como indicadores de las puertas (1, 2, 3)
LED rojo/ LED verde: Funcionan como indicadores de apertura o cierre
de puertas (verde: abierta, rojo: cerrada)
LED amarillo/ LED verde: Funcionan como indicadores de subida o
bajada del ascensor (amarillo: subida, verde: bajada)
En la siguiente imagen se muestra la seleccin del primer piso con el push
button. El LED indicador del piso uno y el LED indicador de puerta abierta se
encienden.
Aqu se muestra el ascensor en el primer piso, ya con la puerta cerrada
Aqu se prueba con la seleccin del segundo piso con el push button. El LED
indicador del segundo piso y el LED indicador de puerta abierta se encienden
Una vez seleccionado el segundo piso, se cierra la puerta y el LED indicador de
subida se enciende.
En el siguiente ejemplo se prueba con la seleccin del tercer piso con el push
button. El LED indicador del tercer piso y el LED de puerta abierta se
encienden
Para finalizar las pruebas, se procedi a descender desde el tercer piso hasta
el primero. El primer piso fue seleccionado con el push button. El LED indicador
del primer piso, el LED indicador de puerta cerrada y el LED indicador de
bajada se encienden
Conclusin
Gracias a la funcionalidad y la programacin del Arduino se pudo comprobar en
el circuito el funcionamiento bsico de un ascensor. Por medio de bits de
entrada generados mediante la pulsacin de los botones, se aplican las
condiciones necesarias para representar la lgica del ascensor. Solamente se
mont el circuito y se hizo la representacin con LEDs para mostrar el
comportamiento del mismo, pero ste proyecto es factible para programarlo
ms a detalle y de manera fsica con motores de paso o servomotores en una
maqueta real, igualmente controlado con Arduino.