Prototipo didáctico de una mesa vibradora bidireccional para el estudio de sistemas estructurales a pequeña escala

Eriván Velasco Núñez erivel79@hotmail.com
J. Alejandro Ruiz Sibaja ruizsibaja@gmail.com
Eber Alberto Godínez Domínguez eber.godinez@unach.mx
Alexis Antonio Romero Molina Estudiante I.C_ROMA@outlook.es
Facultad de Ingeniería, Universidad Autónoma de Chiapas

https://doi.org/10.31644/IMASD.23.2020.a08

Publicación: 2020-06-01

Resumen

En este artículo se describe el diseño, construcción, programación y puesta en marcha de un prototipo de mesa vibradora bidireccional para el estudio de sistemas estructurales a pequeña escala. La mesa vibradora representa parte de las herramientas didácticas complementarias en el programa de la licenciatura en Ingeniería Civil (IC) de la Facultad de Ingeniería (FI) de la Universidad Autónoma de Chiapas (UNACH), pues dentro de los conocimientos básicos y relevantes para el proceso formativo de un ingeniero civil se encuentra el estudio y entendimiento del comportamiento de sistemas estructurales sujetos a diferentes acciones. También se considera que los estudiantes ponen en juego el capital cultural inherente en ellos desarrollado de trayectorias académicas previas, así como el tránsito en la FI, cuando construyen un prototipo para incorporarlo como herramienta didáctica a la IC.

Palabras clave: Mesa vibradora bidireccional, Arduino; motores a paso, Simulación a pequeña escala, Ingeniería sísmica

Abstract

This article describes the design, construction, programming and commissioning of a prototype of a bidirectional vibrating table for the study of small-scale structural systems. The vibrating table represents part of the complementary didactic tools in the program of the degree in Civil Engineering (CI) of the Faculty of Engineering (FI) of the Autonomous University of Chiapas (UNACH), because within the basic and relevant knowledge for the training process of a civil engineer is the study and understanding of the behavior of structural systems subject to different actions. It is also considered that students put into play the cultural capital inherent in them developed from previous academic trajectories, as well as the transit in the FI, when they build a prototype to incorporate it as a didactic tool to the CI.

Keywords: Bidirectional vibrating table, Arduino; step motors, Small scale simulation, Seismic engineering

Introducción

Como lo comentan Godínez et al. (2019), la República Mexicana se ubica entre cinco placas tectónicas, por lo que está continuamente expuesta a acciones sísmicas de importancia, afectando no solamente las regiones epicentrales, sino zonas urbanas que pueden encontrarse a distancias considerables, como en el caso de los sismos que se generan en las costas de Guerrero y pueden afectar la zona centro del país. Por lo anterior, varias regiones de México se ubican en zonas de alto peligro sísmico. Tal es el caso de los estados de Chiapas y Oaxaca, dos de los estados con mayor actividad sísmica en todo el país y, donde históricamente han ocurrido daños de importancia en la infraestructura debidos a acciones sísmicas de mediana y gran magnitud (Núñez-Cornú y Ponce 1989, González et al. 2013, González et al. 2014, Godínez et al. 2019).

Producto de esto, en México se han registrado eventos de gran importancia, por ejemplo: los sismos de Manzanillo del 9 de octubre de 1995 (Mw=8.0), el de Michoacán el 19 de septiembre de 1985 (Mw=8.1), el de Tecomán del 21 de enero de 2003 (Mw=7.4), y el aún reciente sismo de Tehuantepec del 7 de septiembre de 2017 (Mw=8.2), causando pérdidas materiales y humanas de gran consideración. En todos los casos se presentaron serios daños en diferentes sistemas estructurales (SSN 2019, Godínez 2019).

La alta sismicidad de Chiapas y Oaxaca es de conocimiento general, y se puede constatar mediante la información proporcionada en el sitio de internet del Servicio Sismológico Nacional (SSN, 2019), en donde se reportan 38886 sismos del 2018-01-01 al 2019-12-08, con magnitudes variables. Se registraron 6668 sismos en Chiapas y 32218 sismos en Oaxaca.

