Está en la página 1de 12

ARMAS EROSA GUILLERMO:

COB REYES REYNA GUADALUPE:

FERNANDEZ BARRERA DANIELA:

GARCIA SANDOVAL OSCAR


ESCUELA DE INGENIERÍA.
MEDINA TRAHYN OCTAVIO HERNANDEZ
INGENIERÍA BIOMÉDICA.

MICROCONTROLADORES.

SEGUNDO PARCIAL

PRACTICA EXAMEN

DOCENTE: ISMAEL PÉREZ RUIZ.

INTEGRANTES:

ARMAS EROSA GUILLERMO

COB REYES REYNA GUADALUPE

FERNANDEZ BARRERA DANIELA

GARCIA SANDOVAL OSCAR

MEDINA TRAHYN OCTAVIO HERNAN


INTRODUCCION

Se denomina incubadora al aparato cuya función común es crear un ambiente con la temperatura adecuada para el
crecimiento o reproducción de seres vivos.

Una incubadora para neonatos es un equipo fundamental de una unidad de tratamiento intensivo neonatal. Consiste en
una cámara cerrada de material transparente que incluye un acolchado esterilizado para acostar al bebé, con calefacción
por convección, filtro de aires exterior, ventanas para manipular al paciente, y diversos y sofisticados sistemas de
monitoreo. En el caso de este proyecto se han simulado dos de los aspectos presentes en el sistema de una incubadora
tales como el sistema de calefacción, representado por un foco de 60 w, junto con un sistema de enfriamiento
representado por un ventilador de 15 volts, ambos siendo manipulados a través de interrupciones generadas por el
programa C Compiler, y el segundo aspecto son las alarmas, encargadas de avisar en caso de generarse algún problema
relacionado con la temperatura.
DESARROLLO

DIAGRAMA DE FLUJO
CÓDIGO

Se declaran las librerías a usar y el numero de bits


del convertidor ADC. Así como la frecuencia del
clock.

Iniciamos nuestro void main, inicializando el


teclado matricial y el LCD.
Se activa pullups para el teclado y no añadir
resistencias físicamente.
Se inicializan los periféricos: la entrada AN0 como
analógica (LM35)

Comienza el programa con el mensaje de


bienvenida.
En el menú principal se selecciona la escala de la
incubadora
Celcius = “A”
Farenheit = “B”

Por medio de un while con la variable tipo en


donde si no selecciona nada se puede quedar ahí
“estancado” hasta que presione algún tipo de
conversión.
En el display da el mensaje el cual se selecciono.
Y para fines de conversiones y de mas se guarda la
variable tipo la cual si es C=1, F=2.

Ahora el programa solicita introducir una


temperatura mínima por medio del teclado esta
debe constar de 4 dígitos definido con la variable
x por tanto este se usa en el while, y cada vez que
se presione se estará aumentando. Incluyendo el
decimal. Se puede limpiar mediante la tecla C –
Clear.

Para obtener los valores del teclado se hizo un


