Está en la página 1de 20

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

Microcontroladores (EL256)

Sistema electrónico basado en el microcontrolador PIC18F45K50 que permita


monitorear la temperatura en un recipiente transportador de pollo frito.

Sección del curso:


EL53

Nombre del profesor:


Kalun José Lau Gan

Alumno (apellidos, nombres – código):

Canchari Vargas, Luis Alberto – u201921275

Ciclo 2022-02
Microcontroladores EL256 2

Sistema electrónico basado en el microcontrolador PIC18F45K50 que permita


monitorear la temperatura en un recipiente transportador de pollo frito (junio
de 2022)
Ponce L. Jean, Valverde R. Fabian, Silva C. Brandon, Canchari V. Luis

El presente trabajo busca proporcionar una solución eficiente


Resumen – En el presente documento se muestra el y confiable para el monitoreo de la temperatura en recipientes
proceso de planteamiento de la situación problemática, transportadores de alimentos, con especial enfoque en el pollo
objetivos (generales y específicos), marco teórico frito. Se espera que con los resultados obtenidos sean de
requerido, desarrollo, conclusiones, recomendaciones. utilidad tanto para la industria alimentaria como para la
Todo con el fin de realizar un Sistema electrónico basado comunidad científica y tecnológica interesada en el desarrollo
en el microcontrolador PIC18F45K50 que permite de sistemas electrónicos aplicados a la seguridad alimentaria.
monitorear la temperatura en un recipiente transportador
de pollo frito. Dando uso de las diversas herramientas
requeridas para la implementación del hardware y
software del proyecto presentado.

1) Definición del problema


Índice de Términos – PIC18F45K50, Diagrama de Flujo,
Hardware, Software (1) Problema General
Nuestro problema general sería facilitar el proceso de
vacunación contra el Covid-19, mediante el transporte de
I. INTRODUCCIÓN vacunas en recipientes refrigerados con
En el campo de la tecnología y de la electrónica, el desarrollo temperatura monitoreada.
de sistemas de monitoreo y control ha revolucionado la
(2) Problema Ingenieril
manera en que interactuamos con el entorno que nos rodea.
Uno de los ámbitos en los que estos sistemas han tenido un ¿Qué consideraciones tecnológicas e ingenieriles de
impacto significativo es la industria alimentaria, donde la diseño mecatrónico se debe de tener en cuenta, a fin de
garantía de la calidad y seguridad de los productos es de suma desarrollar un sistema electrónico basado en el
importancia. microcontrolador PIC18F4550 que permita monitorear la
temperatura en un recipiente refrigerado transportador de
Nos enfocaremos en el diseño y desarrollo de un sistema ampollas de vacunas para el COVID-19 el cual satisfaga
electrónico basado en el microcontrolador PIC18F45K50, con los requerimientos de confiabilidad, sencillez de
el objetivo de monitorear la temperatura en un recipiente operación con el objetivo de minimizar el porcentaje de
transportador de pollo frito. La temperatura es un factor crítico pacientes con este problema?
en la conservación de alimentos y su control adecuado es
fundamental para prevenir la proliferación de bacterias y
garantizar la inocuidad de los productos. II. OBJETIVOS
A continuación, se presentan los objetivos generales y
El uso de un microcontrolador como el PIC18F45K50 ofrece específicos trazados para este proyecto.
diversas ventajas para la implementación de sistemas de
monitoreo de temperatura. Estos dispositivos poseen potentes A. Objetivo General
capacidades de procesamiento, amplia conectividad y una Diseñar, implementar y desarrollar un sistema electrónico
variedad de periféricos integrados que facilitan la adquisición basado en el microcontrolador PIC18F45K50 que permita
de datos y el control de dispositivos externos. monitorear la temperatura en un recipiente transportador de
pollo frito con el fin de garantizar la seguridad y calidad del
Presentaremos el diseño y la arquitectura del sistema producto. Determinar la temperatura entre cuatro sensores los
electrónico, describiendo los componentes utilizados, el cuales deben ser de tres tipos diferentes distribuidos en el área
software de programación empleado y los algoritmos del recipiente. Tener en cuenta que cuando ocurra una
implementados. Además, se detallarán los pasos necesarios diferencia entre +/- 2 grados entre las cuatro medidas se
para la configuración y calibración del sistema, así como los deberá emitir una alarma sonora a fin de avisar al que lo
resultados obtenidos a través de pruebas y experimentos transporta para que tome una acción correctiva.
realizados. Evidenciaremos cada avance realizado de manera
detallada.
Microcontroladores EL256 3

B. Objetivo Especifico acceder a la memoria de datos para ejecutar una instrucción,


mientras se lee de la memoria de programa la siguiente
 Investigar y seleccionar los componentes adecuados, instrucción. Es decir, podemos acceder de forma simultánea a