Como lo comenta Godínez (2019), los antecedentes tanto a nivel internacional (por ejemplo: el terremoto de El Centro en el Sur de California (USA) en 1989, el de Kobe, Japón en 1995; el de Kocaeli de Turquía en 1999, el de Chile de 2010, entre otros), nacional (el sismo de Michoacán de 1985, el de Tehuantepec de 2017 y el de Axochiapan de 2017) y estatal (el sismo de Villaflores de 1995 y el de Las Choapas de 2011) han fortalecido a las ingenierías, especialmente a la sísmica y estructural, pues se desarrollan nuevos conocimientos y tecnologías. Dentro del campo experimental, los esfuerzos se enfocan en observar, analizar e interpretar los efectos de los movimientos sísmicos (o ante cualquier otro tipo de acciones) en elementos y/o estructuras reales y a escala para contar con un mejor entendimiento del comportamiento estructural. Un tema que cada día cobra mayor interés, debido a las grandes pérdidas económicas y de vidas registradas en sismos pasados, radica en el estudio analítico y/o experimental de dispositivos de control de la respuesta sísmica para el diseño original y la rehabilitación de estructuras (Soong y Spencer 2002, Tena 2003 y 2004). Todo esto, con el fin de mejorar los diseños estructurales de las construcciones sismorresistentes, para así salvaguardar la vida de sus ocupantes y su patrimonio.

En la actualidad, el estudio de sistemas estructurales en mesas vibratoria capaces de reproducir movimientos sísmicos ha permitido el desarrollo y entendimiento de nuevas tecnologías antisísmicas, así como un mejor entendimiento de sistemas tradicionales, lo cual en conjunto con la experiencia práctica, ha permitido la evolución y mejora de los reglamentos de diseño, así como las prácticas del diseño y construcción de diferentes sistemas estructurales.

A treinta y cuatro años del terremoto de 1985, que devastó la Ciudad de México ("Fundación ICA", 1988), ha habido una evolución de los reglamentos de construcción y sus respectivas normas técnicas complementarias (Tena-Colunga et al. 2009); sin embargo, queda mucho trabajo por realizar, como lo evidenciaron los severos efectos tanto en la Ciudad de México, como en varios estados del país (Chiapas, Oaxaca, Morelos), producto de los sismos del 7 y 19 de septiembre de 2017 (sismos de Tehuantepec y Axochiapan). Parte importante de los avances en materia normativa en México se logra gracias al desarrollo de proyectos experimentales, tarea en la que han contribuido la mesa vibradora del Laboratorio del Instituto de Ingeniería de la Universidad Nacional Autónoma de México (UNAM), el equipo de laboratorio del Centro Nacional de Prevención de Desastres (CENAPRED), así como equipamiento en diferentes universidades del país, como los de la Universidad Autónoma Metropolitana (UAM) o la Universidad Autónoma de Yucatán (UADY), por citar algunas. En el caso particular de las mesas vibratorias, permiten simular movimientos sísmicos de diferentes características, con el propósito de analizar y entender detalladamente el comportamiento de las estructuras en estudio, y de esta forma, realizar diseños que garanticen un nivel de seguridad adecuado ante acciones símicas intensas. Por otro lado, hoy en día, existen pocos reportes de artículos que referencien simuladores sísmicos para modelos estructurales a pequeña escala, dado que estos solamente se pueden adquirir, a costos elevados, con empresas especializadas dedicadas al desarrollo de este tipo de equipos (Coral et al. 2010).

En la Facultad de Ingeniería (FI) de la Universidad Autónoma de Chiapas (UNACH) no se cuenta con un equipo especializado para la enseñanza de algunas asignaturas clave en la licenciatura en ingeniería civil, como son: estructuras isostáticas, diseño estructural, ingeniería sísmica; o de nivel posgrado, como son: sistemas de control de la respuesta sísmica, estructuras especiales y, dinámica estructural. Mediante el equipo es posible ilustrar, de forma simple, el efecto de diferentes tipos de señales de entrada, así como el efecto en la configuración de las estructuras en planta y/o elevación (efecto de irregularidades en la respuesta estructural).