switch case con los valores en char posibles (0 – 9
y #, *) y se le dio un valor en float.

Para que cuando se escribieran los valores se


realizara el corrimiento se uso la función
LCD_GOTOXY(X,Y) la cual nos permite dirigir el
cursor de este modo cada vez que se presionara
un valor aumentaría en la variable DIR =
coordenada x.
...
Con la variable x que es el numero de veces que
se ha dado un digito al sistema, se interpreta en
float tempMax depende su caso, si es el primer
digito, el valor se multiplica por 10 para ser
decena.
Unidad: se suma solo lo anterior con el valor.
Punto: esta por default debe ser ingresado!
Decimal: el valor se multiplica por 0.1 y se suma a
lo que ya se tenia.

Se repite el proceso ahora con las variables:


tempMin = temperatura mínima deseada
y = cantidad de dígitos presionados
value= valor

...
Se limpia la pantalla.
En esta parte entra a un bucle infinito en donde
realiza la lectura del sensor y la multiplica por
0.48.

La variable tipo que nos indica si es en farenheit o


en celcius determina si se realiza la conversión de
la temp. Sensada o no.

Continua en la etapa de alarmas según lo


sensado.
Si la temperatura es menor que la temperatura
mínima establecida se resta y la resta de esto es la
variable control. Si control es mayor que 0.5
enciende la alarma roja con el pin en A3, y
enciende una alarma sonora por medio de delays
en C2. Y despliega el mensaje.

Ocurre algo similar si es menor solo que enciende


alarma amarilla con otro sonido y mensaje.

Cuando deja de estar en estos parámetros se


estabilizan.
Si la temperatura es menor que la temperatura
máxima debe estar prendido el foco PIN A5 hasta
llegar a su valor establecido.

Si es mayor que la temperatura máxima el


ventilador PIN D3 debe activarse. Y cuando se
estabiliza se apaga.
SIMULACION

Simulación 1. Se eligió, conversión en Celsius, temp Max: 36.8 y Min: 28.0. Por lo que al estar en 26.88 C es mucho mayor que 0.5 y emite la alarma
amarilla y la alarma sonora. Y Debe estar encendido el Foco para calentar.

Simulación 2. Cuando se seleccionan los grados Farenheit. Temp Max: 86.0 y Min: 80.6. Como el sensor esta en 31°C por conversión a F = 87.29 por
tanto es mayor y se activa el ventilador.
RESULTADOS PRACTICOS

Ilustración 1. Cuando el sensor esta 27.84 °C y la temperatura Max: 29.0 y Mínima: 24.0. Por tanto, el foco enciende para calentar el LM35
Ilustración 2. Circuito en protoboard
CONCLUSIONES

Guillermo Armas: esta practica fue un poco complicada, no por la lógica de como debían de hacerse las cosas, sino por la
manera en la que debía de leerse el teclado matricial, sobre todo la parte de almacenar el numero en un variable, para
posteriormente trabajar con el, además después de trabajar en PSOC me di cuenta de que realmente muchas cosas de este
proyecto pudieron haberse simplificado usando PSOC.

Daniela Fernandez: esta practica fue un reto ya que debíamos unir todos los componentes que ya habíamos usados como
son el display LCD, el teclado matricial, buzzer, etc. pero en C, así que con ayuda de las librerías pudimos saber que funciones
usar para el código, y por ejemplo de lo mas complicado fue obtener los valores del teclado ya que los da en CHAR y nosotros
lo necesitábamos en Float, así que se nos ocurrió un switch case en cada caso y eso podría darle valor a cada letra. No
esforzamos en que el circuito quedara bien y funcional, pero lo único que no quedo fue la tecla “#” ya que se nos complico
en donde debía hacer esta interrupción e intentamos con la función reset_cpu(); pero no funciona en todo el programa solo
en algunos casos en donde esta leyendo la variable del teclado.

Oscar García: Esta practica estuvo muy compleja ya que la lógica del funcionamiento es muy precisa y si no se entendía bien
lo que se quería, no podías hacer nada, igual tuvimos problemas al hacer toda la proto, ya que no nos funcionaba el ventilador
y tuvimos que ponerle un transistor para que pudiera funcionar correctamente, de igual manera al hacer el reseteo con el #
nos costó mucho trabajo y no funcionó correctamente, pero hay en algunas ocasiones que si funciona. También nos dimos
cuenta de que el lm35 es muy variable y no es tan exacto como nos gustaría.

Reyna Cob: de esta practica puedo concluir que estuvo muy larga y confusa al principio, además de que, si estuvo algo larga,
pero con el tiempo fuimos descubriendo como implementar el teclado y las funciones de las teclas, además de probar las
cosas en el proteus resulto un poco complicado porque se cerraba antes de probarlo completo y correcto. sin embargo,
fuimos probando poco a poco cada parte en especifico y al final que todo funcione en armonía, una de las cosas que se nos
complico fue que el reset con la tecla gato.

Octavio Medina: fue un proyecto muy extenso sin embargo tuvimos tiempo, utilizamos bastantes líneas de código para
lograrlo, al igual que los componentes eres bastantes y tratamos de hacerlo de la manera mas ordenada posible hasta usamos
3 protoboards, algunas pequeñas cosas nos dieron problemas al momento de conectar sin embargo no fue cosa del otro
mundo como el ventilador y el foco.