Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Facultad de Ingeniería Ingeniería Electrónica Programa Especial de Titulación “Implementación de un sistema de control digital para una centrífuga analógica de tubos de laboratorio clínico y biología molecular en la ciudad de Lima – Perú” Ronny Renojo Navarro para optar el Título Profesional de Ingeniero Electrónico Asesor: Joel Jesús Figueroa Vilcarromero Lima – Perú 2022 ii DEDICATORIA Dedico este presente informe a mi amado hijo, que es mi motivación para salir adelante y esforzarme cada día más, también a mis padres en especial a mi papá que dejo de existir y que siempre me enseñó a esforzarme cada día por alcanzar mis metas. iii AGRADECIMIENTOS Agradezco en primer lugar a Dios por todas las cosas que me dio en la vida en especial por mi querido hijo Aarón. Ah mis padres en especial a mi papá que debido a la pandemia dejo de existir y que con sus consejos y el apoyo incondicional tanto de mamá y papá a través de todo este tiempo logre culminar con éxito mi carrera profesional. También al Ing. Luis Tokumaru y el Ing. Antonio Peralta que son mis mentores en el área de la ingeniería y que gracias a su experiencia y sus consejos me permiten desarrollarme cada día más y más en el ámbito profesional. A las personas, amigos y familiares que estuvieron presentes a través de todo este camino que de una u otra forma me dieron ese apoyo y motivación para salir adelante tanto en el trabajo como en los estudios y un agradecimiento especial para toda la plana docente de la UTP que me inculco la pasión por la electrónica en el transcurso de toda mi carrera profesional iv RESUMEN El presente proyecto es el desarrollo e implementación de un sistema de control digital para una centrifuga analógica, la cual ah solicitud de un laboratorio se requirió una actualización tecnológica en dicha centrifuga. Este equipo es utilizado básicamente para la separación de muestras de sangre y orina. Debido a que un control analógico no ofrece las particularidades de un control digital como son la precisión y la eficiencia, el cliente opto por la necesidad de solicitar modificar el control del equipo el cual contaba con un sistema del tipo analógico por uno del tipo digital para la obtención de mejores resultados en los análisis de sangre y orina los cuales son realizados en el laboratorio. El proyecto en mención consta de cuatro capítulos para su desarrollo, en el capítulo uno se realiza el planteamiento del problema y los objetivos del proyecto, en el capítulo dos desarrollamos el marco teórico y el estado del arte, en el capítulo tres se realiza del desarrollo de la solución y finalmente en el capítulo cuatro obtendremos el análisis de los resultados v ABSTRACT This project is the development and implementation of a digital control system for an analog centrifuge, which at the request of a laboratory required a technological update in said centrifuge. This equipment is basically used for the separation of blood and urine samples. Due to the fact that an analog control does not offer the particularities of a digital control such as precision and efficiency, the client opted for the need to request to modify the control of the equipment which had an analog type system for a digital type to obtaining better results in blood and urine tests which are performed in the laboratory. The project in question consists of four chapters for its development, in chapter one the problem statement and the objectives of the project are carried out, in chapter two we develop the theoretical framework and the state of the art, in chapter three the development is carried out of the solution and finally in chapter four we will obtain the analysis of the results. vi INDICE GENERAL DEDICATORIA…………………………………………………………………..ii AGRADECIMIENTOS…………………………………………………………..iii RESUMEN………………………………………………………………….…….iv ABSTRACT……………………………………………………………………….v INDICE GENERAL………………………………………………………….......vi INDICE DE TABLAS………………………………………………………..…..xi INDICE DE FIGURAS………………………………………………………..…xii CAPITULO 1: PLANTEAMIENTO DEL PROBLEMA………………………..1 Introducción………………………………………………………………….…..1 Definición del problema………………………………………………..…….…2 1.2.1 Problema general…………………………………………………….…..2 1.2.2 Problemas específicos…………………………………………………...2 1.3 Objetivos…………………………………………………………………..…3 1.3.1 Objetivo general……………………………………………………….….3 1.3.2 Objetivos específicos……………………………………………….……3 1.4 Justificación e importancia…………………………………………………3 1.5 Alcance y Limitaciones…………………………………………………..…4 1.5.1 Alcance…………………………………………………………………….4 1.5.2 Limitaciones……………………………………………………………….4 vii CAPITULO 2: MARCO TEORICO………………………………………….…5 2.1 Estado del arte……………………………………………………………...5 2.2 Fundamento teórico…………………………………………………….….6 2.2.1 El microcontrolador PIC16f877A…………………………….…………6 2.2.1.1 Principales variaciones…………………………………………..……7 2.2.1.2 Encapsulados………………………………………………….……….7 2.2.1.3 Diagrama de bloques del PIC16F877……………………………….8 2.2.2 MOC3022M…………………………………………………………….…9 2.2.2.1 Características…………………………………………………..……..9 2.2.2.2 Aplicaciones………………………………………………………..…..9 2.2.3. H11A3M………………………………………………………………….10 2.2.3.1 Características………………………………………………………...10 2.2.4. TL770ACP……………………………………………………………….11 2.2.4.1 Características…………………………………………………………11 2.2.4.2 Descripción………………………………………………………….….12 2.2.4.3 Diagrama de bloques…………………………………………………..13 2.2.5 MIC5800BN………………………………………………………………..14 2.2.5.1 descripción general…………………………………………………..…14 2.2.5.2 Características……………………………………………………….….14 2.2.6 Display LCD 128X128………………………………………..…………..15 viii 2.2.7 LM7805……………………………………………………………..…..…16 2.2.7.1 Descripción…………………………………………………………..... 16 2.2.8 LM339N……………………………………………………………..…….17 2.3 Marco metodológico……………………………………………………… .18 2.3.1 Partes principales de una centrifuga………………………….. ….18 2.3.2 Clasificación de la centrifugas………………………………………21 2.3.2.1 Centrifugas clínicas…………………………………………….……….21 2.3.2.2 Centrifugas Micro fugas………………………………………………..22 2.3.2.3 Centrifugas de alta velocidad……………………………………….…22 2.3.2.4 Ultracentrífugas………………………………………………..………..22 2.3.3 Descripción de proyecto………………………………………..………..22 2.3.4 Diseño del proyecto……………………………………………………….24 2.3.4.1 Etapa de control de electroimán para apertura de tapa…….…25 2.3.4.2 Etapa de control de voltaje………………………………..…..….25 2.3.4.3 Fuente de alimentación 220/115VAC………………………..….26 2.3.4.4 Microcontrolador………………………………………………..….26 2.3.4.5 Lectura de sensor de velocidad…………………………………..27 2.3.4.6 Driver de control del motor…………………………..……………27 2.3.5 Diseño de la tarjeta de control………………………………..……..28 ix CAPITULO 3: DESARROLLO DE LA SOLUCION……………………..……..31 3.1 Proceso de iniciación…………………………………………………….…..31 3.2 Proceso de Planificación EDT…………………………………….……...…32 3.2.1 Ciclo de vida del proyecto………………………………...………………..33 3.3 Determinación de las necesidades de recursos……………………….......34 3.4 Plan de comunicaciones……………………………………………………...35 3.5 Plan de gestión de recursos humanos………………………………………36 3.6 Plan de la gestión financiera…………………………………………..……..37 3.6.1 Análisis Costo Beneficio…………………………………………...38 3.7 Plan de gestión de calidad……………………………………………..……..38 3.8 Proyecto de análisis de riesgo……………………………………………..…39 3.9 Plan de aceptación……………………………………………………………..41 3.10 Plan de compras y gestión de proveedores……………………………..…41 3.11 Proceso de ejecución………………………………………………………....41 3.12 proceso de seguimiento y control……………………………………………423.13 Proceso de cierre de proyecto………………………………………..…..…43 CAPITULO 4: ANALISIS DE RESULTADO…………………………………..….44 4.1 Aspectos técnicos………………………………………………………………44 4.2 Resultados obtenidos en pruebas iniciales………………...………….…….44 4.2.1 Velocidad medida………………………………………………………...…..44 x 4.2.2 Tiempo medido………………………………………………………………45 4.2.3 Medición de contaminación sonora……………………………………….46 CONCLUSIONES………………………………………………………………….47 RECOMENDACIONES……………………………………….………………..…48 REFERENCIAS BIBLIOGRAFICAS………………………...………………..….49 ANEXOS…………………………………………………………………......……..51 xi INDICE DE TABLAS Tabla 1: Subfamilia PIC16f877A……………………………………………………….6 Tabla 2: Velocidad medida…………………………………………………………….44 Tabla 3: Tiempo medido………………………………………………..……………..45 Tabla 4: Medición de contaminación sonora………………………………………..46 xii INDICE DE FIGURAS Fig. 1: Tipos de encapsulados………………………………………………...…..7 Fig. 2: Diagrama de bloques……………………………………………..………..8 Fig. 3: Empaquetado……………………………………………………………….10 Fig. 4: Dimensiones de encapsulado…………………………………………….11 Fig. 5: Diagrama de pines…………………………………………………………12 Fig. 6: Diagrama de bloques……………………………………………….……..13 Fig. 7: Display LCD 128x128……………………………………………………..15 Fig. 8: Diagrama de bloques interno y diagrama de pines…………………....16 Fig. 9: Diagrama de pines……………………………………………………..….17 Fig. 10: Centrifuga analógica y centrifuga digital…………………………...…..18 Fig. 11: Partes de una centrifuga…………………………………………………19 Fig. 12: Rotor flotante………………………………………………..…………….20 Fig. 13: Rotor de ángulo fijo………………………………………………………20 Fig. 14: Rotor de ángulo vertical……………………………………………….…21 Fig. 15: Panel de control………………………………………………………..….23 Fig. 16: Diagrama circuital…………………………………………………………24 Fig. 17: Etapa de control de la apertura de tapa…………………………….…..25 Fig. 18: Etapa de supervisión de tensión………………………………………...25 Fig. 19: Fuente de alimentación………………………………………………...…26 xiii Fig. 20: PIC 16F877A…………………………………………………………..….26 Fig. 21: Lectura del encoder………………………………………………………27 Fig. 22: Driver de motor…………………………………………………………...27 Fig. 23: Diseño de placa de control………………………………………….…..28 Fig. 24: Tarjeta electrónica implementada……………………………………...29 Fig. 25: Rotor…………………………………………………………………….…29 Fig. 26: Motor y sistema de amortiguamiento…………………………………..30 Fig. 27: Sistema de apertura de tapa electromagnética……………………….30 Fig. 28: EDT………………………………………………………………………...32 Fig. 29: Diagrama de Gantt……………………………………………………….33 Fig. 30: Necesidades de recursos………………………………………………..34 Fig. 31: Plan de comunicaciones………………………………………………....35 Fig. 32: Gestión de recursos humanos……………………………………….…36 Fig. 33: Plan de gestión financiera……………………………………………….37 Fig. 34: Análisis costo beneficio……………………………………………….….38 Fig. 35: Plan de gestión de calidad…………………………………………….…38 Fig. 36: Plan de gestión de análisis de riesgo…………………………………..39 Fig. 37: Matriz de análisis de riesgo……………………………………………...40 Fig. 38: Gestión de cierre de proyecto……………………………………………43 1 CAPITULO 1: PLANTEAMIENTO DEL PROBLEMA 1.1 INTRODUCCION A nivel global un análisis clínico es un tipo de exploración confirmatoria, la cual es solicitada por un médico al laboratorio clínico para corroborar o descartar un diagnóstico. Los exámenes de sangre se realizan para determinar estados bioquímicos y fisiológicos como una enfermedad, eficacia de drogas, contenido mineral y función de los órganos. Asimismo miden el sodio, el cloro, el nitrógeno ureico, el potasio, el magnesio, el bicarbonato, la glucosa y la creatinina entre otros componentes de la sangre. De la misma forma un examen general de orina, también llamado análisis de orina o uroanálisis, consiste en una serie de exámenes efectuados sobre la orina, constituyendo uno de los métodos más comunes de diagnóstico médico. Para realizar alguno de estos exámenes es necesario la separación de sus componentes, como por ejemplo en el análisis de sangre, la cual cuenta con cuatro componentes principales que son los glóbulos blancos, glóbulos rojos, plasma y plaquetas, estando este último también conformado por otros seis componentes diferentes, Para su análisis correspondiente se tiene que separar todos estos componentes. El equipo electrónico que logra este proceso de separación de muestras es la centrífuga de laboratorio, que es un equipo que separa una mezcla líquida en varios componentes. Esto ocurre gracias a que la centrífuga realiza el giro de la mezcla a una alta velocidad, separando las diferentes capas de materiales según la densidad de cada elemento. El centrifugado logra que los elementos más densos se acumulen en la parte inferior y los más livianos en la parte superior del recipiente. Con este método, las partículas pueden ser depositadas en una mezcla liquida de manera más rápida que con la fuerza gravitacional. https://es.wikipedia.org/w/index.php?title=Exploraci%C3%B3n_confirmatoria&action=edit&redlink=1 https://es.wikipedia.org/wiki/Laboratorio_cl%C3%ADnico https://es.wikipedia.org/wiki/Diagn%C3%B3stico_m%C3%A9dico https://es.wikipedia.org/wiki/Sodio https://es.wikipedia.org/wiki/Potasio https://es.wikipedia.org/wiki/Bicarbonato https://es.wikipedia.org/wiki/Orina https://www.cromtek.cl/categoria-producto/equipamiento-de-laboratorio/centrifugacion-y-ultracentrifugacion/ https://www.cromtek.cl/categoria-producto/equipamiento-de-laboratorio/centrifugacion-y-ultracentrifugacion/ 2 1.2 DEFINICION DEL PROBLEMA Uno de los clientes con los que cuenta la empresa solicito un reacondicionamiento e implementación de un sistema de control digital en una centrifuga de tubos de ángulo fijo, la cual es utilizada para el centrifugado de sangre y orina; debido a que es una centrifuga del tipo analógica no cuenta con la precisión deseada y las piezas de control análogo se encuentran deterioradas no pudiendo encontrar repuestos en el mercado local debido a la antigüedad de estas, cabe mencionar que ya es frecuente que al momento de centrifugar las muestras estas ya no se separen como debería ser debido a que ya se realizó múltiples reparaciones y con los repuestos instalados no se llegó a los resultados esperados, se espera que con el nuevo sistema se logre corregir estos errores y se logre la optimización del equipo. 1.2.1 PROBLEMA GENERAL ¿Como lograr implementar un sistema de control digital que realice el control del tiempo y velocidad utilizando la estructura actual del equipo? 1.2.2 PROBLEMAS ESPECIFICOS ¿Cómo lograr implementar un sistema de control digital en un sistema análogo? ¿Cómo lograr la estabilidad y un margen de error mínimo al momento del centrifugado? ¿Cómo evitar riesgos eléctricos y mecánicos en el equipo al momento del centrifugado? 3 1.3 OBJETIVOS 1.3.1 OBJETIVO GENERAL Lograr implementar un sistema de control digital que realice el control del tiempo y velocidad del equipo, reutilizando algunas partes propias del equipo. 1.3.2 OBJETIVOS ESPECIFICOS a) Realizar el control del equipo a través de un microcontrolador, el cual se encargada del control de tiempo y velocidad entre otras funciones que serán añadidas al equipo. b) Lograr un margen de error mínimo o aceptable como +/- 0.25 %. Debido a que con el sistema análogo el margen de error era +/- 5.0%. c) Realizar el programa de control que será ejecutado por el microcontrolador d) Realizar el control adecuado de las variables tiempo y velocidad. e) Controlar los riesgos tanto eléctricos como mecánicos. 1.4 JUSTIFICACION E IMPORTANCIA El presente proyecto se realiza debido a la solicitud de un cliente para una actualización tecnológica y reacondicionamiento de su equipo. Es un aporte significativo para el cuidado del medio ambiente ya que no se desecha el equipo, sino que con las herramientas tecnológicas actualesse puede lograr recuperar un equipo que se creía obsoleto. Otro punto importante en el presente proyecto es el uso que se le da a la implementación de un sistema basado en los microcontroladores más ahora que las circunstancias de pandemia afloran todas las necesidades que nuestro país requiere en el ámbito tecnológico de desarrollo de tecnologías de equipos de laboratorio. Asimismo, incentivar la investigación en el desarrollo de tecnologías para el re procesamiento de equipos, tecnología la cual 4 aplicaremos para este proyecto el cual se desea tenga mejoras significativas y sirva de referente para futuros proyectos del mismo rubro. 1.5 ALCANCE Y LIMITACIONES 1.5.1 ALCANCE El presente proyecto tiene por finalidad lograr la implementación de un sistema de control digital en un equipo netamente analógico y lograr decrementar el margen de error actual a un margen de error mínimo que se lograra con un sistema digital controlado por un microcontrolador, así mismo lograr que los costos de operación e implementación sean los adecuados para lograr dicho objetivo. El área en la cual tuve relación fue en la elaboración de la tarjeta electrónica. El proyecto contara con un panel de control digital y una pantalla LCD para la visualización de los parámetros deseados. 1.5.2 LIMITACIONES Un punto que podría interrumpir o limitar el proyecto sería el recorte de financiamiento por parte del cliente que solicito el reacondicionamiento de la centrifuga, así mismo otro punto importante que lograría limitar el proyecto seria que el programa de control no cumpla con los requerimientos solicitados, un punto que no se considera de acuerdo al presupuesto es un sensor de inestabilidad el cual indica que el rotor presenta desbalance debido a que el costo, sería mayor de lo presupuestado. 5 CAPITULO 2: MARCO TEORICO 2.1 ESTADO DEL ARTE • En la revista Ingeniería, investigación y tecnología se encuentra el articulo “Control de velocidad de un motor de CD basado en mediciones de la corriente de armadura” Ing. invest. y tecnol. vol.19 no.4 Ciudad de México oct./dic. 2018 En este trabajo se propone un controlador de velocidad para motores de Corriente Directa (CD) sin dependencia de sensores mecánicos (encoders). El controlador se basa en estrategias de estimación en tiempo real y medición indirecta. Para esto, la corriente de inducido es utilizada como única variable eléctrica disponible por medición. Por lo cual, la correcta instrumentación del proceso de adquisición de datos es de vital importancia para garantizar que las mediciones correspondan con el valor real. Este trabajo es un aporte importante debido a que brinda otra opción para el control de un motor, en el caso de nuestro proyecto se utilizara un motor monofásico con encoder incluido. • En la revista Ingeniería, investigación y tecnología se encuentra el articulo “Diseño e implementación de un variador de velocidad ajustable para aplicaciones de control de movimiento” J. appl. res. technol vol.10 no.2 Ciudad de México abr. 2012 En este artículo se presenta una topología de hardware para comparar el rendimiento de velocidad de un motor de inducción y otro de imanes permanentes (PM) de AC. A una referencia variable le sigue un variador de velocidad ajustable (ASD) con base en control vectorial sin sensores. Los algoritmos se programan en un procesador digital de señales (DSP) http://www.scielo.org.mx/scielo.php?script=sci_serial&pid=1405-7743&lng=es&nrm=iso http://www.scielo.org.mx/scielo.php?script=sci_serial&pid=1405-7743&lng=es&nrm=iso 6 En este trabajo se refleja el uso que podría tener en nuestro proyecto si se desea realizar una comparación entre un motor de inducción y uno de imanes permanentes si es que se desea optimizar o implementar nuevas formas de control de velocidad. 2.2 FUNDAMENTO TEORICO A continuación, se menciona los componentes electrónicos usados en este proyecto con la finalidad de conocer sus características técnicas de acuerdo al fabricante. 2.2.1 EL MICROCONTROLADOR PIC16F877A El PIC16F877 de Microchip pertenece a la familia de microcontroladores de 8 bits (bus de datos) que cuenta con las siguientes características que los diferencian de otras familias: • Tecnología RISC • Arquitectura Harvard • Tecnología CMOS Microchip dividió sus microcontroladores en tres grandes subfamilias de acuerdo al número de bits de su bus de instrucciones como se muestra en la tabla 1: Tabla 1 Subfamilia Bits del bus de instrucciones nomenclatura Base - Line 12 PIC12XXX y PIC14XXX Mid – Range 14 PIC16XXX High - End 16 PIC17XXX y PIC18XXX 7 2.2.1.1 PRINCIPALES VARIACIONES Los microcontroladores que fabrica Microchip cubren un amplio rango de dispositivos cuyas características pueden variar como sigue: • Empaquetado (desde 8 pines hasta 68 pines) • Tecnología de la memoria incluida (EPROM, ROM, Flash) • Voltajes de operación (desde 2.5 v. Hasta 6v) • Frecuencia de operación (Hasta 20 Mhz) 2.2.1.2 ENCAPSULADOS Cada encapsulado posee variaciones, especialmente en lo relativo a las dimensiones del espesor del paquete, por lo general se pueden encontrar encapsulados tipo PDIP (Plastic Dual In Line Package), PLCC (Plastic Leaded Chip Carrier) y QFP (Quad Flat Package), que se muestran en la figura 1: Fig. 1: Tipos de encapsulados 8 2.2.1.3 DIAGRAMA DE BLOQUES DEL PIC16F877 En la figura siguiente se observa el diagrama de bloques interno del PIC16F877: Fig. 2: Diagrama de bloques 9 2.2.2 MOC3022M las series MOC301XM y MOC302XM son dispositivos controladores triac aislados ópticamente. Estos dispositivos contienen un diodo emisor de infrarrojos GaAs y un interruptor bilateral de silicio activado por luz, que funciona como un triac. Están diseñados para interconectarse entre controles electrónicos y triacs de potencia para controlar cargas resistivas e inductivas tal como se muestra en la figura 7. 2.2.2.1 CARACTERISTICAS • Excelente estabilidad IFT: el diodo emisor de infrarrojos tiene baja degradación • Alto voltaje de aislamiento: mínimo 5300 VCA RMS • Reconocido por Underwriters Laboratory (UL): archivo n. ° E90700 • Voltaje de bloqueo de pico: - 250V-MOC301XM - 400V-MOC302XM • Reconocido por VDE (archivo # 94766) 2.2.2.2 APLICACIONES • Controles industriales • Controles de solenoide / válvula • Semáforos • Interruptor de alimentación de CA estático • Máquinas expendedoras • Atenuadores de lámparas incandescentes • Relé de estado sólido • Control de motor • Balastos de lámpara 10 Fig. 3: Empaquetado 2.2.3 H11A3M La serie H11A consta de un diodo emisor de infrarrojos de arseniuro de galio. junto con un fototransistor de silicio en un paquete dual en línea tal como se muestra en la figura 8. 2.2.3.1 CARACTERISTICAS • Reguladores de suministro de energía • Entradas lógicas digitales • Entradas de microprocesador • Sistemas de sensores de electrodomésticos • Controles industriales • Reconocido por Underwriters Laboratory (UL): archivo # E9070 11 Fig. 4: Dimensiones de encapsulado 2.2.4 TL770ACP 2.2.4.1 CARACTERISTICAS: • Generador de reinicio de encendido • Generación de reinicio automático después de una caída de voltaje • Amplio rango de voltaje de suministro • Sensor de voltaje de precisión 12 • Referencia de voltaje con compensación de temperatura • Salidas de reinicio verdaderas y complementarias • Duración del pulso ajustable externamente Fig. 5: Diagrama de pines 2.2.4.2 DESCRIPCION La familia TL77xxA de supervisores de voltaje de suministro de circuito integrado está diseñada específicamente para su uso como controladores de reinicio en sistemas de microcomputadoras y microprocesadores.El supervisor de la tensión de alimentación supervisa la alimentación en busca de condiciones de sub tensión en la entrada SENSE. Durante el encendido, la salida RESET se activa (baja) cuando VCC alcanza un valor cercano a 3.6 V. En este punto (asumiendo que SENSE está por encima de VIT +), la función de temporizador de retardo activa un retardo de tiempo, después del cual las salidas RESET y RESET quedan inactivas (alto y bajo, respectivamente). Cuando ocurre una condición de bajo voltaje durante el funcionamiento normal, RESET y RESET se activan. Para garantizar que se produzca un reinicio completo, las salidas de reinicio permanecen activas durante un tiempo 13 de retardo después de que el voltaje en la entrada SENSE excede el valor del umbral positivo. El tiempo de retardo está determinado por el valor del condensador externo. CT: td = 1.3 104 CT, donde CT está en faradios (F) y td está en segundos (s). Durante el apagado y cuando SENSE está por debajo de VIT–, las salidas permanecen activas hasta que VCC cae por debajo de 2 V. Después de esto, las salidas están indefinidas. Se debe conectar un capacitor externo (típicamente 0.1 F) a REF para reducir la influencia de transitorios rápidos en el voltaje de suministro. 2.2.4.3 DIAGRAMA DE BLOQUES El diagrama de bloques funcional se muestra solo con fines ilustrativos; el circuito real incluye una red de recorte para ajustar el voltaje de referencia y el punto de disparo del comparador de detección tal como se muestra en la figura 6. Fig. 6: Diagrama de bloques 14 2.2.5 MIC5800BN 2.2.5.1 DESCRIPCION GENERAL Los controladores con enclavamiento MIC5800 / 5801 son circuitos integrados de alto voltaje y alta corriente compuestos por cuatro u ocho enganches de datos CMOS, un controlador de transistor Darlington bipolar para cada enclavamiento y circuitos de control CMOS para las funciones comunes CLEAR, STROBE y OUTPUT ENABLE. La combinación bipolar / MOS proporciona un pestillo de potencia extremadamente baja con la máxima flexibilidad de interfaz. MIC5800 contiene cuatro controladores bloqueados; MIC5801 contiene ocho controladores bloqueados. Las velocidades de entrada de datos mejoran enormemente en estos dispositivos. Con un suministro de 5 V, normalmente funcionarán a más de 5 MHz. Con un suministro de 12V, se obtienen velocidades significativamente más altas. Las entradas CMOS son compatibles con los circuitos estándar CMOS, PMOS y NMOS. Los circuitos TTL o DTL pueden requerir el uso de resistencias pull-up adecuadas. El bipolar 2.2.5.2 CARACTERISTICAS • Tasa mínima de entrada de datos de 4,4 MHz • Salidas de disipador de corriente de alto voltaje • Protección contra transitorios de salida • Entradas compatibles con CMOS, PMOS, NMOS y TTL • Resistencias internas pull-down 15 2.2.6 DISPLAY LCD 128X128 Fig. 7: Display LCD 128x128 16 2.2.7 LM7805 Regulador de voltaje positivo de 3 terminales de 1Amp 2.2.7.1 DESCRIPCION La serie MC78XX / LM78XX / MC78XXA de tres reguladores positivos terminales están disponibles en el TO-220 / D-PAK y con varios voltajes de salida fijos, lo que los hace útiles en una amplia gama de aplicaciones. Cada tipo emplea limitación de corriente interna, apagado térmico y protección del área de operación segura, lo que lo hace esencialmente indestructible. Si se proporciona un disipador de calor adecuado, pueden entregar más de 1A de corriente de salida. Aunque están diseñados principalmente como reguladores de voltaje fijo, estos dispositivos se pueden usar con componentes externos para obtener voltajes y corrientes ajustables. Fig. 8: Diagrama de bloques interno y diagrama de pines 17 2.2.8 LM339N La serie LMx39-N consta de cuatro comparadores de voltaje de precisión independientes con una especificación de voltaje de compensación tan baja como 2 mV como máximo para los cuatro comparadores. Estos comparadores fueron diseñados específicamente para operar con una sola fuente de alimentación en una amplia gama de voltajes. El funcionamiento desde fuentes de alimentación divididas también es posible y el bajo consumo de corriente de la fuente de alimentación es independiente de la magnitud del voltaje de la fuente de alimentación. Fig.9: Diagrama de pines 18 2.3 MARCO METOLOGICO Una centrifugada es un equipo que a través de la rotación a una muestra y mediante la fuerza centrífuga logra acelerar la decantación de sus componentes (generalmente una liquida y una sólida), según sea su densidad. Podemos encontrar diversos tipos de centrifugas, comúnmente para objetivos específicos. De acuerdo a sus componentes podemos encontrar centrifugas analógicas y digitales como se muestra a continuación: Fig. 10: Centrifuga analógica y centrifuga digital 2.3.1 PARTES PRINCIPALES DE UNA CENTRIFUGA: a) EL MOTOR ELÉCTRICO: dependiendo de su potencia, permite a la centrifuga operar a determinadas revoluciones por minuto b) EL ROTOR: es la parte que sujeta los tubos, botellas y bolsas, que contienen el líquido a ser centrifugado. los rotores varían en tamaños y tipos, encontrando rotores fijos o intercambiables, dependiendo del modelo de centrifuga. https://es.wikipedia.org/wiki/Movimiento_de_rotaci%C3%B3n https://es.wikipedia.org/wiki/Muestra_(material) https://es.wikipedia.org/wiki/Fuerza_centr%C3%ADfuga https://es.wikipedia.org/wiki/Aceleraci%C3%B3n https://es.wikipedia.org/wiki/Decantaci%C3%B3n https://es.wikipedia.org/wiki/Densidad 19 c) EL EJE: conecta el rotor con el motor, y es el encargado de transmitir la fuerza del motor para hacer girar el rotor. d) CARCASA: Podría ser de acero o plástico y su propósito es cubrir completamente el rotor con el motor. e) PANEL DE CONTROL: Consta de perillas y botones para el ingreso de los parámetros de velocidad y tiempo de rotación, asimismo para la visualización suelen poseer un display o una pantalla LCD y todo esto es situado por lo general en la parte frontal del equipo. f) TAPA CON SEGURIDAD: Por lo general suelen tener un sistema de apertura electromagnético o mecánico y un sistema de apertura de emergencia. Fig.11: Partes de una centrifuga 20 De los puntos mencionados los rotores cumplen una función de importancia en la centrifugación y suelen ser clasificados en tres tipos que se mencionará a continuación: • Rotores flotantes: Por lo general poseen de tres a seis tubos fijados a un soporte de metal que se encuentra en suspensión libre la cual sirve solo para fijar la posición de inicio del tubo con la muestra, cuando el rotor inicia el giro, el bucket (deposito o cestilla) se posiciona en forma horizontal. Todos los buckets de un rotor poseen el mismo peso por lo que sólo se necesita pesar los tubos con la muestra. La superficie de los buckets debe de estar limpia y seca para poder usarlos. Fig.12: Rotor flotante • Rotores de ángulo fijo: Tienen un ángulo que podría variar entre 14º a 55º, en modelos comerciales se encontrada una gran variedad de capacidades, rangos de velocidad y ángulos de inclinación. Los rotores de ángulo fijo se diseñan para soportar altas fuerzas centrífugas, mayores a 600000g Fig. 13: Rotor de Angulo Fijo 21 • Rotores verticales: Se podría considerar como una forma extrema de un rotor ángulo fijo, aunque las características de los rotores verticales son diferentes, cuando el rotor inicia su giro la solución se posiciona en 90º, esto se lleva cabo por debajo de las 1000 RPM, lo que caracteriza a estos rotores, es la corta trayectoria de la sedimentación de sus partículas ella equivale al diámetro del tubo. Fig. 14: Rotor de ángulo vertical 2.3.2 CLASIFICACION DE LA CENTRIFUGASLas centrifugas se clasifican de la siguiente manera: 2.3.2.1 Centrífugas clínicas: Poseen las siguientes características: • Tamaño pequeño. • No poseen refrigeración. • Pueden alcanzar una velocidad máxima de5000 RPM. • Sirven para grandes partículas (células, precipitados de sales insolubles…) 22 2.3.2.2 Centrifugas Micro fugas: Poseen las siguientes características: • Alta velocidad de 10000 RPM y poseen tubos cortos. • Para volumen pequeño. • Se utilizan en Biología Molecular 2.3.2.3 Centrifugas de Alta velocidad: Poseen las siguientes características: • Su velocidad oscila entre 18000 y 25000 RPM. • Poseen sistema de refrigeración, algunas cuentan con sistema de vacío. • Se utilizan en la separación de fracciones celulares. • No son suficientes para la separación de ribosomas, virus o macromoléculas. 2.3.2.4 Ultracentrífugas: Poseen las siguientes características: • Posee una velocidad a partir de 50000 RPM. • Poseen sistemas auxiliares como sistemas de refrigeración y sistemas de alto vacío. • Se utilizan para la obtención de datos precisos con propiedades de sedimentación 2.3.3 DESCRIPCION DEL PROYECTO Para que la centrifuga realice todas las tareas necesarias se utilizó un microcontrolador, el cual le encarga de realizar múltiples funciones a través de un panel de control digital como se describe a continuación: • Botón de arranque y parada: Mediante este botón se dará inicio al centrifugado o si ocurre algún inconveniente también realizará la parada el motor. • Botón de apertura de tapa: Mediante este botón se realizará la apertura de la tapa, cabe mencionar que una vez que inicie el ciclo de centrifugado no se podrá realizar la apertura la tapa con este botón por motivos de seguridad. 23 • Botón de frenado rápido: Mediante este botón se podrá realizar un frenado rápido si así lo dispone el usuario. • Potenciómetro del tipo encoder: Para la selección de baja velocidad (2400 RPM usado para orina) y alta velocidad (3480 RPM usado para sangre), asimismo para la selección de tiempo se realizará a través este potenciómetro del tipo encoder • Pantalla LCD: Mediante esta pantalla se podrá realizar la visualización de los parámetros seleccionados. Fig. 15: Panel de control Start/stop PLAN DE ACEPTAC IÓN Frenado rápido Potenciómetro Pantalla LCD Apertura de tapa 24 2.3.4 DISEÑO DEL PROYECTO En este proyecto se realiza la conversión de una centrifuga con un control del tipo análogo a uno del tipo digital. La centrifuga en la cual se realizará la implementación tecnológica es del tipo clínica, la cual es utilizara para separar muestras de sangre y orina. El proyecto que se encuentra en la etapa final de su implementación y cuenta con un control que brinda seguridad y precisión en el control de velocidad de rotación, A continuación, se visualiza el diagrama circuital: Fig. 16: Diagrama circuital 25 2.3.4.1 Etapa de control de electroimán para apertura de tapa: Fig. 17: Etapa de control de la apertura de tapa 2.3.4.2 Etapa de control de voltaje: Fig. 18: Etapa de supervisión de tensión 26 2.3.4.3 Fuente de alimentación 220/115VAC: Fig. 19: Fuente de alimentación 2.3.4.4 Microcontrolador: Fig. 20: PIC16F877A 27 2.3.4.5 Lectura de sensor de velocidad: Fig. 21: Lectura del encoder 2.3.4.6 Driver de control del motor: Fig. 22: Driver de motor 28 2.3.5 Diseño de la tarjeta de control: Fig. 23: Diseño de placa de control 29 Fig. 24: Tarjeta electrónica implementada Fig. 25: Rotor 30 Fig. 26: Motor y sistema de amortiguamiento Fig. 27: sistema de apertura de tapa electromagnética 31 CAPITULO 3: DESARROLLO DE LA SOLUCION 3.1 PROCESO DE INICIACION: El proyecto realizado es una implementación tecnológica debido a que se realizó la conversión de un sistema analógico a uno del tipo digital en una centrifuga de tubos, que está diseñada especialmente con un diseño para bancos de sangre y/o laboratorios clínicos; el cual será usado en distintos procesos clínicos como, por ejemplo: en clasificación sanguínea, lavado celular, pruebas de compatibilidad sanguínea, determinación de genotipos, etc. Contará con un diseño compacto y tamaño apropiado para espacios pequeños, con un sistema ultra silencioso y freno dinámico para disminuir el tiempo de desaceleración, también tendrá un panel de control digital para el tiempo y velocidad, así como una pantalla LCD para la visualización de los parámetros y contará con un rotor angular para 12 tubos. El objetivo del proyecto es el reacondicionamiento de un equipo confiable y seguro para el personal de laboratorio, con el que se garantizada la obtención de resultados óptimos en el análisis de muestras, debido a que con el sistema de tipo análogo existían diversas falencias como son la visualización de la velocidad y el tiempo, y también tenía un alto margen de error. La visión que se tiene a futuro es la aplicación de nuevas tecnologías en el diseño y elaboración de centrifugas de laboratorio. El lugar geográfico de implementación del proyecto es el país de Perú, en la provincia de Lima, con dirección: Jr. Vulcano MZ C Lote 10, Urb. Los Heraldos - Santiago de Surco. El ciclo de vida estimado del proyecto es de 6 meses 32 3.2. PROCESO DE PLANIFICACION: Para la planificación del proyecto se elaboró la siguiente EDT: ESTRUCTURA DE DESGLOSE DE TRABAJO(EDT) Fig. 28: EDT CENTRIFUGA DE LABORATORIO DISEÑO DE PROYECTO IMPLEMENTACION PRUEBAS DISEÑO DE PROGRAMA CENTRAL DISEÑO DE CIRCUITO ELECTRONICO DISEÑO DE PIEZAS PLASTICAS Y ESTRUCTURAS METALICAS NECESARIAS SIMULACION DE PROGRAMA CENTRAL ELABORACION DE TARJETA ELECTRONICA ELABORACION DE PIEZAS PLASTICAS Y ESTRUCTURAS METALICAS NECESARIAS PARA EL REACONDICINAMIETO PRUEBA DE TARJETA ELECTRONICA EQUIPO ENSAMBLADO ENSAMBLADO DE EQUIPO PRUEBAS DEL CONTROL DE CALIDAD 33 3.2.1. CICLO DE VIDA DEL PROYECTO: Fig. 29: Diagrama de Gantt 34 3.3. DETERMINACION DE LAS NECESIDADES DE RECURSOS Fig. 30: Necesidades de recursos ACTIVIDAD RECURSOS NECESARIOS • Programación de software • Diseño de tarjeta electrónica • Diseño de estructura • Liderazgo de Proyecto • Recursos administrativos • Recursos Humanos • Contratación de personal especializado en cada área • Compra de recursos informáticos y de programación • Compra de impresora 3D para elaboración de piezas plásticas • Herramientas necesarias para elaboración de piezas del equipo • Compra de instrumentos de medición tales como: Multímetro, osciloscopio, tacómetro, cronometro, termohigrómetro, generador de señales, Megohmetro, etc. • Compra de componentes electrónicos • Importación de componentes • Presupuesto necesario para cubrir tales actividades 35 3.4 PLAN DE GESTION DE COMUNICACIÓNES: El equipo de trabajo contará con una comunicación fluida en cada etapa del proyecto tal como se muestra en la siguiente figura: Fig. 31: Plan de comunicaciones 36 3.5. PLAN DE GESTIÓN DE RECURSOS HUMANOS: Los recursos humanos necesarios se muestran en la siguiente figura: Fig. 32: Gestión de recursos humanos 37 3.6 PLAN DE LA GESTIÓN FINANCIERA: De acuerdo al análisis de gastos que se efectuaran en el proyecto, un presupuesto necesario estimado seria la cantidad de s/.24000 soles; Que estará propenso al tipo de cambio deldólar debido a las importaciones que se desean realizaran tal como se muestra en la siguiente figura: Fig. 33: Plan de gestión financiera 38 3.6.1 ANALISIS COSTO BENEFICIO: Fig. 34: Análisis costo beneficio 3.7 PLAN DE GESTIÓN DE CALIDAD: Los objetivos de calidad que van a garantizar los entregables producidos son los siguientes: Fig. 35: Plan de gestión de calidad 39 3.8 PLAN DE GESTION DE ANÁLISIS DE RIESGO: Los riesgos que podrían presentarse son los siguientes: Fig. 36: Plan de gestión de análisis de riesgo 40 Fig. 37: Matriz de análisis de riesgo 41 3.9 PLAN DE ACEPTACIÓN El plazo desde el inicio hasta la culminación del proyecto es de 6 meses, en ese tiempo se ejecutará la implementación y elaboración tanto del software del equipo como de la tarjeta electrónica de control y la estructura o cuerpo del equipo. 3.10 PLAN DE COMPRAS Y GESTION DE PROVEEDORES Plan de compras y gestión de proveedores Los proveedores a solicitar serán del siguiente rubro: • Venta de componentes electrónicos y motores • Importación de componentes electrónicos • Fabricación de tarjeta PBC • Pintado de piezas metálicas con pintura electrostática 3.11 PROCESO DE EJECUCION De acuerdo a la planificación del proyecto se realizará lo siguiente: • Se Iniciará el proyecto de acuerdo al cronograma establecido y se evitara generar riesgos que podrían paralizar una etapa o todo el proyecto. • Se contará con una comunicación fluida para evitar malos entendidos los cuales generarían retraso en el proyecto. • Se realizará la contratación del personal especializado para cada proceso requerido como son: o Elaboración de software, o Elaboración de la tarjeta electrónica o Elaboración de las piezas necesaria para la implementación o Recursos administrativos 42 • Hacer uso debido del presupuesto asignado para la ejecución del proyecto • Realizar el proyecto teniendo en cuenta el nivel de calidad que se desea obtener. • Evitar riesgos mediante el uso de los EPP adecuados en el proceso de prueba del equipo • Realizar el proyecto en el plazo establecido. • Contar con los proveedores adecuados para este proyecto. • Se estima el tiempo de vida del proyecto de 6 meses 3.12 PROCESO DE SEGUIMIENTO Y CONTROL Se realizará el seguimiento y control del proyecto en cada etapa y tendrá una retroalimentación hacia el inicio si es que ocurre un problema en el transcurso del proyecto. Se busca que el margen de error sea mínimo y por lo tanto la etapa de prueba será critica debido a que si no pasa los procesos de calibración correspondiente se tendrá que buscar o analizar la falla que provoco tal suceso. 43 3.13 PROCESO DE CIERRE DE PROYECTO Fig. 38: Gestión de cierre de proyecto 44 CAPITULO 4: ANALISIS DEL RESULTADO 4.1 ASPECTOS TÉCNICOS Se realizaron pruebas iniciales con la placa integrada al equipo y con el rotor con el que se encontraba el equipo. Para evitar accidentes en la parte eléctrica se realizó la correcta disposición de la puesta a tierra del equipo, con lo cual se pudo realizar las siguientes pruebas tanto de velocidad como del tiempo, asimismo las pruebas de contaminación sonora. 4.2 RESULTADOS OBTENIDOS EN PRUEBAS INICIALES: 4.2.1 Velocidad medida: Tabla 2 • RESULTADOS: Se verifica que el margen de error máximo medido es 8.8rpm respecto a un tacómetro digital 45 4.2.2 Tiempo Medido: Tabla 3 • RESULTADOS: Se verifica que el margen de error máximo medido es menor a un segundo respecto a un cronometro digital 46 4.2.3 MEDICION DE CONTAMINACION SONORA La Organización mundial de la salud tiene definido que se considera ruido a todo tipo de sonido superior a los 65dB y que si este ruido supera los 75dB se considera dañino y que se volverá doloroso cuando exceda los 120dB. Se realizo diversas mediciones de ruido con un sonómetro digital, obteniendo los siguientes resultados: Tabla 4 • RESULTADOS: Se observa que el máximo sonido muestreado es 13.8dB y que se produce cuando el equipo trabaja en alta velocidad. También se pudo verificar lo siguiente: • Frenado conforme a lo establecido. • Apertura de tapa se encuentra conforme a lo programado. 47 CONCLUSIONES • De acuerdo a los resultados obtenidos en las pruebas iniciales el margen de error fue el esperado no alcanzando el margen de error anterior que era +/-5% con lo que se podría mejorar en futuras pruebas a realizar en el equipo. • Se tuvo que modificar en gran parte la carcasa del equipo debido a que el panel frontal no contaba con las medidas adecuadas para el nuevo diseño, por lo que se tuvo que rediseñar e implementar al equipo en mención. • Se realizo el cambio de motor por uno con encoder incluido. 48 RECOMENDACIONES • Contrapesar las muestras antes de cada centrifugado debido a que si no se contrapesan las muestras podría provocar que se genere un desbalance en el eje de unión de rotor y motor. • Se podría implementar a futuro un sensor de desbalance de rotor 49 REFERENCIAS BIBLIOGRAFICAS [1]https://www.alldatasheet.com/datasheetpdf/pdf/812338/MICROCHIP/PIC16F877A.html [2] https://doi.org/10.22201/fi.259340732e.2018.19n4.039 [3] https://doi.org/10.22201/fi.255940732e.2018.19n4.039 [4] http://repositorio.urp.edu.pe/handdle/urp/81 [5] https://www.tplaboratorioquimico.com/laboratorio-quimico./materiales-e-instrumentos- de-un-laboratorio-quimico/centrifuga-de-laboratorio.html [6] https://www.alldatasheet.com/datasheet-pdf/pdf/82833/FAIRCHILD/LM7805.html [7] https://pdf1.alldatasheet.es/datasheet-pdf/view/174542/FAIRCHILD/H11A3M.html [8] https://pdf1.alldatasheet.com/datasheet-pdf/view/35218/QT/H11A4.html [9] https://hetpro-store.com/images/Tutoriales/pcb_eagle/hetpro_tutorial_pcb_eagle.pdf https://www.alldatasheet.com/datasheetpdf/pdf/812338/MICROCHIP/PIC16F877A.html https://doi.org/10.22201/fi.259340732e.2018.19n4.039 https://doi.org/10.22201/fi.255940732e.2018.19n4.039 http://repositorio.urp.edu.pe/handdle/urp/81 https://www.tplaboratorioquimico.com/laboratorio-quimico./materiales-e-instrumentos-de-un-laboratorio-quimico/centrifuga-de-laboratorio.html https://www.tplaboratorioquimico.com/laboratorio-quimico./materiales-e-instrumentos-de-un-laboratorio-quimico/centrifuga-de-laboratorio.html https://www.alldatasheet.com/datasheet-pdf/pdf/82833/FAIRCHILD/LM7805.html https://pdf1.alldatasheet.es/datasheet-pdf/view/174542/FAIRCHILD/H11A3M.html https://pdf1.alldatasheet.com/datasheet-pdf/view/35218/QT/H11A4.html https://hetpro-store.com/images/Tutoriales/pcb_eagle/hetpro_tutorial_pcb_eagle.pdf 50 [10] https://pwmlabs.wordpress.com/2016/09/06/programacion-en-assembler-con-mplab- x/ [11]https://carteleras.webcindario.com/Manual%20de%20Programacion%20y%20Simulac ion%20PIC.pdf [12] https://www.bancosangrearagon.org/procesamiento-de-la-sangre/ [13] https://www.cromtek.cl/2020/07/20/como-se-separa-la-sangre-en-una-centrifuga-de- laboratorio/ [14] https://doi.org/10.22201/fi.25940732e.2018.19n4.039 [15] https://doi.org/10.22201/fi.25940732e.2018.19n4.039 https://pwmlabs.wordpress.com/2016/09/06/programacion-en-assembler-con-mplab-x/ https://pwmlabs.wordpress.com/2016/09/06/programacion-en-assembler-con-mplab-x/ https://carteleras.webcindario.com/Manual%20de%20Programacion%20y%20Simulacion%20PIC.pdf https://carteleras.webcindario.com/Manual%20de%20Programacion%20y%20Simulacion%20PIC.pdfhttps://www.bancosangrearagon.org/procesamiento-de-la-sangre/ https://www.cromtek.cl/2020/07/20/como-se-separa-la-sangre-en-una-centrifuga-de-laboratorio/ https://www.cromtek.cl/2020/07/20/como-se-separa-la-sangre-en-una-centrifuga-de-laboratorio/ https://doi.org/10.22201/fi.25940732e.2018.19n4.039 https://doi.org/10.22201/fi.25940732e.2018.19n4.039 51 ANEXOS 1. PROGRAMACIÓN DE MICROCONTROLADOR La programación del microcontrolador PIC16F877A se realizó a través del programa MPLABX, a través del programa se logra controlar todo el sistema, a continuación, se detallan líneas de código usadas en el proyecto: #include "mcc_generated_files/mcc.h" #include "config.h" #include "gdm128128a2.h" #include "dots.h" //__EEPROM_DATA('0', '3', '0', '0', 3, 0, 0xFF, 0xFF); // Time measurement uint16_t dt; double dt1; uint8_t countTMR1INT, overf, countedge; uint32_t acctime; // velocity uint8_t counter2update, turnCount=0; 52 char velocityStr[5]; uint16_t velocity; uint8_t samp; // PWM /*uint16_t*/ float Delay; uint16_t Remaining; //__bit compute; char timerCountStr[4]; uint8_t running = 0; int16_t timerCount, msCounter; // Buttons & switches __bit unlock; uint8_t turn; // Sensors flags __bit resetTimer; __bit prevLockerState; // Speed __bit newInput, refresh; __bit pin_up_last, pin_up_prev; __bit pin_down_last, pin_down_prev; 53 void fsm4(uint8_t); void fsm2(uint8_t, uint8_t, uint8_t); uint8_t fsm3(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t); void showFrame(void); void FSM_Initialize(void); void zeroCross(void); void tmr0cb(void); void elapsedTime(uint16_t); void tmr1cb(void); void tmr3cb(void); void computeDuty(void); /* Main application */ void main(void) { // initialize the device SYSTEM_Initialize(); INTERRUPT_GlobalInterruptDisable(); FSM_Initialize(); 54 EXT_INT_InterruptDisable(); INT_SetInterruptHandler(zeroCross); CCP2_SetCallBack(elapsedTime); TMR0_SetInterruptHandler(tmr0cb); TMR1_SetInterruptHandler(tmr1cb); TMR3_SetInterruptHandler(tmr3cb); // lcminit(); showFrame(); INTERRUPT_GlobalInterruptEnable(); while (1) { if (refresh) { //300ms refresh = 0; if(state3 == RUNNING_3 || state3 == STOPPING_3){ if(turn == 1) ShowRunBar1(); else if(turn == 2) ShowRunBar2(); else if (turn == 3 ) ShowRunBar3(); 55 else if (turn == 4){ ShowRunBar4(); turn = 0;} ++turn; } --counter2update; if (!counter2update) { counter2update = SPEED_REFRESH; float time; if(overf<6) { if(overf) time = (float) dt + (32768<<overf); else time = dt1; float w = 60000/time; w = 1000*w; velocity = (uint16_t)(w+0.5); } else { velocity = 0; } int2str4(velocity); write_numb2(XSPEED, YSPEED, velocityStr); } 56 } if(overf>5){ stopped = 1; } else stopped = 0; if (stopped && state3 == STOPPING_3) { int2str4(0); write_numb2(XSPEED, YSPEED, velocityStr); velocity = 0; __delay_ms(2000); } if (updateTimer) { updateTimer = 0; decreaseTimer(1); showTime(); } // Reset to last setup time 57 if(resetTimer) { resetTimer = 0; timerCountInit(); showTime(); } // State machine for operation setup if (newInput) { newInput = 0; fsm4(running); } // unlock door if(unlock){ unlock = 0; door = ON; updateOutput(); __delay_ms(LOCK_TIME); door = OFF; updateOutput(); 58 } if(start==0){ __delay_ms(8); if(start==0) { if (startbtnstate && sound) bzCounter = TBUZZER_PUSH; startbtnstate = 0; } else startbtnstate = 1; } else startbtnstate = 1; if(!stop){ __delay_ms(8); if(!stop) { if (stopbtnstate && sound) bzCounter = TBUZZER_PUSH; stopbtnstate = 0; } else stopbtnstate = 1; } else stopbtnstate = 1; if(!open){ 59 __delay_ms(8); if(!open) { if (openbtnstate && sound) bzCounter = TBUZZER_PUSH; openbtnstate = 0; } else openbtnstate = 1; } else openbtnstate = 1; if(!push){ __delay_ms(8); if(!push) { if(encbtnstate){ newInput = 1; if (sound) bzCounter = TBUZZER_PUSH; } encbtnstate = 0; } else encbtnstate = 1; } else encbtnstate = 1; 60 pin_up_last = ecw; pin_down_last = eccw; if (pin_up_prev != pin_up_last) { if (pin_up_last == pin_down_last) { ccw += 1; cw = 0; } else { cw += 1; ccw = 0; } newInput = 1; if (sound) bzCounter = TBUZZER_PUSH; } else if (pin_down_prev != pin_down_last) { if (pin_up_last != pin_down_last) { ccw += 1; cw = 0; } else { cw += 1; ccw = 0; 61 } newInput = 1; if (sound) bzCounter = TBUZZER_PUSH; } pin_up_prev = pin_up_last; pin_down_prev = pin_down_last; // turn on buzzer if(bzCounter){ buzzer = ON; updateOutput(); __delay_us(10); bzCounter--; if(!bzCounter){ buzzer = OFF; updateOutput(); } } 62 } if(samp>=100){ samp = 0; uint32_t acc = acctime; uint8_t c = countedge; acctime = 0; countedge = 0; dt1 = (float) acc/c; if(state3 == RUNNING_3 && !speed)computeDuty(); } running = fsm3(locked, !timerCount, !startbtnstate, !stopbtnstate, !velocity); fsm2(locked, running, !openbtnstate); } } void computeDuty(void){ // Must ensure that delay always stay between 726 and 1452 uint16_t dut; 63 if(!overf){ e = dt1 - 25000; float del = 5.1*e;//5.1*e;//5.4*e; del -= 4.4*e1;//4.9*e1;//4.8*e1; del += 0.45*e2;//0.8*e2;//0.95*e2; Delay -= del; if(Delay<0) Delay = 0; else if (Delay>21000) Delay = 21000; dut = (uint16_t)(Delay+0.5); } else { dut = 1000; } void elapsedTime(uint16_t time){ TMR1 = 0; overf = countTMR1INT; countTMR1INT = 0; if(overf){ dt = time; } else { 64 countedge++; acctime += time; } } void tmr3cb(void){ MotorState(ON); TMR3_StopTimer(); } void tmr1cb(void){countTMR1INT++; } } if(state3 == RUNNING_3){ ++msCounter; if (msCounter == 100) { updateTimer = 1; 65 msCounter = 0; } } } } void zeroCross(void){ INTEDG = !zcd; if (!zcd) { // Ending wave samp++; if(!speed && (state3 == RUNNING_3)){ MotorState(OFF); TMR3_StopTimer(); flag = 1; TMR3_WriteTimer(phi); } else if(brk && (state3 == STOPPING_3)){ MotorState(OFF); TMR3_StopTimer(); flag = !flag; 66 TMR3_WriteTimer(48000); } } else { // starting wave if(!speed && (state3 == RUNNING_3)){ if(flag) { TMR3_StartTimer(); } MotorState(OFF); } else if(brk && (state3 == STOPPING_3)){ if(flag) { TMR3_StartTimer(); } MotorState(OFF); } } } // fsm 2: 2 states, 2 inputs 67 void fsm2(uint8_t lockerHigh, uint8_t running, uint8_t toopen) { switch (state2) { case OPEN_2: if (lockerHigh && !toopen) { state2 = CLOSED_2; led_open = ON; led_stop = OFF; led_start = ON; } break; case CLOSED_2: if (!lockerHigh) { state2 = OPEN_2; led_open = OFF; led_stop = OFF; led_start = OFF; } else if (toopen && !running /*&& lockerHigh*/) { state2 = OPENNING_2; } else if (running) { 68 state2 = RUNNING_3; led_open = OFF; led_stop = ON; led_start = ON; } break; case OPENNING_2: if (!toopen) { state2 = CLOSED_2; led_stop = OFF; led_start = ON; unlock = 1; } break; case RUNNING_3: if (!running) { state2 = CLOSED_2; led_open = ON; 69 led_stop = OFF; led_start = ON; unlock = 1; } break; default: break; } case RUNNING_3: if (!isClosed || tostop || timerEnd) { // isClosed is just used for emergency rare case state3 = STOPPING_3; } else if(!speed){ //INTE = 1; } else { MotorState(ON); } out3 = 1; break; 70 case STOPPING_3: if (isStopped) { state3 = STOPPED_3; INTE = 0; PEIE = 0; MotorState(OFF); resetTimer = 1; out3 = 0; if (sound) { bzCounter = TBUZZER_END; } } else if(brk){ out3 = 1; } else { MotorState(OFF); out3 = 1; } break; case STOPPED_3: 71 if (isClosed && tostart) { state3 = STARTING_3; out3 = 1; } else out3 = 0; break; case STARTING_3: if (!tostart) { state3 = RUNNING_3; msCounter = 0; TMR1 = 0; TMR3 = 0; TMR3_StopTimer(); CCP2IF = 0; TMR3IF = 0; TMR1IF = 0; PEIE = 1; INTE = 1; // Plot control counter2update = SPEED_REFRESH; 72 // velocity algorithm countTMR1INT = 6; overf = 6; dt = 65535; dt1 = 65535; velocity = 0; stopped = 0; // start e1 = 0; e2 = 0; phi=45000; samp = 0; Delay = 20500; countedge = 0; acctime = 0; } out3 = 1; break; default: 73 break; } return out3; } void fsm4(uint8_t flag3) { switch (state4) { case SETUP_SOUND_4: if (cw) { cw = 0; clear_box32x32(XBOX4, YBOX); write_box32x32(XBOX1, YBOX); state4 = SETUP_TIME_4; } else if (ccw) { ccw = 0; clear_box32x32(XBOX4, YBOX); write_box32x32(XBOX3, YBOX); state4 = SETUP_BRAKE_4; 74 } else if (!encbtnstate) { if (sound) { sound = 0; write_picture(XISOUND, YICO, 16,14, nosound16x14); } else { sound = 1; write_picture(XISOUND, YICO, 16,14, sound16x14); write_box32x32(XBOX1, YBOX); state4 = SETUP_TIME_4; } else if (!encbtnstate) { if (speed) { speed = 0; write_picture(XISPEED, YICO, 32,14, slow32x14); } else { speed = 1; write_picture(XISPEED, YICO, 32,14, fast32x14); } write_box32x32(XBOX2, YBOX); } break; 75 case SETUP_BRAKE_4: if (cw) { cw = 0; clear_box32x32(XBOX3, YBOX); write_box32x32(XBOX4, YBOX); state4 = SETUP_SOUND_4; } else if (ccw) { ccw = 0; clear_box32x32(XBOX3, YBOX); write_box32x32(XBOX2, YBOX); state4 = SETUP_VEL_4; } else if (!encbtnstate) { if (brk) { brk = 0; clean_picture(XIBRAKE-8, YICO, 32, 16); write_picture(XIBRAKE, YICO, 16, 14, no16x14); } else { brk = 1; write_picture(XIBRAKE-8, YICO, 32, 14, yes32x14); 76 } write_box32x32(XBOX3, YBOX); } break; case SETUP_TIME_4: if (cw) { cw = 0; clear_box32x32(XBOX1, YBOX); write_box32x32(XBOX2, YBOX); state4 = SETUP_VEL_4; } else if (ccw) { ccw = 0; clear_box32x32(XBOX1, YBOX); write_box32x32(XBOX4, YBOX); state4 = SETUP_SOUND_4; } else if (!encbtnstate && !flag3) { state4 = SELECT_TIME_4; } break; 77 case SELECT_TIME_4: if (flag3) { state4 = SETUP_TIME_4; } else if (!encbtnstate) { timerCountPersist(); state4 = SETUP_TIME_4; } else if (cw) { cw = 0; increaseTimer(1); char a[3], b[3]; a[0] = timerCountStr[0]; a[1] = timerCountStr[1]; a[2] = '\0'; b[0] = timerCountStr[2]; b[1] = timerCountStr[3];b[2] = '\0'; // char a[3]={timerCountStr[0], timerCountStr[1], '\0' }; 78 // char b[3]={timerCountStr[2], timerCountStr[3], '\0' }; write_numb2(XTIME, YTIME, a); write_numb2(XTIME+64, YTIME, b); } else if (ccw) { ccw = 0; decreaseTimer(1); char a[3], b[3]; a[0] = timerCountStr[0]; a[1] = timerCountStr[1]; a[2] = '\0'; b[0] = timerCountStr[2]; b[1] = timerCountStr[3]; b[2] = '\0'; // char a[3]={timerCountStr[0], timerCountStr[1], '\0' }; // char b[3]={timerCountStr[2], timerCountStr[3], '\0' }; write_numb2(XTIME, YTIME, a); write_numb2(XTIME+64, YTIME, b); } break; 79 default: break; } } /** * */ void FSM_Initialize(void) { Oe = 1; updateOutput(); // Initial states state3 = STOPPED_3; state4 = SETUP_TIME_4; state2 = locked ? CLOSED_2 : OPEN_2; // Actuators & Sensors initialize // Motor TMR3_StopTimer(); motor = OFF; 80 stopped = 1; overf = 6; // Buzzer buzzer = OFF; bzCounter = 0; // Locker door = OFF; unlock = 0; prevLockerState = state2; Oe = 0; updateOutput(); // Indicators led_open = locked; led_start = locked; led_stop = OFF; // button initialize startbtnstate = 1; stopbtnstate = 1; openbtnstate = 1; encbtnstate = 1; 81 pin_up_prev = ecw; pin_down_prev = eccw; // Display initial setup turn = 1; sound = 1; speed = 0; brk = 1; timerCountInit(); resetTimer = 0; msCounter = 0; } /** * */ void showFrame(void){ at(0,0); write_hua(0x00,0x00); ctrl(0x94); //only text display ag(0,0); 82 write_hua(0x00,0x00);//cleardisplay(); ctrl(0x98); ag(0,0); ctrl(0x98); //only graphic display //write_picture(24,27,80,74, logo80x74); __delay_ms(3000); ctrl(0x98); ag(0,0); write_hua(0x00,0x00); write_picture(XMTIME, YMENU, 32, 6, time32x8); write_picture(XMSPEED, YMENU, 32, 6, speed32x8); write_picture(XMBRAKE, YMENU, 32, 6, brake32x8); write_picture(XMSOUND, YMENU, 32, 6, sound32x8); write_picture(XITIME, YICO, 16,16, clock16x16); write_picture(XISPEED, YICO, 32, 14, slow32x14); write_picture(XIBRAKE-8, YICO, 32, 14, yes32x14); write_picture(XISOUND, YICO, 16,14, sound16x14); write_picture(XTURN, YTURN, 16,14, turn116x14); write_numb2(XSPEED, YSPEED, "0000"); 83 showTime(); write_picture(XTIME+48, YTIME+6, 16, 16, colon16x16); write_picture(XRPM, YRPM, 16, 22, rpm_orbitron7_16x23); write_box32x32(XBOX1, YBOX); if (state2 == OPEN_2) { write_picture(XLOCK, YLOCK, 16,15, unlock16x15); } else { write_picture(XLOCK, YLOCK, 16,15, lock16x15); } } /** * * @param vel */ void int2str4(uint16_t vel) { // abcd velocityStr[0] = vel / 1000 + '0'; // a uint16_t bcd = vel % 1000; 84 velocityStr[1] = bcd / 100 + '0'; // b uint8_t cd = bcd % 100; velocityStr[2] = cd / 10 + '0'; // c velocityStr[3] = cd % 10 + '0'; // d } /** * */ void showTime(void){ char a[3], b[3]; a[0] = timerCountStr[0]; a[1] = timerCountStr[1]; a[2] = '\0'; b[0] = timerCountStr[2]; b[1] = timerCountStr[3]; b[2] = '\0'; //char a[3]={timerCountStr[0], timerCountStr[1], '\0' }; //char b[3]={timerCountStr[2], timerCountStr[3], '\0' }; 85 write_numb2(XTIME, YTIME, a); write_numb2(XTIME+64, YTIME, b); } /** * */ void timerCountInit(void) { //uint16_t readWord; uint16_t flashAddr = 0x1F80; timerCount = FLASH_ReadWord(flashAddr); if(timerCount<0 || timerCount>6000){ timerCount = 0; } uint8_t min = (uint8_t) timerCount/60; uint8_t sec = (uint8_t) timerCount%60; timerCountStr[0] = '0'+(min/10); timerCountStr[1] = '0'+(min%10); timerCountStr[2] = '0'+(sec/10); 86 timerCountStr[3] = '0'+(sec%10); /*char i; for (i = 0; i < 4; i++) timerCountStr[i] = '0'+4-i;//eeprom_read(i); timerCount = 43*60+21;//eeprom_read(4)*60 + eeprom_read(5);*/ } /** * */ void timerCountPersist(void) { //uint16_t writeData = 0x55AA; uint16_t flashAddr = 0x1F80; uint16_t Buf[ERASE_FLASH_BLOCKSIZE]; FLASH_WriteWord(flashAddr, Buf, timerCount); //char i; // for (i = 0; i < 4; i++) 87 // eeprom_write(i, timerCountStr[i]); // eeprom_write(4, timerCount / 60); // uint8_t seconds = timerCount % 60; // eeprom_write(5, seconds); } /* * Increment frequency in 0.1*step KHz (= 1 timerCount unit) */ void increaseTimer(char step) { if (timerCount + step <= TIMER_TOP) { timerCount = timerCount + step; timerCountStr[3] = timerCountStr[3] + step; if (timerCountStr[3] > '9')/*==0x3A*/ { timerCountStr[3] = timerCountStr[3] - 10; timerCountStr[2]++; if (timerCountStr[2] == '6') { timerCountStr[2] = '0'; timerCountStr[1]++; if (timerCountStr[1] == ':') { 88 timerCountStr[1] = '0'; timerCountStr[0]++; } } } } } /* * Decrease frequency in 0.1*step KHz (= 1 cont_freq unit) */ void decreaseTimer(char step) { if (timerCount - step >= 0) { timerCount = timerCount - step; timerCountStr[3] = timerCountStr[3] - step; if (timerCountStr[3] < '0') { timerCountStr[3] = timerCountStr[3] + 10; timerCountStr[2]--; if (timerCountStr[2] == '/') { timerCountStr[2] = '5'; 89 timerCountStr[1]--; if (timerCountStr[1] == '/') { timerCountStr[1] = '9'; timerCountStr[0]--; } } } } } /** End of File */
Compartir