Por lo anterior, en este artículo se presentan los aspectos relevantes del diseño, construcción, programación y puesta en marcha de un prototipo de una mesa vibradora bidireccional para el estudio de sistemas estructurales a pequeña escala. Lo anterior permitirá evaluar el comportamiento estructural bajo la acción de diferentes tipos de excitaciones. Es importante mencionar que, en la etapa actual, únicamente pueden simularse señales periódicas, pero el objetivo final es que se puedan reproducir sismos registrados o generados artificialmente. Como se mencionó, la mesa vibradora también ayudaría en la formación de estudiantes en el campo del comportamiento dinámico y sísmico de estructuras, así como en áreas complementarias que son de gran importancia en los procesos de control, como son la electrónica y la programación. Sin soslayar la parte humana en la construcción de prototipos didácticos, que se considera una herramienta para la reconfiguración de capital cultural por parte de los estudiantes en su transitar por las espacios sociales de la FI. Lo anterior, como antecedente, se ilustra mediante el equipo didáctico mostrado en la figura 1, el cual fue construido por un miembro del Colegio de Ingenieros Civiles de Chiapas, tratando de mostrar, de una manera muy simple, la diferencia en la respuesta estructural conforme varía la rigidez lateral de los sistemas en estudio. En el dispositivo se colocaron elementos verticales del mismo material y sobre cada elemento, de diferente altura, se colocó un cilindro de la misma dimensión y masa. Debido a la variación en altura de cada modelo, la rigidez es variable, siendo los sistemas de menor altura los más rígidos, y los más altos más flexibles. De esta manera se logra ilustrar la diferencia entre los periodos de vibrar de cada sistema.

imagen 1

Por lo anterior, este proyecto tiene como objetivo el diseño, construcción, programación y puesta en marcha de un prototipo de mesa vibradora bidireccional para el estudio de modelos estructurales a pequeña escala. Para tal fin, se consideran las siguientes etapas:

1. Conceptualización y diseño de un prototipo de mesa vibratoria bidireccional

2. Construcción del prototipo (con un costo menor a un equipo profesional comercial).

3. Programación para la simulación de movimientos armónicos en dos direcciones.

4. Realización de pruebas de calibración por los estudiantes de la licenciatura en Ingeniería Civil (IC), donde, además, se ilustren los efectos de vibraciones sobre estructuras a pequeña escala.

Metodología y materiales

Según Hernández et al. (2010), "se denomina a los experimentos como estudios de intervención, porque un investigador genera una situación para tratar de explicar cómo afecta a quienes participan en ella en comparación con quienes no lo hacen". Hernández et al. (2010) indican que es posible experimentar con seres humanos, seres vivos y ciertos objetos.

Los experimentos manipulan tratamientos, estímulos, influencias o intervenciones (denominadas variables independientes) para observar sus efectos sobre otras variables (las dependientes) en una situación de control. Según los autores de referencia, esto se da conforme se ilustra en la figura 2.

imagen 2

En este sentido, el diseño, construcción e implementación de una mesa vibradora bidireccional, como prototipo didáctico, contribuye al estudio y entendimiento de los efectos de vibraciones en estructuras a pequeña escala en un ambiente controlado. Además, al utilizar prototipos que incorporen Arduino, actuadores como motores de corriente directa o motores paso a paso y sensores como el acelerógrafo, se considera que se podrían configurar otras habilidades y conocimientos en los estudiantes que cursan la licenciatura en IC al retomar conceptos de la matemática, programación, electrónica y la ingeniería en la construcción de un prototipo didáctico para la simulación de vibraciones, así como el conocimiento de sus repercusiones en estructuras a pequeña escala. Para el diseño y construcción del prototipo didáctico se emplearon los materiales y equipo que se indican en la tabla 1.

imagen 3