como sensores de temperatura y dispositivos de ambas memorias.
comunicación, para la implementación del sistema de El bus de memoria de programa. Está formado por 21 líneas
monitoreo de temperatura. de dirección, 16 líneas de instrucción y 8 líneas para datos.
 Diseñar un diagrama de bloques que permita conocer El bus de memoria de daros: Compuesto por 12 líneas de
las diversas conexiones a realizar. dirección y 8 líneas de datos.
 Diseñar la arquitectura del sistema electrónico,
teniendo en cuenta los requisitos específicos del
monitoreo de temperatura.
 Desarrollar el software de programación necesario
para la adquisición de datos de temperatura y la
visualización de los resultados en tiempo real.
 Configurar y calibrar el sistema para asegurar
mediciones precisas y confiables de la temperatura
del recipiente, considerando las condiciones y
limitaciones del entorno de transporte.

Al lograr estos objetivos, se espera obtener un sistema


electrónico funcional y eficiente que contribuya a la seguridad
y calidad del pollo frito durante su transporte, mediante el
monitoreo de la temperatura en tiempo real.

III. MARCO TEÓRICO


A. Hardware
En esta sección se colocan los diversos componentes y sus
respectivas características, funcionamiento y propósito de uso
dentro del proyecto.
1) Microcontrolador PIC18F45K50
El PIC18F45K50 es un microcontrolador de 8 bits
desarrollado por Microchip Technology. Es parte de la familia
PIC18 y se basa en la arquitectura de microcontroladores
RISC de alto rendimiento.
El PIC18F45K50 es ampliamente utilizado en una variedad de
aplicaciones, incluyendo dispositivos médicos, electrónica de Fig. 2. Diagrama de bloques del PIC18F45K50.
consumo, automoción, automatización industrial y muchos
otros sistemas embebidos. Finalmente, se mencionan algunas características generales:

 Microcontrolador con módulo USB 2.0. Soporta Low


speed 1.5Mb/s y full speed 12Mb/s.
 1kB de memoria de doble acceso vía USB.
 33 pines I/O disponibles.
 Memoria de programa flash de 32kB.
 RAM de 2 KBytes.
 EEPROM de datos de 256 Bytes.
 Velocidad de la CPU 12 MIPS.
 Oscilador externo de dos modos hasta 48 MHz.
 Oscilador interno con frecuencias desde 31kHz hasta
16MHz.
 Oscilador secundario con Timer 1 de hasta 32kHz.
 Opciones de oscilador dual permiten que la velocidad de la
Fig. 1. Arquitectura y puertos del microcontrolador. CPU y del módulo USB sean diferentes.
 ADC de 10 bits y 13 canales.
El PIC18F45K50 posee una arquitectura tipo Harvard, ya que  Tecnología nanoWatt que brinda características y
dispone de diferentes buses para acceder a la memoria de funciones de bajo consumo y ahorro de energía.
programa o la memoria de datos. Esto nos da la opción de
Microcontroladores EL256 4

 Voltaje de operación 2.3 V a 5.5 V. 4) Liquid Crystal Display LMO16L


 4 Timer (desde Timer0 a Timer3). Dos de 8 bits y dos de El LCD LMO16L es un módulo alfanumérico que consta de
16 bits. una pantalla de cristal líquido y un controlador incorporado
 4 módulos de captura/comparación/PWM. que facilita la interfaz con un microcontrolador u otro
 EUSART, SPP, SPI, I2C. dispositivo electrónico. El tamaño de la pantalla suele ser de
 Resistencias de pull-ups en el puerto B programables. 16 caracteres por 2 líneas (16x2), lo que significa que puede
 Función del pin MCLR opcional. mostrar hasta 16 caracteres alfanuméricos en cada línea y
 Brown-out Reset de valor programable. hasta dos líneas de texto, cuenta con dos pines de alimentación
(VSS y VDD), tres líneas de control (RS, RW y E), canal de
 Power-on Reset.
datos del LCD (D0 a D7) y dos conexiones para iluminación.
 Power-up Timer y Oscillator Start-up Timer.
 Soporta 10,000 ciclos de borrado/escritura en memoria
flash.
 Soporta 1,000,000 ciclos de borrado/escritura en memoria
EEPROM.
 retención de datos mayor a 40 años.
 protección de código y datos programable.
 Encapsulado DIP de 40 pines.

2) Resistores
El objetivo principal de incluir una resistencia en un
electrónico es establecer el valor de la tensión interna. Según
la Ley de Ohm, este componente electrónico carece de una
polaridad definida.
Fig. 4. LCD de 16x2 con sus respectivas líneas de conexión.
Tabla 1
Anteriormente se mencionaron dos conexiones para la
iluminación los cuales determinan la intensidad con la que se
visualizan los caracteres en el LCD. Se usa mayormente un
potenciómetro para determinare esta variable.

