Logo Studenta

R Renojo_Programa_Especial_Titulacion_Titulo_Profesional_2022

¡Este material tiene más páginas!

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 
*/

Continuar navegando

Materiales relacionados