Diseño y construcción de la mesa vibradora

Para la construcción de la mesa vibradora se realizaron dos bosquejos: uno para la base (en el cual se coloca al Motor 1, fig. 3) y el otro para la estructura donde será colocado el Motor 2. En la estructura del motor 2 se fijará una pequeña plataforma de madera, para colocar sobre ella las estructuras a escala.

Para el caso de la base de la mesa se realizó el siguiente procedimiento:

1. Se cortó cada uno de los tubos con las medidas especificadas por de las dimensiones del motor a pasos y de los rieles de 35 cm.

2. Se procedió a soldar cada uno de los tubos según el bosquejo realizado.

3. Se pintó la base para evitar la corrosión y proporcionar una mejor estética.

imagen 4

Para el caso de la estructura del segundo motor a paso, el bosquejo se realizó a partir de las dimensiones de los motores a pasos y de los rieles. También se tomaron en cuenta las dimensiones de las poleas dentadas y la posición de los rieles. Con las dimensiones y posición de la plancha, se realizó una maqueta con papel cascaron para tener una idea de la misma (figura 4).

imagen 5

Teniendo la base de la mesa como referencia, y la maqueta con papel cascaron, se diseñó la base para el motor 2, considerando que debería realizar un movimiento ortogonal con respecto al realizado por el motor 1 (figura 5).

Con la finalidad de contar con una estructura liviana, y así evitar que uno de los motores se forzará demasiado, se configuró la estructura empleando acrílico.

Finalmente, se realizó el montaje integral de cada una de las partes que componen la mesa vibradora bidireccional. En la figura 6 se muestra una fotografía del conjunto, en donde se observan los diferentes componentes integrados: motores, banda dentada, tornillos, tuercas, baleros (donde se sujeta la polea dentada).

imagen 6 imagen 7

Una vez realizada la construcción de la mesa vibradora, se procedió a desarrollar la programación de un Arduino, mediante el cual se controla el giro de dos motores a paso, usando la interfaz A4988, que es un Driver que permite independizar la baja potencia que usa el Arduino con la alta potencia de los motores, y una placa fenólica para otros dispositivos, como resistencias y condensadores que evitan ruidos en la alimentación de la fuente conmutada (figura 7). En el Anexo A de este artículo se muestra el código desarrollado para la programación de los motores a paso con el Keypad.

Finalmente, en la figura 8 se muestra el prototipo terminado de la mesa vibradora bidireccional para el estudio de sistemas estructurales a pequeña escala.

imagen 8 imagen 9

Proceso para realizar la simulación

Los sistemas en los cuales la salida no afecta la acción de control que proviene de la entrada del sistema se denominan sistemas de control en lazo abierto (Ogata, 1998). Como lo comenta Ortega (1998): "en un sistema de control en lazo abierto no se mide la salida ni se realimenta para compararla con la entrada. Un ejemplo práctico es una lavadora. El remojo, el lavado y el enjuague en la lavadora operan con una base de tiempo. La máquina no mide la señal de salida, que es la limpieza de la ropa. En cualquier sistema de control en lazo abierto, la salida no se compara con la entrada de referencia. Por tanto, a cada entrada de referencia le corresponde una condición operativa fija; como resultado, la precisión del sistema depende de la calibración".

Para tal efecto, la mesa vibradora se consideraría como un sistema en lazo abierto, ya que su comportamiento dependerá únicamente de la señal de entrada. Un diagrama a bloques para tal sistema podría ser el mostrado en la figura 9.

imagen 10

La señal real de salida es la que afectará a los sistemas estructurales a pequeña escala, simulando comportamientos ante vibraciones y brindando la oportunidad de visualizar, entre otras cosas, diferencias en las propiedades dinámicas en función de la rigidez lateral del sistema considerado o zonas en que existe la posibilidad de daño estructural asociado a irregularidades en elevación. La simulación es un aporte teórico que se considera en esta propuesta, pues como lo comentan otros autores (Coral et al. 2010), en la actualidad, las mesas vibradoras son la aproximación más natural a los movimientos sísmicos (cuando cuentan con dichas capacidades). Evidentemente, dadas las limitantes de la mesa vibradora que se comenta en este estudio, el equipo tiene fines puramente académicos y su objetivo principal radica en servir como una herramienta didáctica complementaria. Un diagrama de flujo para la implementación de un modelo de simulación, en el caso de la mesa vibradora, podría ser el mostrado en la figura 10.