En la implementación se emplean resistencias de Fig. 5. Representación estructural del contraste.


100kΩ,10kΩ,4.7kΩ este valor se determina según el código
de colores antes mencionado en la Tabla 1. En el proyecto será empleado para desplegar la información
hacia el usuario. Es decir, la transmisión de los mensajes de
3) Botones alerta de que un sensor de temperatura está sobrepasando los
Se emplearon tanto botones de dos como cuatro pines de +/- 2 grados, para ello el usuario o enfermera debe tomar
conexión. Por otro lado, ambos cuentan con la misma acción correctica. También, se mostrará el promedio de los
aplicación. cuatro sensores de temperatura.

Comandos LCD:
Hay algunas instrucciones de comandos preestablecidas en
LCD, que debemos enviar a LCD a través de algún
microcontrolador. Algunas instrucciones de comando
importantes se dan a continuación:

Fig. 3. Representación gráfica del funcionamiento de un botón.


Microcontroladores EL256 5

El PICkit 3 es ampliamente utilizado por desarrolladores y


entusiastas de la electrónica para cargar firmware en
microcontroladores PIC y dsPIC, así como para realizar tareas
de depuración y monitoreo en tiempo real.
Permite cargar el código de programa en los
microcontroladores PIC y dsPIC, así como depurar el código
en tiempo real utilizando el entorno de desarrollo integrado
MPLAB IDE de Microchip. además, se conecta al ordenador a
través de una interfaz USB, lo que facilita la conexión y el
suministro de energía.

Fig. 6. Comandos a utilizar del LCD.

Nota: Comandos empleados posteriormente para el desarrollo


del proyecto.

5) LED
Un diodo Led es un diodo que cuando está polarizado
directamente emite luz.

Fig. 9. Representación de conexiones del Pickit 3.

Finalmente, se mencionan algunas características generales:

Fig. 7. Representación del LED con su respectiva polaridad  USB (Full speed 12 Mbits/s)
 Ejecución en tiempo real.
6) Potenciómetro  MPLAB IDE compatible.
Es un componente electrónico que se utiliza para controlar y  Firmware actualizable desde PC/ Descarga web.
ajustar el valor de una resistencia eléctrica de manera variable.  Totalmente cerrado.
Consiste en una resistencia variable y un cursor móvil que se  Admite tensión a 2.0 V (2.0 V a 6.0 V).
desplaza a lo largo de esa resistencia. El cursor está conectado  LED diagnóstico (encendido, ocupado, error).
a un punto de conexión que puede ajustarse para variar la
 Lectura/escritura y memoria de datos del
resistencia total del potenciómetro. Su propósito en el
microcontrolador.
proyecto es el de conseguir un valor variable y modificar el
 Borrar el espacio de la memoria del programa.
contraste de LCD antes mencionado.
 Programe un flash de hasta 512Kb.

8) USB TTL
El USB TTL es un interfaz UART USB serie. Una forma
económica de agregar capacidad USB a nuestro
microcontrolador. Con este módulo puede obtener capacidades
USB para cargar y descargar bocetos y códigos. Cuenta con un
indicador de comunicación del transceptor RXD/TXD,
protección contra sobrecargas, utilizando un fusible de
restauración automática de 500 mA.

Fig. 8. Estructura interna del potenciómetro

7) Programador Pickit 3
El programador PICkit 3 es un dispositivo de programación y
depuración desarrollado por Microchip Technology. Está
diseñado específicamente para programar y depurar
microcontroladores PIC y dsPIC de la familia Microchip.
Microcontroladores EL256 6

Fig. 10. Conexiones del Pickit 3 al microcontrolador. rango de medición de temperatura es de 0°C a 50°C, con una
precisión de +/- 2°C.
Finalmente, se mencionan algunas especificaciones y
características generales:

 Voltaje de operación: 5 voltios.


 Puede obtener acceso a señales GND, CTS, VCC, TX, RX
y DTR.
 El protocolo es manejado por entero en el chip, no se
requiere programación de firmware específica para USB.
 La interfaz UART soporta 7 u 8 bits de datos, 1 o 2 bits de
parada, y paridad par/impar/marca/espacio/sin paridad.
Fig. 12. Diagrama de conexiones al microcontrolador.
 Operación a 3.3V a 5V configurable mediante jumper.
