A.S.C.E.N.S.O.R.KND Reporte final del proyecto de Electrónica Digital A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 OBJETIVO: Construir una maqueta de ascensor con distintos niveles de subida por lo menos 3 pisos, este debe dar prioridad a los pisos más cercanos al ascensor a la hora de cambiar de pisos. I. RESUMEN El presente reporte es un sumario del proyecto que se realizó para la materia de electrónica digital, el cual consiste en el diseño de un ascensor a escala controlado por ARDUINO. Para la realización de este se utilizó un ARDUINO UNO, al cual se le cargó un programa basado en el movimiento del motor DC al detectar los pulsos de los botones y los sensores. Para los aspectos físicos, se armó la estructura de madera del ascensor, esta consiste de tres niveles y se adhirió un sistema de poleas en la parte superior para permitir el movimiento del mismo. Para la circuitería, primeramente se simuló en Proteus, con ayuda de las librerías de ARDUINO, el programa realizado. Para el mismo circuito se utilizaron sensores magnéticos para reconocer el nivel, leds para marcar el nivel en que se encontraba el ascensor y un display para la misma función, se utilizó un integrado con unos puentes H para la inversión de giro del motor. Posteriormente se procedió a probar el diseño en breadboard, y al concluido su funcionamiento se realizó una placa impresa. Después de numerosas pruebas, finalmente el ascensor funcionó como se esperaba, se muestra a continuación todo el proceso realizado junto con sus resultados. II. PROGRAMACION DE ASCENSOR CON ARDUINO Se ha realizado una programación a modo que funcione con el sistema de ARDUINO UNO utilizando el lenguaje C++ desarrollando un programa que opere el ascensor de tal manera que este suba o baje y de acuerdo a la nueva orden (pulsador) este se dirija a dicho piso. Básicamente se divide en 3 grandes bloques dicho programa: A- Ingreso de variables: primeramente se definen como constante las variables que se utilizaran para el programa de manera frecuente (número de plantas, numero de finales de carrera, numero de display si sube, baja o está parado) para así poder llamarlos con un nombre común y fácil de recordar. Seguidamente se introdujo de manera vectorial cada uno de los números de los pines de ARDUINO UNO a utilizar ya sea para finales de carrera, pulsadores, leds etc. También se ingresan los tiempos de retardo del ascensor para funcionar correctamente y llegar a su destino. B-Declaración de tipos de variables: mediante un lazo o bucle for se realizó la disposición de cada uno de los elementos como una entrada o salida en el programa para usarlos como tales (por ejemplo los pulsadores son entradas INPUTS y los motores son salidas OUTPUT). C-Programa a ejecutar: este bloque está integrado por varios subprogramas que se dividen de la siguiente manera: C.1: Análisis de estado del ascensor. Página 1 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 C.2: Se analizan los finales de carrera mediante un lazo for y una estructura de control if. C.3: Se encienden o apagan los leds al mismo tiempo que un display de 7 segmentos de acuerdo al final de carrera pulsado en dicho instante. C.4: Si aun con todo lo anterior el motor sigue PARADO y la situación actual del motor sigue sin reconocerse (situación anómala) el ascensor debe regresar al primer piso. C.5: Si el estado actual del motor es PARADO y se encuentra el ascensor en cualquier piso se analiza la opción que el usuario ha ingresado mediante un pulsador el cual dispone el destino del ascensor. Dependiendo si esta opción es mayor o menor el motor BAJA o SUBE y si el caso es igual debe entonces parar. La misma estructura se utilizó en otro caso que no fuera motor igual a PARADO es decir que este subiendo o bajando (SUBE o BAJA) para así cumplir con la condición de que se tome el piso más cercano al momento de seleccionar un nuevo piso. C.6: Si el ascensor debe bajar (BAJA) se ralentiza el parado del motor mediante un delay para posteriormente llevarlo a su respectivo piso determinado y una vez llegado a dicho piso este debe esperar un momento con otro delay para ajustar el final de carrera y el cuarto del ascensor. El mismo proceso se da para cuando el motor debe subir (SUBE). III. ESTRUCTURA DEL ASCENSOR Los materiales utilizados para realizar este proyecto fueron: Madera gruesa (de 2 cm de grueso) y barras de madera de 1.5 cm de diametro Cartón Motor DC de 12 Volts (sacado de un VHS sin usar ) Faja y piñón de plástico Sistema de poleas (hecho de madera) Baleros (para evitar fricción en el sistema de poleas) Switch Reed (sensores magnéticos) Cable UTP Terminal blocks( 2 terminales) Diodos Fuente regulable (Hasta 12 Volts con 500 mA máximos de salida) Imán circular Cinta aislante y doble cara Hilo naylon Tornillos para madera Led’s (3 en total) Display de 7 segmentos (Ánodo común) Cinchos (para sostener cables y motores) Página 2 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Cocodrilos (varios) Caja de cartón (para guardar placa) Placa de cobre para circuito Estaño Cautín CI-L293D (para cambio de polaridad del motor) CI-7447 (para decodificación en display de 7 segmentos) ARDUINO UNO (con cable conector USB) 6 resistencias de 1 kohm y 12 resistencias de 270 kOhm Pulsadores (3) La estructura del ascensor está dividida en 3 grandes áreas las cuales son: Figura 1: muestra la parte superior del ascensor realizado. 1-El sistema de poleas: este sistema es básicamente varias poleas una para poner la faja (A) y otra para subir el hilo de la caja este conjunto con su respectiva base además de una barra de madera la cual gira sobre 2 baleros de metal para tener la menor fricción posible, se utilizó hilo nylon como cuerda que sube al ascensor (C). 2-La estructura del ascensor: esta estructura al igual que todo el ascensor fue construido de madera (B) exceptuando la caja que es de cartón, la altura del ascensor es aproximadamente de 50 cm desde la base hasta el tope (no incluye sistema de sistema de poleas) cabe destacar que en esta zona se agregaron en la parte trasera los sensores magnéticos o switch reed (D). Página 3 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 3- El cuarto del ascensor (E): el cuarto del ascensor es una caja de madera cuyas dimensiones son de aproximadamente 10*6*10 cm cada lado, también se destaca que detrás de la misma se anexaron barras y pedazos de PVC para sostener de madera exacta y sin tambaleos dicho cuarto y para que al mismo tiempo este subiera y bajara de manera precisa. Figura 2: muestra la parte baja del ascensor construido. Figura 3. Vista lateral del elevador, se aprecian los pulsadores y los niveles marcados Página 4 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Figura 4. Vista posterior del sistema IV. ESQUEMAS DEL CIRCUITO Y PCB Página 5 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Figura 3. Esquema de circuito a utilizar El microcontrolador a emplear es el arduino uno, el circuito que se describe a continuación fue diseñado en torno a este microcontrolador. Se dividió en las siguientes partes: Parte I: Switch reed y pulsadores conectados a Arduino Figura 4. Pulsadores y switch reed conectados a arduino y a su fuente. Página 6 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 a) Los pulsadores serán las entradas analógicas hechas por el usuario para seleccionar el piso al que desea que el elevador se dirija (piso 1, piso 2 y/o piso 3). Estas entradas están conectadas a los pines 2, 3 y 4. b) Los switch reed se han representado con pulsadores ubicados en cada piso que se activaran (pulso alto) cuando el elevador llegue a ese piso y se desactivaran (pulso bajo) mediante el acercamiento y alejamiento de un imán, la función de ellos es monitorear la posición del elevador. Estas entradas están conectadas a los pines 6, 7 y 8. Ambas partes son alimentadas con una fuente DC de 5V y cada pulsador o switch reed esta aterrizado a través de resistencias de 1kΩ Parte II: Giro del motor y Escudo de Arduino. Figura 5. Escudo de arduino y puente H. Para invertir el sentido de giro de un motor DC hay que cambiarle la polaridad, es decir, es decir cambiar el sentido con el que la corriente está entrando al motor, para esa función se utilizara la configuración del puente H. Este puente se arma alrededor del motor con cuatro diodos (en este caso se utilizara el modelo 1N4007). Debido a que se empleó un motor DC la corriente hacia el arduino superaría su capacidad máxima (40mA), por lo que es pertinente protegerlo con un escudo. En el diseño del escudo se empleó el integrado L293D y dos resistencias de 270 kohm que cuidan los pines 10 y 11 del ARDUINO conectados al 2 y 7 para el integrado. (Ver datasheet en anexos) El integrado L293D incluye cuatro circuitos (puentes H) para manejar cargas de potencia media, en especial pequeños motores y cargas inductivas, con la capacidad de controlar corriente hasta 600 mA en cada circuito y una tensión entre 4,5 V a 36 V. Los circuitos individuales se pueden usar de manera independiente para controlar cargas de todo tipo y, en el caso de ser motores, manejar un único sentido de giro. Pero además, cualquiera de estos cuatro circuitos sirve para configurar la mitad de un puente H. El integrado permite formar dos puentes H completos, con los que se puede realizar el manejo de hasta dos motores. En este caso se manejó bidireccionalmente un motor DC de 12 volts que se encontró en un VHS viejo sin usar. Página 7 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 El L293D se energiza en las entradas 8 con una fuente de 12 V (Vcc2) y el 16 con el voltaje de la red que en este caso es el que proporciona el arduino es decir 5V (Vcc1), las cuales también están conectadas a dos extremos del puente H (3 y 6) del motor. Figura 6: muestra de la conexión del puente H con el motor para cambio de polaridad del mismo Los ENABLE (pin 1 del L293D) se unen a la fuente del arduino, Las entradas 2 y 7 están conectadas al arduino y estas definirán la polaridad, es decir el giro que tendrá el motor además se le agregaron las resistencias para proteger al ARDUINO de corrientes indeseadas (mayores de 40mA). Parte III: Display Figura 7. Display Página 8 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Para el display de 7 segmentos se utilizaron los pines analógicos del ARDUINO como salidas digitales que brindaran el número de piso en que se encontrara el ascensor. El decodificador BCD utilizado es el 7447. Parte IV: LEDs de piso. Figura 8. LEDS En cada piso habrá un LED que se encenderá una vez llegue el ascensor a ese piso y se apagará cuando el ascensor abandone ese piso. Están conectados en las salidas digitales (5, 9 y 12) del arduino. Parte III: Placa impresa Página 9 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Figura 9. Circuito impreso Se decidió utilizar una placa impresa para el circuito dado la confianza que se tiene para la duración del proyecto. Dicha placa resultó de un tamaño relativamente grande (18x21cm2) dado la gran cantidad de elementos que esta lleva y la elección del diseñador de utilizar líneas gruesas para mayor durabilidad. En la placa se puede apreciar que contiene principalmente borneras, esto se debe a que la mayoría de elementos iban montados sobre el ascensor o en el exterior, por lo que la placa no estaba destinada a ser apreciada. Las cuatro primeras borneras que se ven a la izquierda son para el funcionamiento del display, junto con el 7447.Las que están abajo a la izquierda corresponden a los pulsadores. Las tres borneras de la esquina inferior derecha son para los sensores magnéticos, mientras que las que se encuentran arriba de estos son de los leds. Los diodos y el L293D son para la inversión de giro del motor, así la bornera en el centro de estos es del mismo motor. El resto de borneras corresponden a los pines del ARDUINO. Fig. 10. Circuito físico utilizado Página 10 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Fig. 11. Vista del circuito a contraluz, en esta se aprecian las pistas V. RESULTADOS El ascensor construido cumple con el objetivo propuesto dado que la programación se realizó para que cada vez que una persona eligiera un piso y poco tiempo después esta presiona un piso más cercano al de destino del ascensor este deberá ir al más cercano por ejemplo si se está en el piso 1 y se presiona el piso 3 y poco después se presiona el 2 el programa toma esta última opción y se dirige al piso más cercano que encuentra. El ascensor muestra rapidez de respuestas gracias a la calibración adecuada de los tiempos de delay los cuales tuvieron que ser modificados hasta encontrar el tiempo adecuado para no hacer que el ascensor se saliera del campo magnético del switch reed para enviar así el pulso esto ya que el ascensor cada vez que no encuentra algún switch reed encendido entonces este baja a la primera planta. VI. CAUSAS DE ERROR El ascensor mostro dificultades en cuanto a el peso de la caja dado que al inicio se había construido en base a una caja de madera siendo esta de un peso considerable por tanto el motor junto con la faja no lograban resistir el peso por lo cual devolvían la caja al inicio cada vez que esta subía se cambió dicha caja por una de cartón. Página 11 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Los tiempos de delay afectaron el detenimiento del ascensor, esto dado que al ser demasiado grandes el motor al momento de recibir el pulso y encontrarse en el piso adecuada esperaba un tiempo prolongado encendido y el imán se salía del rango permitido por el switch para mandar el pulso y este bajaba hasta encontrarse en el piso de planta baja dado que ningún switch reed se mantiene pulsado La manipulación de cable UTP dificulto algunas conexiones dado que es un material frágil solían romperse o quebrarse y esto afectaba en la utilización de la placa. VII. CONCLUSIONES El sistema ARDUINO permite utilizar el lenguaje C++ para comunicarse por medio de la tableta con objetos físicos como se ha realizado con el ascensor captando los pulsos de los switch reed y los botones de piso, dado esto se dice que es un sistema provechoso para proyectos de poca magnitud no así para un ascensor real para cargas más pesadas. VIII. BIBLIOGRAFIA IX. ANEXOS Imágenes del programa en ARDUINO Página 12 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Página 13 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Página 14 A.S.C.E.N.S.O.R. KND 13 de septiembre de 2014 Página 15