imagen 11

Avances y/o resultados

Se logró finalizar la primera fase, cuyo objetivo radicaba en construir una mesa vibratoria bidireccional para el estudio de sistemas estructurales a pequeña escala, como se muestra en la figura 8. Asimismo, se realizó la programación de un Arduino (figura 7), mediante el cual se controla el giro de dos motores a paso. En la etapa actual, la mesa se puede manipular en las direcciones X e Y, es decir, en el plano. No así en la dirección del eje Z (paralelo a la altura de los modelos), acción que puede implementarse a futuro mediante la aplicación de servomotores.

De igual manera, se puede controlar la velocidad mediante la programación en Arduino, ya que en éste, es posible introducir el número de pasos que se desea realice el motor.

Con el prototipo construido es posible reproducir los efectos de vibraciones sobre estructuras a escala. Posteriormente se considera la posibilidad de emular los movimientos originados por un sismo, tarea que se encuentra en desarrollo.

Como segunda fase, se realizaron ensayos de modelos a pequeña escala. Inicialmente se llevó a cabo una prueba simple empleando modelos de sistemas de un grado de libertad (figura 10a). Posteriormente, se realizaron algunas pruebas empleando un kit estructural Mola (figura 10b), mediante el cual se puede representar el sistema estructural de un edificio resuelto con base en marcos (con o sin contravientos). En ambas pruebas se pudieron ilustrar características estructurales de interés para los alumnos de la licenciatura en ingeniería civil de la facultad de ingeniería de la UNACH, como son: diferencias en los periodos de vibrar en función de la rigidez lateral, el efecto de los contravientos y consecuencias asociados a los cambios de rigidez en elevación. Además, durante las pruebas se explica el proceso de diseño, construcción y programación de la mesa vibradora, lo cual resulta de gran interés para los alumnos.

imagen 12

Durante el transcurso de la primera etapa de la construcción de la mesa, se superaron inconvenientes como la manipulación de los motores a paso, la configuración en la base de la mesa y la estructura de los motores.

La mesa vibradora representa una herramienta didáctica complementaria valiosa para los docentes y alumnos de la Facultad de Ingeniería de la Universidad Autónoma de Chiapas para la enseñanza y aprendizaje de algunas asignaturas clave, como son: estructuras isostáticas, diseño estructural, ingeniería sísmica; o de nivel posgrado, como son: sistemas de control de la respuesta sísmica, estructuras especiales y, dinámica estructural. Mediante el equipo es posible ilustrar, de forma simple, el efecto de diferentes tipos de señales de entrada, así como el efecto de la configuración en planta y/o elevación de las estructuras (por ejemplo: efecto de irregularidades en la respuesta estructural). También se considera que los estudiantes ponen en juego el capital cultural inherente en ellos desarrollado de trayectorias académicas previas, así como el tránsito en la FI, cuando construyen un prototipo para incorporarlo como herramienta didáctica a la IC, ya que incorporan hábitos y objetos que son usados en el proceso constructivo del prototipo.

Evidentemente el prototipo sigue en constate desarrollo, por lo que se espera mejorarlo, a fin de que éste sea siempre de mayor utilidad para los docente y estudiantes de la FI.

Agradecimientos

Los autores expresan su agradecimiento a los estudiantes de la licenciatura en Ingeniería Civil, quienes colaboran en la construcción del prototipo: Rigoberto Castellanos Martínez, Erwin Hernández Avendaño, Lucrecia Lisseth Hernández Mendoza, Alexis Sánchez Gutiérrez Alberth. Asimismo, se agradece a la empresa Gerdau Corsa por la donación del kit estructural Mola.