12) Termistor
9) Protoboard El termistor NTC es un sensor que puede medir temperatura.
Una placa de pruebas o placa de inserción cuenta con una Su funcionamiento se basa en un efecto que varía la
ranura mediana y una serie de agujeros dispuestos en filas y resistencia que presenta un semiconductor con la temperatura.
columnas y espaciados en el paso estándar de 2,54 mm (1/10 Entonces el termino termistor proviene de Thermally Sensitive
de pulgada), típico de los pines de los circuitos integrados. Resistor. Por ejemplo, existen de termistor: NTC y PTC. Este
Generalmente contiene 64 x 2 filas de 5 agujeros. Es una el NTC es el que tiene un coeficiente de temperatura negativa.
herramienta muy versátil, ya que permite la experimentación y Esto es que cuando la temperatura aumenta, entonces la
el prototipado rápido de circuitos. Los componentes resistencia del sensor disminuye. El rango de este termistor es
electrónicos, como resistencias, capacitores, transistores, de -50°C a 280°C.
diodos y cables, se insertan en los orificios y se conectan entre
sí según el diseño del circuito. Esto facilita la prueba de
diferentes configuraciones y la modificación rápida del
circuito sin dañar los componentes.

Fig. 13. Diagrama de conexiones al microcontrolador

13) LM35
Es un sensor de temperatura analógico, el cual permite medir
Fig. 11. Representación de las conexiones internas del Protoboard. temperaturas desde -55°C hasta 150°C. Arroja una señal del
tipo analógico y lineal con una pendiente de 10mV/°C. Tiene
10) Cables de Conexión una precisión de 0.5°C y es de un bajo consumo energético.
a) Jumper(male-male)

b) Jumper(female-male)

11) DHT11
El DHT11 es un sensor de temperatura y humedad utilizado
para medir la temperatura ambiente y la humedad relativa. Es
un sensor económico y ampliamente utilizado en proyectos de
electrónica y sistemas embebidos.
El DHT11 consta de un sensor de humedad capacitivo y un
termistor de temperatura. El sensor de humedad mide la
humedad relativa en el aire y proporciona una señal analógica Fig. 14. Diagrama de conexiones al microcontrolador
proporcional a la humedad. El termistor de temperatura mide
la temperatura ambiente y también proporciona una señal 14) Servomotor
analógica correspondiente. Es un dispositivo electromecánico utilizado para controlar la
Está encapsulado en un paquete de plástico y tiene tres pines posición, velocidad y aceleración de un mecanismo. Está
de conexión: VCC para la alimentación (3-5V), GND para la compuesto por un motor, un sistema de control y un sistema
conexión a tierra y DATA para la comunicación de datos. Su de retroalimentación.
Microcontroladores EL256 7

El motor dentro de un servomotor puede ser de corriente utilizamos el programa MPLABX IDE. Por otro lado, la
continua (DC) o de corriente alterna (AC), aunque los implementación de los lenguajes C.
servomotores más comunes son de corriente continua. El
sistema de control se encarga de recibir una señal de entrada, 1) MPLABX IDE
generalmente en forma de pulsos, y utilizarla para controlar la MPLAB X IDE es un entorno de desarrollo integrado (IDE,
posición o la velocidad del eje del motor. por sus siglas en inglés) utilizado para programar y depurar
microcontroladores y controladores digitales de señal (DSP,
por sus siglas en inglés) fabricados por Microchip
Technology. Es una herramienta de software que proporciona
un conjunto completo de características para el desarrollo de
aplicaciones embebidas.

Fig. 17. Logo del software a emplear

En el desarrolló del presente proyecto se emplea el MPLABX


IDE

2) Proteus
Es un software de diseño electrónico y simulación de circuitos
Fig. 15. Medidas del servomotor. desarrollado por Labcenter Electronics. Se utiliza ampliamente
en el campo de la electrónica y la ingeniería para diseñar,
simular y verificar circuitos electrónicos antes de su
15) Transistor BC548 implementación física.
El transistor BC548 es un transistor de unión bipolar (BJT, por Ofrece un entorno de diseño intuitivo y completo que permite
sus siglas en inglés) de uso general y bajo nivel de potencia. a los ingenieros crear circuitos electrónicos utilizando
Es ampliamente utilizado en aplicaciones de electrónica componentes virtuales. El software proporciona una biblioteca
debido a su disponibilidad, bajo costo y versatilidad. extensa de componentes electrónicos, incluyendo resistencias,
El BC548 pertenece a la familia de transistores NPN (polo capacitores, transistores, microcontroladores, entre otros, que
negativo positivo). Tiene tres terminales: el emisor (E), la base se pueden seleccionar y conectar entre sí para formar el
(B) y el colector (C). El flujo de corriente en el transistor se circuito deseado.
controla mediante la corriente aplicada a la base.

Fig. 18. Software de simulación de circuitos Proteus 8.

Fig. 16. Conexiones del transistor.

B. Software
A continuación, se mencionarán las diversas plataformas de
software usadas para el desarrollo del proyecto. Para ello
Microcontroladores EL256 8

IV. AVANCES DEL PROYECTO


