Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
EVALUACIÓN DE FIN DE BACHILLERATO
2023-2024
TEMA
MAQUETA ASCENSOR FUNCIONAL CON ARDUINO
FIP
INSTALACIONES EQUIPOS MÁQUINAS ELÉCTRICAS
MÓDULOS/ FORMATIVOS:
Electrónica Básica
Automatización y Control
Proyectos Tecnológicos
Instalaciones Eléctricas
NOMBRE DEL ESTUDIANTE
ANDRES NICOLAS ANGUASH ROJAS
DOCENTES GUÍAS:
ING. EDGAR AREVALO
LIC. JUAN SAQUINAULA
CIUDAD-PERIODO LECTIVO
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
I PARTE: RESUMEN EJECUTIVO:
1. RESUMEN:
Este proyecto presenta una maqueta de un ascensor funcional controlado por Arduino. El sistema utiliza un
servomotor para simular el movimiento del ascensor entre cuatro pisos, controlado mediante pulsadores y
finales de carrera. La pantalla LCD muestra el piso actual y el estado del [Link] el circuito se monta
en un protoboard básico .Este proyecto sirve como una introducción práctica a la automatización y control de
sistemas electromecánicos.
2. INTRODUCCIÓN:
El objetivo de este proyecto es diseñar y construir una maqueta funcional de un ascensor utilizando Arduino, que
nos permite a los estudiantes aplicar conocimientos teóricos en una aplicación práctica. El ascensor se
controla mediante pulsadores, con indicadores LED para cada piso y una pantalla LCD que muestra el estado
del acensor.
II PARTE: MEMORIA DESCRIPTIVA:
3. DESCRIPCIÓN GENERAL: Este proyecto consiste en una maqueta de un ascensor funcional con Arduino.
La maqueta simula el movimiento del ascensor entre cuatro pisos usando un servomotor. El sistema está
controlado por pulsadores que simulan la llamada del ascensor, finales de carrera que detectan la posición
del ascensor, y una pantalla LCD que muestra el piso actual y el estado del [Link] y
Funcionalidades
Microcontrolador Arduino:El Arduino Nano es el núcleo del sistema, encargado de gestionar todas las
entradas y salidas del ascensor. Es un microcontrolador basado en el ATmega328, que ofrece múltiples
pines digitales y analógicos para conectar sensores, motores y otros dispositivos. El cerebro del sistema,
encargado de recibir señales de los sensores y pulsadores, procesar la información y controlar el
movimiento del motor y la actualización de la pantalla LCD. El Arduino Nano fue seleccionado por su
tamaño compacto y su capacidad para manejar múltiples entradas y salidas digitales.
Servo Motor: Utilizado para simular el movimiento del ascensor entre los diferentes pisos. Los
servomotores son ideales para este tipo de aplicaciones debido a su precisión en el control de la posición.
Sensores de Posición (Finales de Carrera): Estos sensores son utilizados para detectar la posición del
ascensor y asegurar que se detenga correctamente en cada [Link] sensor se coloca en las posiciones
finales de cada nivel del ascensor para garantizar una parada precisa. Los finales de carrera son cruciales
para evitar que el ascensor se mueva más allá de sus límites programados.
Pulsadores: Permiten a los usuarios seleccionar el piso al que desean ir. Cada pulsador está asociado a
un piso específico y, al ser presionado, envía una señal al Arduino para iniciar el movimiento del ascensor.
Pantalla LCD: Muestra información como el piso actual del ascensor y mensajes de estado. La pantalla
LCD I2C se conecta al Arduino utilizando un bus I2C, lo que reduce la cantidad de pines [Link]
interfaz I2C permite una conexión eficiente al Arduino utilizando solo dos pines (SDA y SCL), lo que
simplifica el cableado y libera pines adicionales para otros componentes.
Utilidad
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
Este proyecto es útil tanto en el ámbito educativo como en el profesional. Para los estudiantes, ofrece una
manera práctica de aprender sobre sistemas automatizados, programación de microcontroladores y
electrónica básica. En el ámbito profesional, puede servir como prototipo para el desarrollo de sistemas de
control más complejos en edificios inteligentes.
Aplicaciones Específicas:
Edificios Inteligentes: Los ascensores automatizados son esenciales en la infraestructura de edificios inteligentes.
Integrar un sistema de control como el desarrollado en este proyecto permite la creación de ascensores eficientes,
seguros y personalizados, que pueden ser gestionados de manera remota y automática.
Sistemas de Transporte Vertical en Hospitales: Los hospitales pueden beneficiarse enormemente de ascensores
automatizados que faciliten el transporte de pacientes y equipos médicos entre pisos.
Industria y Almacenes: En entornos industriales y de almacenamiento, los ascensores automatizados pueden ser
utilizados para mover mercancías y materiales entre diferentes niveles.
Hogares Inteligentes: Un pequeño ascensor doméstico, controlado por un sistema basado en Arduino, puede ser
utilizado para transportar objetos pesados o personas con movilidad reducida entre pisos, mejorando la accesibilidad y
comodidad.
Centros Comerciales y Edificios Públicos: En centros comerciales y edificios públicos, la implementación de
ascensores inteligentes puede mejorar la experiencia del visitante, proporcionando un transporte vertical más rápido y
eficiente.
Cómo Funciona
El sistema funciona de la siguiente manera: los usuarios presionan un pulsador para seleccionar el piso al
que desean ir. El Arduino recibe esta señal y determina la dirección en la que debe moverse el ascensor. El
motor (servo motor)se activa, moviendo el ascensor hasta que un sensor de posición detecta que ha llegado
al piso seleccionado. Durante el movimiento, la pantalla LCD muestra mensajes indicando el estado del
ascensor, como "Subiendo" o "Bajando", y el piso actual. Una vez que el ascensor llega al piso deseado, el
motor se detiene y la pantalla LCD actualiza la información del piso.
Bibliografía
Arduino Project Handbook: 25 Practical Projects to Get You Started por Mark Geddes
Practical Electronics for Inventors por Paul Scherz y Simon Monk.
The Arduino Starter Kit Manual por Arduino.
Servo Motor Control with Arduino por Michael McRoberts.
LCD Interfacing with Arduino por John Boxall. Un tutorial en línea sobre cómo conectar y programar pantallas
LCD con Arduino, disponible en [Link].
[Link]
Geddes, M. (2023). Arduino Project Handbook: 25 Practical Projects to Get You Started. Independently Published.
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
Scherz, P., & Monk, S. (2016). Practical Electronics for Inventors. McGraw-Hill Education.
Arduino. (2022). The Arduino Starter Kit Manual. Arduino.
McRoberts, M. (2021). Servo Motor Control with Arduino. Tronixstuff.
Boxall, J. (2021). LCD Interfacing with Arduino. Arduino Tutorials.
DESCRIPCIÓN TÉCNICA:
La construcción del proyecto se realizó utilizando los siguientes componentes:
● Arduino Nano: Microcontrolador principal del sistema.
● Servomotor: Actuador que simula el movimiento del ascensor.
● Pulsadores: Para seleccionar los pisos.
● Finales de carrera: Sensores para detectar la posición del ascensor.
● Pantalla LCD I2C: Para mostrar el piso actual y el estado del ascensor.
● LEDs: Indicadores para cada piso.
● Buzzer: Emite un sonido al llegar al piso seleccionad.o.
● Cable UTP¨(10m)
● Brotoboard
●
La programación se realizó en el entorno de Arduino IDE, utilizando las bibliotecas Servo.h para
controlar el servomotor y LiquidCrystal_I2C.h para la pantalla LCD
4. GLOSARIO DE TÉRMINOS:
Wire.h:
Biblioteca utilizada para la comunicación I2C entre el Arduino y otros dispositivos, esencial para controlar
la pantalla LCD en este proyecto.
LiquidCrystal_I2C.h:
Biblioteca específica para controlar pantallas LCD a través del bus I2C, lo que facilita la conexión y el uso
de menos pines en el Arduino.
Servo.h:
Biblioteca para controlar servomotores. Permite manejar la posición del servomotor con precisión,
esencial para simular el movimiento del ascensor.
LiquidCrystal_I2C lcd(0x27, 16, 2):
Crea un objeto lcd para controlar la pantalla LCD de 16x2 caracteres con la dirección I2C 0x27.
Servo servo1:
Crea un objeto servo1 para controlar el servomotor.
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
int sen[] = {2, 3, 4, 5}:
Define los pines conectados a los finales de carrera (sensores de posición).
int pul[] = {6, 7, 8, 9}:
Define los pines conectados a los pulsadores para seleccionar los pisos.
int indicadores[] = {10, 11, 12, 13}:
Define los pines conectados a los LEDs indicadores de piso.
int buzzerPin = A0:
Define el pin conectado al buzzer.
[Link]():
Inicializa la pantalla LCD para comenzar a utilizarla.
[Link]():
Enciende la retroiluminación de la pantalla LCD.
[Link](9):
Conecta el servomotor al pin 9 del Arduino.
pinMode(pin, INPUT/OUTPUT):
Configura cada pin como entrada o salida, dependiendo de su función.
digitalRead(pin):
Lee el estado (ALTO o BAJO) de un pin de entrada.
manejarPiso(piso):
Llama a esta función para manejar el movimiento del ascensor al piso seleccionado.
digitalWrite(pin, HIGH/LOW):
Establece un pin de salida en ALTO o BAJO.
[Link](col, row):
Coloca el cursor de la LCD en la columna col y fila row especificadas.
[Link](text):
Imprime texto en la pantalla LCD en la posición del cursor actual.
tone(buzzerPin, frecuencia, duración):
Emite un sonido en el buzzer a la frecuencia y duración especificadas.
[Link](ángulo):
Mueve el servomotor al ángulo especificado.
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
III PARTE: LINEA DE ACCION:
Este proyecto se enfoca en ofrecer y crear herramientas de enseñ[Link] a nosotros los estudiantes
entender y aplicar conceptos de automatización y control, lo que es crucial para su formación en
instalaciones, equipos y máquinas eléctricas.
IV PARTE: RECURSOS UTILIZADOS:
● Arduino Nano: $10
● Servomotor: $15
● Pantalla LCD I2C: $10
● Pulsadores: $2
● Finales de carrera: $5
● LEDs: $2
● Buzzer: $1
● Protoboard y cables: $10
V PARTE: CRONOGRAMA DE ACTIVIDADES:
N° ACTIVIDADES RESPONSABLE FECHA DE FECHA DE
INICIO FINALIZACIÓN
1 Cronogramas de actividades
2 Resumen ejecutivo
3 Memoria descriptiva
4 Línea de acción
5 Recursos utilizados
6 Conclusiones recomendaciones
y anexos
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
VI PARTE: CONCLUSIONES; RECOMENDACIONES Y ANEXOS:
CONCLUSIONES:
La maqueta de ascensor funcional con Arduino es una herramienta eficaz para demostrar la aplicación de la
electrónica y la programación en la automatización de sistemas.
Este proyecto proporciona una base sólida para futuros desarrollos en sistemas automatizados y controlados por
microcontroladores.
RECOMENDACIONES:
Mejorar el diseño físico de la maqueta para una representación más realista, robusta y resistente del ascensor.
Integrar más sensores y dispositivos de seguridad para incrementar la fiabilidad del sistema.
Considerar la implementación de un sistema de control remoto para mayor comodidad y funcionalidad.(bluetooth)
ANEXOS:
Anexo 1: Diagrama de Circuito
Descripción: Diagrama esquemático del circuito utilizado en la maqueta del ascensor, mostrando la conexión
entre el Arduino, los sensores, el servomotor, el buzzer y la pantalla LCD.
Anexo 2: Código Fuente de Arduino
#include <Wire.h> // Librería para comunicación I2C
#include <LiquidCrystal_I2C.h> // Librería para controlar LCD I2C
#include <Servo.h> // Librería para controlar el servo motor
LiquidCrystal_I2C lcd(0x27, 16, 2); // Dirección 0x27 para LCD de 16x2
Servo servo1; // Servo motor
// Definición de las posiciones del servo
const int subir = 180;
const int bajar = 0;
const int detener = 90;
// Pines para los finales de carrera y pulsadores
const int sen[] = {2, 3, 4, 5}; // Pines de los finales de carrera
const int pul[] = {6, 7, 8, 9}; // Pines de los pulsadores
const int indicadores[] = {A1, A2, A3, A4}; // Pines para los indicadores
const int buzzerPin = 11; // Pin del buzzer
// Variables para controlar el estado de los sensores y pulsadores
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
int vsen[4] = {1, 1, 1, 1}; // Valores de los finales de carrera
int vpul[4] = {1, 1, 1, 1}; // Valores de los pulsadores
int actual = 1; // Piso actual
void setup() {
[Link](16, 2); // Inicia el LCD
[Link](); // Enciende la luz de fondo del LCD
[Link](0, 0); // Coloca el cursor en la primera columna, primera fila
[Link]("Elevador listo");
[Link](10); // Conecta el servo al pin 10
// Configuración de los pines de los indicadores y sensores
for (int i = 0; i < 4; i++) {
pinMode(indicadores[i], OUTPUT); // Configura los indicadores como salida
pinMode(sen[i], INPUT_PULLUP); // Configura los finales de carrera como
entrada con pull-up
pinMode(pul[i], INPUT_PULLUP); // Configura los pulsadores como entrada con
pull-up
}
pinMode(buzzerPin, OUTPUT); // Configura el buzzer como salida
delay(2000); // Espera para mostrar el mensaje de inicio
}
void loop() {
// Lee el estado de los finales de carrera y pulsadores
for (int i = 0; i < 4; i++) {
vsen[i] = digitalRead(sen[i]);
vpul[i] = digitalRead(pul[i]);
}
// Verifica si se presionó algún pulsador
for (int i = 0; i < 4; i++) {
if (vpul[i] == 0) {
manejarPiso(i);
}
}
}
// Función para manejar la lógica de cada piso
void manejarPiso(int piso) {
digitalWrite(indicadores[piso], HIGH); // Enciende el indicador del piso
[Link](13, 0);
[Link]("P" + String(piso + 1)); // Muestra el piso actual
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
if (actual == piso + 1) {
// Ya estamos en el piso
[Link](0, 1);
[Link]("Ya estas en P" + String(piso + 1));
tone(buzzerPin, 450, 250); // Emite un sonido corto con el buzzer
delay(100);
[Link](detener); // Detiene el servo
[Link](" "); // Borra el mensaje
} else {
// Mueve el elevador hacia el piso solicitado
moverElevador(piso);
}
}
// Función para mover el elevador
void moverElevador(int piso) {
// Apaga los otros indicadores de pisos
for (int i = 0; i < 4; i++) {
digitalWrite(indicadores[i], LOW);
}
// Mueve el elevador hasta llegar al piso deseado
while (vsen[piso] == 1) {
[Link](13, 0);
[Link]("P" + String(piso + 1)); // Muestra el piso actual
digitalWrite(indicadores[piso], HIGH); // Enciende el indicador del piso
delay(100);
if (piso < actual - 1) {
[Link](bajar); // Bajar el elevador
[Link](0, 1);
[Link]("Bajando...");
} else {
[Link](subir); // Subir el elevador
[Link](0, 1);
[Link]("Subiendo...");
}
[Link](" "); // Borra el mensaje anterior
vsen[piso] = digitalRead(sen[piso]); // Lee el estado del final de carrera
digitalWrite(indicadores[piso], LOW); // Apaga el indicador del piso
delay(100);
}
[Link](detener); // Detiene el servo
digitalWrite(indicadores[piso], HIGH); // Enciende el indicador del piso
actual = piso + 1; // Actualiza el piso actual
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .
[Link](0, 1);
[Link]("Ya estas en P" + String(actual));
tone(buzzerPin, 450, 250); // Emite un sonido con el buzzer
delay(100);
[Link](" "); // Borra el mensaje
}
Anexo 3: Fotografías del Proyecto
● Vista general de la maqueta del ascensor.
● Detalle de la conexión del Arduino.
● Pantalla LCD mostrando el estado del ascensor.
Colegio de Bachillerato Técnico
Daniel Córdova Toral” .