REFERENCIAS

Banks, J., & Carson, J. (2001). Discrete-event system simulation (3rd ed.). Upper Saddle River, N.J: Prentice Hall.

Coral, H., Ramírez, J., Rosero, E., Thomson, P., Gómez , D., & Marulanda, J. (2010). Diseño, construcción y control de un simulador sísmico uniaxial tele-operable para modelos estructurales a pequeña escala. Ingeniería y Competitividad, 12(2), 95-115.

Fundación ICA. (1988). Experiencias derivadas de los sismos de septiembre de 1985 (Primera ed.). México: Limusa.

Godínez, E. (2019). Apuntes del curso: Ineniería sísmica. Facultad de Ingeniería, Universidad Autónoma de Chiapas.

Godínez, E., Tena, A., Archundia, H., Gómez, A., Ruíz, R., & Escamilla, J. (2019). Daños en viviendas localizadas en el sureste de México ocasionados por el sismo de Tehuantepec del 7 de septiembre de 2017, Mw=8.2. Revista Internacional de Ingeniería de Estructuras, 24(2), 223-258.

González, R., Mora , J., Aguirre, J., Aguilar, C., & Narcía , C. (2014). Análisis de los daños históricos por sismo en Tuxtla Gutiérrez, Chiapas. Memorias del XIX Congreso Nacional de Ingeniería Estructural. Puerto Vallarta.

Gonzalez, R., Mora, J., & Aguirre, J. (2013). Microzonificación sísmica de Tuxtla Gutiérrez. Tuxtla Gutiérrez, Chiapas, México.

Hernández Sampieri, R., Fernández Collado, C., & Baptista Lucio, P. (2010). Metodología de la Investigación (Quinta ed.). México D.F.: Mc Graw Hill.

Núñez-Cornú, F., & Ponce, L. (1989). Zonas sismicas de Oaxaca, México: sismos máximos y tiempos de recurrencia para el período 1542-1988. Geofísica Internacional, 28(4), 587-641.

Ogata, k. (1998). Ingeniería de Control Moderna (Tercera Edición ed.). Ciudad de México, México: Pearson, Prentice Hall.

Soong, T.T. , & Spencer Jr, B.F. . (2002). Supplemental energy dissipation: state-of-the-art and state-of-thepractice. Engineering Structures, 24, 243-259.

SSN. (2019, diciembre 8). Servicio Sismológico Nacional. Retrieved from http://www2.ssn.unam.mx:8080/catalogo/

Tena, A. (2003). Disipación pasiva de energía en México: Un estado del arte. VII Congreso Nacional de Ingeniería Sísmica, Barquisimeto, Venezuela, 1-38.

Tena, A. (2004). Rehabilitación de estructuras en México utilizando disipadores pasivos de energía. VIII Simposio Nacional de Ingeniería Sísmica, Tlaxcala, México, 1-27.

Tena-Colunga, A., Mena-Hernández, U., Pérez-Rocha, L. E., Avilés, J., Ordaz, M., & Vilar J. I. (2009). Updated seismic design guidelines for buildings of a model code of Mexico. Earthquake Spectra, 25(4), 869-898.



Anexos

#include <kasjdka>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Keypad.h>
#define VELOCIDAD1 2000 //velocidad de giro del motor, cuanto menos valor + velocidad
#define VELOCIDAD2 2300
#define VELOCIDAD3 1400
#define VELOCIDAD4 900
#define VELOCIDAD5 900

LiquidCrystal_I2C lcd (0x27, 16, 2);

//motor 1
int direccion1 = 22; //definimos como "entero" pin digital 9 para dar el sentido de giro
int pasos1 = 24; //definimos como "entero" pin digital 13 para dar los pasos al servo
int reset1 = 26; //definimos como "entero" pin digital 10 para poner en "enable" el motor
int tiempo1 = 0;