A. Avance 1
Al comienzo de la reunión de coordinación se preguntó a los
integrantes del grupo si cuentan con los componentes y
software antes mencionado para el correcto desarrollo del
presente trabajo. Luego, se realizó un “Brainstorm” para
plantear ideas de cómo llevar a cabo la propuesta realizada. En
consecuencia, se logró el siguiente avance.

Fig. 22. Primer avance del esquemático del circuito

Pendiente:
 Mejorar la idea ya propuesta del diagrama de
bloques.
 Para la siguiente sesión tener ideas de cómo realizar
el diagrama de flujo.
C. Avance 3
Fig. 21. Debatiendo que sensor de temperatura usar. Para esta tercera sesión se debió tener ideas para el diagrama
de flujo. También seguimos con el avance de nuestro
Para finalizar la primera grabación se realizó la asignación de diagrama de bloques.
cargos, luego se elaboró el cronograma de trabajo, se decidió
el tema de la siguiente sesión.

Pendientes:
 Realizar búsqueda de los datasheets de los sensores
propuestos.
 Tener una idea de cómo realizar el diagrama de
bloques.
 Para la siguiente sesión tener una idea de cómo
realizar el diagrama de bloques.
 Buscar información relacionada con la problemática
actual.
B. Avance 2
En la segunda grabación cada integrante expuso su búsqueda
de los sensores propuestos. Para ello, cada integrante realizo
su búsqueda de hojas técnicas de cada sensor, con todo esto
comenzamos a realizar el diagrama de bloques para el Fig. 23. Segundo avance del esquemático del circuito.
proyecto a realizar. Tuvimos que consultar el datasheet del
microcontrolador PIC18F4550 para comenzar a elaborar el
diagrama de bloques.
Microcontroladores EL256 9

Pendiente:
 Mejorar la idea ya propuesta del diagrama de
bloques.
 Cada integrante debe seguir intentando la
codificación para el proyecto.
E. Avance 5
Para esta quinta reunión nos reunimos presencial para seguir
intentando el código en el MPLABX IDE. Para ello, todos los
integrantes debían estar con sus respectivos materiales para el
proyecto.

Fig. 26. Avance del código de nuestro proyecto


Fig. 24. Primer avance del diagrama de flujo.

Pendiente:
 Buscar código de cada sensor y probar en proteus.
 Dar ideas para el código main, teniendo en cuenta el
diagrama de bloques.
D. Avance 4
Para esta sesión se nos unió un nuevo compañero. Ya con el
grupo completo cada uno dio nuevas ideas. Comenzamos con
el código en C, tomamos como referencia el código del LM35
del repositorio del profesor Kalun José Lau Gan de la semana
10, con esto comenzamos a realizar el main de nuestro
proyecto (prueba y error). Tomando como referencias de
varios códigos encontrados en internet y a la vez realizando
nosotros lo aprendido en el curso de Microcontroladores.

Fig. 27. Avance de la implementación del proyecto.

Pendiente:
 Seguir intentando el código main, ya teniendo código
del DHT11, LM35 y Termistor.
F. Avance 6
Para esta reunión nos conectamos de forma virtual para seguir
con el código en C, nos llegó a salir el código de las
temperaturas en los sensores. También realizamos un avance
de la maqueta en el software Thinkercad.

Fig. 25. Avance del código de nuestro proyecto.


Microcontroladores EL256 10

Fig. 28. Código de las temperaturas en cada sensor de temperatura.

Fig. 31. Validación del código, en la implementación del proyecto.

Pendiente:
 Para la siguiente sesión comenzar con el armado de la
maqueta y verificación del código.
H. Avance 8
Para esta reunión nos reunimos de forma presencial tuvimos
algunos percances con los sensores y tuvimos que cambiar a
último minuto. Al final utilizamos dos termistores, un LM35 y
Fig. 29. Verificación del código en el software Proteus. un DHT11. También como innovación utilizamos dos
servomotores que realizaran la función de abrir la tapa del
recipiente de refrigerador transportador de ampollas de
vacunas COVID-19 que tendrá una clave secreta para que
nadie pueda abrir este recipiente, solo personas autorizadas a
inyectar las vacunas.

Fig. 30. Avance de maqueta en Thinkercad.

Pendiente:
 Para la siguiente sesión mejorar las conexiones en el
protoboard y ordenar los cables para su
posteriormente colocarlo en la maqueta.

G. Avance 7
Para esta reunión nos reunimos de forma presencial. Tuvimos
algunos problemas, ya que uno de nuestros integrantes estuvo
enfermo, pero igual seguimos con el proyecto.

Fig. 32. Desarrollo de maqueta del proyecto.


Microcontroladores EL256 11

V. DESARROLLO C. Diagrama de flujo


A. Diagrama de Bloques General

Fig. 33. Diagrama de bloques general final.

B. Esquema del circuito electrónico

Fig. 34. Esquema del circuito electrónico final.


Microcontroladores EL256 12

Fig. 36. Cabecera de ajustes del programa.

Librería DHT11:

Se utilizo la función DHT11_Start() para iniciar el


funcionamiento del DHT11. Se configura RB5 como salida y
se envía 0V durante 18ms, luego se envía 5V durante 20us y
finalmente se configura los puertos como entrada para recibir
los datos del sensor.

Fig. 37. DHT11_Start().

Se utilizo la función DHT11_Check() para evitar que el LCD


falle. Primero pregunta si el puerto RB5 es 1 y espera hasta
que lo sea. Luego pregunta si RB5 es 0 y espera. Por último,
pregunta si RB5 es 1 y espera.

Fig. 38. DHT11_Check().


Fig. 35. Diagrama de flujo final.

Se utilizó la función DHT11_Read() para leer los datos


enviados por el sensor DHT11. Esta función retorna la parte
D. Código Fuente C entera de la humedad relativa, la parte decimal de la humedad
relativa, la parte entera de la temperatura, la parte decimal de
la temperatura y la verificación. Cada variable está
conformada por 8 bits. Es por esto que el lazo for se ejecuta 8
veces.
Microcontroladores EL256 13

Fig. 41. EUSART_config().

Se creó la función INT_config() para la configuración de las


interrupciones. Se configuro el oscilador interno a 8MHz. Se
habilitaron las interrupciones desenmascaradas y las
interrupciones periféricas. Se habilitó la interrupción asociada
al Rx para permitir la comunicación bidireccional. Se
configuraron RE0, RE1 y RE2 como salidas para los
servomotores y para el led. Se configura RB4 como salida
para el buzzer. Se habilitan las resistencias de pull up.
Fig. 39. DHT11_Read().

Se ha creado la función LCD_init(), se han configurado todos


los pines del puerto D como salidas, se espera 23 ms para
evitar errores, se llama a la función LCD_CONFIG(), se
espera 15 ms para que se inicialice y se llama a las funciones
BORRAR_LCD(), CURSOR_HOME() y
CURSOR_ONOFF(OFF).

Fig. 42. INT_config().

Se utilizó la función SERIAL_newline() para crear un salto de


línea. Se manda el dato 0x0A y se espera a que termine de
enviarse. De la misma manera con el dato 0x0D.

Fig. 40. LCD_init().

Se creó la función EUSART_config() para configurar la


comunicación serial. Primero se configuró el pin TX como
salida para transmitir los datos. No es necesario configurar RX
como entrada porque ya lo es por defecto. Se configura
SPBRG como 25 para una velocidad de transmisión de 19200 Fig. 43. SERIAL_newline().
baudios y una FOSC = 8MHz. Se habilita el módulo de la
comunicación serial. Se habilita el receptor y el transmisor. Se Se utilizó la función SERIAL_escribemensaje() para mandar
configura BGRH para alta velocidad. un mensaje por el puerto serial.
Microcontroladores EL256 14

Fig. 44. SERIAL_escribemensaje().

Se utilizó la función MENU_display() para observar el menú


de inicio.

Fig. 47. LM35_A().

Creamos la función TRM_ST(), declaramos las variables con


las que se va a trabajar y las constantes c1, c2, c3 obtenidas
del datasheet y bibliografía. Desactivamos el voltaje de
referencia, procedemos a leer el conversor ADC y guardamos
la lectura en la variable v0, este es el voltaje que se genera
cuando el termistor varía su resistencia interna. Para hallar la
resistencia interna del termistor se ejecuta la operación de la
Fig. 45. MENU_display(). línea 87. Usando estos valores se calcula la temperatura en la
línea 88, esta operación se obtuvo de la bibliografía
consultada, en la siguiente línea de código se le resta 273.15
Se utilizó la función ADC_init() para la configuración del para pasar de grados kelvin a celsius. Luego, se ejecuta una
módulo conversor análogo digital. Se configuro ADCON2 corrección debido a que no nos da valores exactos debido a
para modificar el tiempo de adquisición a 8T AD y para dividir que la ecuación no es una recta con en el LM35 sino una
la frecuencia entre 4. pendiente. Esta corrección consiste en que si el valor recibido
es mayor a 0 y menor igual a 4, se suma 2° a la temperatura, si
es mayor a 4 y menor igual a 17 se suma 1°, si es mayor a 17 y
menor igual a 28 la temperatura se suma 0°C, si es mayor a 28
y menor a 35 se suma 1°, si es mayor a 35 temperatura es
igual a 0°C. Finalmente, retornamos temperatura como
variable float. TRM_ST2() funciona de la misma manera.

Fig. 46. ADC_init().

Se creó la función LM35_A() para obtener el valor de la