//motor 2
int direccion2 = 23; //definimos como "entero" pin digital 9 para dar el sentido de giro
int pasos2 = 25; //definimos como "entero" pin digital 13 para dar los pasos al servo
int reset2 = 27;
int tiempo2 = 0;
//variable para ciclo de texto
int u=1;
int E=1;
//ciclos de movimiento
int a=10;
int totalpasos1 = 100; //definimos como "entero" totalpasos para completar un avance
int totalpasos2 = 100;
int totalpasos3 = 150;
//empieza el codigo necesario para keypad
const byte filas = 4;
const byte columnas = 4;
byte pinsfilas[filas] = {47, 49, 51, 53}; //connect to the row pinouts of the keypad
byte pinscolumnas[columnas] = {39, 41, 43, 45}; //connect to the column pinouts of the keypad

char teclas[filas][columnas] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
};

//termina el código necesario de Keypad

Keypad teclado = Keypad( makeKeymap(teclas), pinsfilas, pinscolumnas, filas, columnas);

char tecla;
//int numero;

void setup(){

Wire.begin();
lcd.begin(16, 2);
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MESA SISMICA");

pinMode(pasos1, OUTPUT); //definimos pasos como salida digital
pinMode(direccion1, OUTPUT); //definimos dirección como salida digital
pinMode(reset1, OUTPUT); //definimos reset como salida digital

pinMode(pasos2, OUTPUT); //definimos pasos como salida digital
pinMode(direccion2, OUTPUT); //definimos dirección como salida digital
pinMode(reset2, OUTPUT);

}

void m1() {
digitalWrite(pasos1, HIGH); // ponemos a high "pasos"
digitalWrite(pasos1, LOW); // ponemos a low "pasos"
delayMicroseconds(VELOCIDAD1); // leemos la referencia de velocidad
}

void m2() {
digitalWrite(pasos2, HIGH);
digitalWrite(pasos2, LOW);
delayMicroseconds(VELOCIDAD2);
}

void m11(){
digitalWrite(pasos1, LOW);
digitalWrite(pasos1, HIGH);
delayMicroseconds(VELOCIDAD1);
}

void m22(){
digitalWrite(pasos2, LOW);
digitalWrite(pasos2, HIGH);
delayMicroseconds(VELOCIDAD2);
}

void m3() {
digitalWrite(pasos1, HIGH);
digitalWrite(pasos1, LOW);
delayMicroseconds(VELOCIDAD3);
}

void m33() {
digitalWrite(pasos1, LOW);
digitalWrite(pasos1, HIGH);
delayMicroseconds(VELOCIDAD3);
}

void m4() {
digitalWrite(pasos2, HIGH);
digitalWrite(pasos2, LOW);
delayMicroseconds(VELOCIDAD2);
}

void m44(){
digitalWrite(pasos2, LOW);
digitalWrite(pasos2, HIGH);
delayMicroseconds(VELOCIDAD2);
}

void horario1() { //comandos para encender y darle giro al motor
//digitalWrite(reset1, LOW); //Mientras reset este en LOW, el motor permanece apagado
//delay(tiempo1); //Retardo en la instrucción
digitalWrite(reset1, HIGH); //Cuando reset se encuentre en HIGH el motor arranca
digitalWrite(direccion1, HIGH); //mandamos dirección al servo
}

void antihorario1() {//comandos para encender y darle giro al motor
//digitalWrite(reset1, LOW); //Mientras reset este en LOW, el motor permanece apagado
//delay(tiempo1); //Retardo en la instrucción
digitalWrite(reset1, HIGH); //Cuando reset se encuentre en HIGH el motor arranca
digitalWrite(direccion1, LOW); //mandamos dirección al servo
}

void horario2() {//comandos para encender y darle giro al motor
//digitalWrite(reset1, LOW); //Mientras reset este en LOW, el motor permanece apagado
//delay(tiempo1); //Retardo en la instrucción
digitalWrite(reset2, HIGH); //Cuando reset se encuentre en HIGH el motor arranca
digitalWrite(direccion2, HIGH); //mandamos dirección al servo
}