temperatura otorgada por el LM35. Se habilita el pin VCFG0
para habilitar el voltaje de referencia y colocarlo en 1.27V.
Esto se hace con el objetivo de hacer más sencillo el proceso
de escalamiento. Se modifica el registro ADCON0 para que
lea el valor analógico del canal AN0 donde se encuentra el
LM35. Luego se empieza a leer el dato y se espera a que
termine de leer para luego obtener el valor de la temperatura.

Fig. 48. TRM_ST().


Microcontroladores EL256 15

Se utiliza la función ESCRIBE_VARIABLECHAR_LCD()


para convertir en dígitos un número y enviarlo al LCD.

Fig. 49. ESCRIBE_VARIABLECHAR_LCD().

Esta función se ha creado para calcular el promedio de las 4


temperaturas.

Fig. 50. ST_PROMEDIO().

En el evento principal se llaman a todas las funciones y se


obtienen los valores de las 4 temperaturas. Se comparan los
valores de estas y si el valor de la diferencia entre cualquier
par de sensores es mayor a 2 se muestra un mensaje de error
en la pantalla del LCD y se enciende un led de alarma. Si no
es así se muestran las 4 temperaturas por 2 segundos y se
muestran el promedio por 1 segundo. Luego se procede a
verificar el estado de la variable indicador para determinar si
el servo gira o no

Fig. 51. main().

Se utilizó la interrupción provocada por RCIF para determinar


que tercas se han presionado y poder saber si la contraseña
ingresada es la corre. Primero se baja la bandera y luego se
pregunta si la letra seleccionada coincide con la primera letra
de la clave. La segunda condicional solo será verdadera
cuando la siguiente letra presionada sea la l y letra1 sea igual a
1, en otras palabras, que la letra C se haya presionado antes.
Las demás condicionales tienen el mismo funcionamiento
hasta que todas las letras coincidan y se logre modificar el
valor del indicador, el cual controla los servomotores. Si se
Microcontroladores EL256 16

presiona la tecla X, indicador toma el valor de 0 y el servo gira Muestra el promedio de las cuatro temperaturas.
a 0. Se presiona la letra M para mostrar el menú.

Fig. 54. Simulación en proteus del promedio de los cuatro sensores.

Cuando algún sensor sobrepasa los +/- 2°C de alguno de los sensores se
emitirá un mensaje de error, inmediatamente se prendera un led y sonara el
buzzer.

Fig. 52. EUSART_RX_ISR().


Fig. 55. Simulación en proteus del error en alguno de los sensores.
E. Pruebas de simulación
Se introduce una clave por comunicación serial bidireccional para colocar los
El microcontrolador lee las temperaturas de los 4 sensores servos a 90 grados, cuando se coloque la contraseña correcta y se coloquen a 0
(puertos AN0, AN1, AN2 y RB5). grados cuando se presione la tecla para cerrar el contenedor.

Fig. 56. Simulación en proteus de la comunicación serial.


Fig. 53. Simulación en proteus de los cuatro sensores.
Microcontroladores EL256 17

[4] Editorial La Republica S.A.S. (s.f.). Coronavirus COVID-19 en el


Perú. Recuperado de https://www.larepublica.co/especial-covid-
19/peru [Consulta: 24 de noviembre de 2022].
[5] Lau, K. (2022) maincode4.c at master – Tocache/Microchip-
PIC18F4550. GitHub. Recuperado de
https://github.com/tocache/Microchip-PIC18F4550/blob/master/U
PC%20Microcontroladores%202022-2/MPLABX%20Projects/
semana_10_el53_g1_varios.X/maincode4.c [Consulta: 24 de
noviembre de 2022].
[6] colaboradores de Wikipedia. (2022). Resistor. Wikipedia, la
enciclopedia libre. Recuperado de
https://es.wikipedia.org/wiki/Resistor [Consulta: 26 de noviembre
de 2022].
[7] Protoboard, ¿Qué es y cómo se usa? (2022).
Descubrearduino.com. Recuperado de
https://descubrearduino.com/protoboard/ [Consulta: 26 de
Fig. 57. Simulación en proteus de la comunicación serial.
noviembre de 2022].
[8] Beristain, J. A. (2016). GoConqr – Arquitectura Microcontrolador
PIC18F4550. Recuperado de
VI. CONCLUSIONES https://www.goconqr.com/mapamental/6463910/arquitectura-
microcontrolador-pic18f4550 [Consulta: 26 de noviembre de
En conclusión, se puede determinar que la propuesta realizada 2022].
y los objetivos planteados, tanto general como específicos, se [9] Micro servomotor SG90. (s.f.). Electronicos Caldas. Recuperado
cumplieron de forma correcta. Teniendo en cuenta el proceso de https://www.electronicoscaldas.com/es/motores-y-servos/468-
micro-servo-motor-sg90.html [Consulta: 30 de noviembre de
de planeación, desarrollo y proceso de pruebas necesarios para 2022].
determinar la factibilidad al desarrollarse. [10] Transistor NPN BC548. (s.f.). VISTRONICA S.A.S. Recuperado
de
 Se desarrolló el prototipo de un sistema electrónico https://www.vistronica.com/componentes-activos/transistores/trans
istor-npn-bc548-detail.html#:~:text=El%20transistor
basado en el microcontrolador PIC148F4550 que %20BC548%20es%20de,tonos%2C%20biom%C3%A9dica%2C
permita monitorear la temperatura en un recipiente %20entre%20otros. [Consulta: 30 de noviembre de 2022].
refrigerado transportador de ampollar de vacunas [11] Cama Apaza, G. (2018). Simulación de un PIC en Proteus.
para el COVID-19. Recuperado de
https://repositorio.une.edu.pe/bitstream/handle/20.500.14039/3999/
 Se implementó un sistema que permite monitorear las MONOGRAF%C3%8DA%20-%20CAMA%20APAZA.pdf?
temperaturas en un recipiente transportador de sequence=1 [Consulta: 30 de noviembre de 2022].
vacunas. [12] FT232RL USB TO TTL 3.3V/5V FTDI Serial Adapter Module.
(s.f.). Components101. Recuperado de
 Se desarrolló un prototipo mecánico que permite al https://components101.com/modules/ft232rl-usb-to-ttl-converter-
que cuida las vacunas contra el COVID-19. pinout-features-datasheet-working-application-alternative
 Se desarrolló un software capaz de identificar una [Consulta: 30 de noviembre de 2022].
alarma, en el momento en que uno de los sensores [13] Microchip. (2009). PIC18F2455/2550/4455/4550. Recuperado de
https://ww1.microchip.com/downloads/en/devicedoc/39632e.pdf
tenga una leve subida o bajada de +/- 2°C. [Consulta: 30 de noviembre de 2022].
[14] Bitwise Ar. (2018). Arduino desde cero en Español – Capitulo 34 –
VII. RECOMENDACIONES Termistor NTC como sensor de temperatura (100k). YouTube.
Recuperado de https://www.youtube.com/watch?v=8Wry8lwgGtA
 Instalar un teclado matricial para que tenga un código [Consulta: 30 de noviembre de 2022].
de verificación [15] HeTPro. (s.f.). Termistor NTC 100k 3950 para impresora 3D.
Recuperado de https://hetpro-store.com/termistor-3950-100k-para-
 Modificar el tamaño del prototipo en caso se requiera 3d-printer/ [Consulta: 30 de noviembre de 2022].
varias ampollar de vacunas contra el COVID-19. [16] Mouser Electronics . (s.f.). Dht11 Humedity & Temperature
Sensor. Recuperado de
 Mejorar los materiales implementados en el https://www.mouser.com/datasheet/2/758/DHT11-Technical-Data-
desarrollo de la maqueta para una mejor presentación Sheet-Translated-Version-1143054.pdf [Consulta: 30 de
de la misma. noviembre de 2022].
[17] Texas Instruments (2017). LM35 precision centigrade temperatura
sensor. Recuperado de https://www.ti.com/lit/ds/symlink/lm35.pdf
[Consulta: 30 de noviembre de 2022].
VIII. REFERENCIAS BIBLIOGRÁFICAS [18] Salas Arriarán, S. (s.f.). El módulo LCD alfanumérico HD44780.
Scribd. Recuperado de https://es.scribd.com/doc/167790384/5-El-
modulo-LCD-alfanumerico-HD44780 [Consulta: 30 de noviembre
[1] Raj, A. (2015). Módulo de pantalla LCD 16x2. Circuit Digest. de 2022].
Recuperado de https://circuitdigest.com/article/16x2-lcd-display-
module-pinout-datasheet [Consulta: 24 de noviembre de 2022].
[2] Diodo LED Cómo funciona Características y Ventajas. (s. f.).
Areatecnologia. Recuperado de
https://www.areatecnologia.com/electronica/como-es-un-led.html
[Consulta: 24 de noviembre de 2022].
[3] Luis R., J. (2022). POTENCIOMETRO - Qué es, como funciona y
aplicaciones. ComoFunciona | Explicaremos hasta cosas que NO
existen! Recuperado de https://como-funciona.co/un-
potenciometro/ [Consulta: 24 de noviembre de 2022].
Microcontroladores EL256 18

IX. ANEXOS
Anexo A: Grabaciones de coordinación

Anexo B: Software de maqueta


Microcontroladores EL256 19

Anexo C: Maqueta del proyecto.


Microcontroladores EL256 20

Anexo C: Reuniones presenciales.

También podría gustarte