void antihorario2() {//comandos para encender y darle giro al motor
//digitalWrite(reset1, LOW); //Mientras reset este en LOW, el motor permanece apagado
//delay(tiempo1); //Retardo en la instrucción
digitalWrite(reset2, HIGH); //Cuando reset se encuentre en HIGH el motor arranca
digitalWrite(direccion2, LOW); //mandamos dirección al servo
}

void loop(){

tecla = teclado.getKey();

if (tecla != NO_KEY ){ //== para condición si es igual y != si es diferente
//numero = tecla - 48;

switch(tecla){
case '1':

lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. en Eje X ");
for (int i = 0; i<a; i++)
{ horario1();
for (int i = 0; i<totalpasos1; i++){m1();} //Equivale al número de vueltas (200 pasos son 360º grados de servo )

//—————————Cambio de sentido de giro——————————–

antihorario1();
for (int i = 0; i<totalpasos1; i++){m11();}} //Equivale al número de vueltas (200 pasos son 360º grados de servo )
digitalWrite(reset1, LOW);
break;

case '2':
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. en Eje Y ");
for (int i = 0; i<a; i++){ horario2();
for (int i = 0; i<totalpasos2; i++){m2();} //Equivale al número de vueltas (200 pasos son 360º grados de servo )

//—————————Cambio de sentido de giro——————————–

antihorario2(); //mandamos dirección al servo
for (int i = 0; i<totalpasos2; i++){m22();}} //Equivale al número de vueltas (200 pasos son 360º grados de servo )
digitalWrite(reset1, LOW);
break;

case 'F':
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. combinado ");
for (int i = 0; i<a; i++) { //Equivale al número de vueltas (200 pasos son 360º grados de servo )
horario1();
horario2();
for (int i = 0; i<totalpasos1; i++) { //Equivale al número de vueltas (200 pasos son 360º grados de servo )
m1();
m2(); }

//—————————Cambio de sentido de giro——————————–

antihorario1();
antihorario2();
for (int i = 0; i<totalpasos1; i++) { //Equivale al número de vueltas (200 pasos son 360º grados de servo )
m11();
m22(); }}
digitalWrite(reset1, LOW);
break;

case 'A':
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. en Eje X + ");
horario1();
for (int i = 0; i<totalpasos1; i++){m1();} //Equivale al número de vueltas (200 pasos son 360º grados de servo )
digitalWrite(reset1, LOW);
break;

case 'B':
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. en Eje X - ");
antihorario1();
for (int i = 0; i<totalpasos1; i++){m11();} //Equivale al número de vueltas (200 pasos son 360º grados de servo )
digitalWrite(reset1, LOW);
break;

case 'C': lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. en Eje Y + ");
horario2();
for (int i = 0; i<totalpasos1; i++){m2();} //Equivale al número de vueltas (200 pasos son 360º grados de servo )
digitalWrite(reset2, LOW);
break;

case 'D':
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. en Eje Y - ");
antihorario2();
for (int i = 0; i<totalpasos1; i++){ m22();} //Equivale al número de vueltas (200 pasos son 360º grados de servo )
digitalWrite(reset2, LOW);
break;

case '4' :
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. en Eje X ");
lcd.setCursor(0, 1);
lcd.print("Lento ");
for (int i=0; i<a; i++) {
horario1();
for (int i = 0; i<totalpasos3; i++){m3();}//Equivale al número de vueltas (200 pasos son 360º grados de servo )
antihorario1();
for (int i = 0; i<totalpasos3; i++){m33();}}
digitalWrite(reset1, LOW);
break;

case '5' :
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Mov. en Eje Y");
lcd.setCursor(0, 1);
lcd.print("Lento ");
for (int i=0; i<a; i++) {
horario2();
for (int i = 0; i<totalpasos3; i++){m4();} //Equivale al número de vueltas (200 pasos son 360º grados de servo )
antihorario2();
for (int i = 0; i<totalpasos3; i++){m44();}}
digitalWrite(reset1, LOW);
break;

case '0' :
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("");
break;

}}}