Está en la página 1de 28

Universidad Nacional Experimental del Táchira

Vicerrectorado Académico
Decanato de Docencia
Departamento de Ingeniería Electrónica
Núcleo de Electrónica y Sistemas y Digitales
Laboratorio de Sistemas Digitales II

Informe Practica Nro. 03


Diseño de aplicaciones con el conversor
análogo - digital y la interfaz serie de periféricos.
(USART).

Autor:
Victorino Villamizar Delgado, CIV.-23.541.989
San Cristóbal, Julio, 2021
Introducción

Dia a día vemos como nos acercamos mas a una era cada vez más digital, donde
implícitamente en nuestra vida esta presente el lenguaje digital, para que esto sea posible
debemos transformar a este lenguaje variables que están presentes en nuestro ambiente e
influyen en cualquier proceso que queramos controlar , como lo son el caso de la temperatura,
humedad y presión. Pero ya que son variables tan cambiantes, primero debemos aprender a
monitorearlas, para saber como regular o proteger nuestro proceso de dicha influencia.
Para este proceso de monitoreo se crean dispositivos que cambian sus propiedades por la
influencia de dichas variables y que tendrá efecto en la señal análoga que nos entregara, de esta
manera permitiendo su medición al convertir dicha señal análoga a una digital, la cual será más
fácil trabajar y llevarla a su unidad y escala de medición respectiva.
El PIC18F4550 nos permite tomar estas lecturas análogas y transformarlas a digitales por medio
de un conversor interno, para hacer un monitoreo y también si queremos compartir dichos datos
poder comunicarnos con otros dispositivos y enviarlos en tiempo real. Para que todo esto sea
posible, se debe saber utilizar el conversor interno del PIC y configurar esa interfaz de conexión
para poder comunicarnos.
Marco Teórico

1. Funcionamiento del sensor LM35 e indicar la relación de temperatura/Nro. digital.

El LM35 es un circuito integrado de precisión, sensor de temperatura, con un voltaje de salida


linealmente proporcional a la temperatura en grados centígrados, con una calibración de 1ºC de
variación. A su salida genera una señal analógica de un voltaje diferente según la temperatura
que esté captando en cada momento, por lo general, puede abarcar temperaturas de medición
de entre -55ºC y 150ºC, este rango de temperaturas está limitado por la cantidad de voltajes
variables que puede tener a su salida, que van desde los -550mV hasta los 1500mV, es decir,
cuando está midiendo una temperatura de 150ºC ya sabemos que va a dar 1500mV en su salida.
Mientras que si tenemos -550mV quiere decir que está midiendo -55ºC.

El pinout del LM35 es bastante simple, la primera patilla o pin es para la alimentación necesaria
para el sensor, que va de 4 a 30v, aunque puede variar en función del fabricante. Luego, en el
centro, tenemos la patilla para la salida, es decir, la que dará una tensión u otra en función de la
temperatura. Y la tercera patilla es de tierra.

Características y datasheets

El LM35 es un dispositivo que no necesita de circuitería extra para calibrarlo, por tanto, resulta
muy sencillo de usar, solo nos tenemos que preocupar del rango de voltajes que da a su salida
conociendo la temperatura máxima y mínima que puede medir y transformar esa señal
analogica a digital y que en la pantalla aparezca la temperatura en ºC o hacer conversiones a la
escala que quieras.

Entre las características técnicas más destacables están:


 Tensión de salida proporcional a la temperatura: de -55ºC a 150ºC con tensiones de -
550mV a 1500mV
 Calibrado para grados Celcius
 Tensión de precisión garantizada de 0.5ºC a 25ºC
 Baja impedancia de salida
 Baja corriente de alimentación (60 μA).
 Bajo coste
 Package SOIC, TO-220, TO-92, TO-CAN, etc.
 Voltaje de trabajo entre 4 y 30v

Para obtener la relación Temperatura/Nº digital, partimos de la ecuación

5𝑉
𝑉 = ∗𝑁 =𝑉
1024

Y a su vez la ecuación dada por el fabricante para determinar el voltaje de salida está dada por

𝑚𝑉
𝑉 = 10 ∗𝑇
º𝐶

Igualando las 2 ecuaciones tenemos que la relación Temperatura/Nº Digital es,

125
𝑇= º𝐶 ∗ 𝑁
256

2. Funcionamiento del sensor MPXA6115A e indicar la relación de presión/Nro.


digital.

Es un transductor piezorresistivo, sensor de presión de silicio, de señal condicionada,


monolítico. Este sensor combina técnicas avanzadas de micromecanizado, metalización de
película fina y procesamiento de semiconductores bipolares para proporcionar una señal de
salida analógica precisa y de alto nivel que es proporcional a la presión aplicada. Soporta una
presión máxima de 400Kpa.
Características:

• Resistente a alta humedad


• Precisión mejorada a alta temperatura
• Disponible en paquetes de contorno pequeño y superpequeño
• 1.5% de error máximo entre 0 ° C y 85 ° C
• Ideal para sistemas basados en microprocesadores o microcontroladores
• Temperatura compensada de -40 ° C a +125 ° C
• Paquete de montaje en superficie de termoplástico duradero (PPS)

El pinout del MPXA6115 consta de 8 pines de los cuales solo se utilizan tres para conexión,
siendo el pin 2 Vs, donde alimentaremos el circuito trabajando una tención mínima de 4,75 a
5,25 máximo; el pin 3 GND será la conexión a tierra y el pin 4 Vout, el cual nos dará una tensión
en función de la presión recibida. Los demás pines no deben ser conectados ni a tierra ni a otro
circuito externo, solo son para fijar el integrado a la placa.

De la ecuación anterior podemos hallar la relación Presión/Nº digital, ya que el numero digital
esta relacionado con el voltaje de salida por

5𝑉
𝑉 = ∗𝑁 =𝑉
1024

Y a su vez la ecuación para determinar el voltaje de salida esta dada por

𝑉 = 𝑉 ∗ (0.009 ∗ 𝑃 − 0.095), siendo 𝑉 = 5𝑉


,
Igualando las 2 ecuaciones tenemos que la relación Presión/Nº Digital es, 𝑃 = ,
3. Funcionamiento del sensor HIH5030 e indicar la relación de Humedad/Nro.
digital.

Son sensores de humedad de circuito integrado cubierto, es de bajo voltaje, operan hasta 2.7 V,
lo que es ideal en sistemas a batería en los que el suministro es un nominal de 3 V. El
empaquetado SMD en cinta y carrete permite su uso en procesos de fabricación automatizada
de clasificación y ubicación de alto volumen, con lo cual se eliminan los errores de alineación
en orificios pasantes de placas de circuitos impresos.

Están especialmente diseñados para usuarios de OEM (fabricantes de equipos originales) de


alto volumen. La salida de voltaje casi lineal de este sensor permite la entrada directa a un
controlador u otro dispositivo. Gracias a su absorción de energía típica de solo 200 µA, es muy
adecuada para sistemas a batería de muy bajo consumo. La intercambiabilidad concisa del
sensor reduce o elimina los costos de calibración de producción de OEM.

El sensor de HR emplea un elemento de detección capacitivo con polímero termoendurecible


ajustado con láser con acondicionador de señal incorporado en el chip. La construcción con
varias capas del elemento de detección brinda una excelente resistencia a la mayor parte de los
riesgos de aplicación, tales como la condensación, el polvo, la suciedad, los aceites y las
sustancias químicas ambientales comunes

Características:

- Funciona hasta 2,7 V CC, a menudo ideal en sistemas alimentados por batería donde
el suministro es de 3 V CC nominales.
- Carcasa de plástico termoestable moldeado.
- Salida de voltaje casi lineal vs% RH.
- Intercambiabilidad recortada con láser.
- Diseño de bajo consumo
- Precisión mejorada
- Tiempo de respuesta rápido
- Rendimiento estable y de baja deriva
- químicamente resistente

El pinout de este encapsulado en de tres pines de conexión, de izquierda a derecha el primero


seria GND, el segundo el Vout y por último Ve donde alimentaremos de 2,7 a 5V máximo.
Para obtener la relación Humedad relativa/Nº digital, partimos de la ecuación

5𝑉
𝑉 = ∗𝑁 =𝑉
1024

Y a su vez la ecuación dada por el fabricante para determinar el voltaje de salida está dada por

𝑉 = 𝑉 ∗ (0.00636 ∗ 𝑆𝑒𝑛𝑠𝑜𝑟 𝑅𝐻 + 0,1515), siendo 𝑉 = 5𝑉

Igualando las 2 ecuaciones tenemos que la relación Humedad relativa/Nº Digital es,

𝑁 − 155,136
𝑆𝑒𝑛𝑠𝑜𝑟 𝑅ℎ =
6,51264

4. Funcionamiento del conversor análogo digital que maneja el PIC 18F4550.

Características:

 Resolución programable por software en modo de 8 y 10 bits


 se puede llegar hasta a 50K muestras por segundo, lo que es ideal para proyectos de
adquisición de datos.
 13 canales de entradas multiplexadas.
 Rango del voltaje de entrada para el ADC 0-Vcc.
 Referencia de voltaje interna o externa.
 Modo de conversión ADC (continua o individual).
 Inicio de conversión ADC por Auto-Disparo en fuentes de Interrupción.
 Interrupción ADC al completar la conversión.

Un ADC convierte mide el voltaje V en un pin (que tendrá que estar declarado como entrada
con el correspondiente registro TRISA) y lo convierte en un número. El voltaje se mide en
referencia a un voltaje mínimo, Vref(-) , y a un voltaje máximo, Vref (+):
𝑉−𝑉 ( )
𝑉 =
𝑉 ( )−𝑉 ( )

La fórmula anterior corresponde a un voltaje normalizado. Si el voltaje V alcanza el máximo


(Vref+) tendremos una salida de 1 y si se queda en el mínimo (Vref-) una salida de 0.
Normalmente Vref- suele ser Vss=GND=0V y Vref+ = Vcc = 5V, pero pueden usarse otros
voltajes de referencia. Si por ejemplo queremos medir una señal que sabemos que oscila entre
2 y 3 voltios usaríamos Vref-=2 y Vref+=3. Así aprovecharíamos mejor el rango dinámico del
conversor.

Como el microcontrolador no va a manejar números en coma flotante, el voltaje normalizado


se expresa con un entero, convirtiendo el intervalo real [0,1] en el intervalo de niveles enteros
entre [0 y Nmax-1]. La resolución del ADC es una característica fundamental y nos dice el
número de niveles con los que cubrimos el intervalo [0,1]. Por ejemplo, en los PIC solemos
tener una resolución de 10 bits, que representan 2^10=1024 niveles. El intervalo real [0,1) se
aplicaría al intervalo [0,1023]. Si asumimos un rango de 5V, tendremos que la resolución de
cada nivel es de r=5/1024 V=4.88 mV. Según la documentación de Microchip cualquier voltaje
entre [0 y r] (o por debajo de 0, lo que corresponde a V<Vref-) se cuantificaría en el nivel 0.
Entre r y 2r tendríamos una salida de nivel 1. Así hasta llegar a nivel 1023 que cuantificaría
voltajes por encima de 1023r = 1023x 5/1024 = 4.995V. Como se ve, voltajes por debajo de
Vref- o por encima de Vref+ son posibles y se cuantifican como nivel mínimo 0 o máximo,
1023. Niveles por debajo de 0V o por encima de la tensión de alimentación (normalmente 5V)
pueden ser dañar el PIC.

Nivel Voltaje
0 <r
1 [r,2r]
2 [2r,3r]
… …
1023 >1023r
Aunque un PIC puede tener del orden de 8-12 posibles canales (pines) de entrada analógica,
solo tiene normalmente un único módulo ADC, lo que significa que no podemos tomar medidas
simultáneas de varios canales. Si es necesario, lo que podemos hacer es ir conectando
(seleccionando) los sucesivos canales al ADC para ir midiendo sus voltajes.

Hay que seguir los siguientes pasos para una correcta conversión AD:

a) Configurar el módulo A/D


- Configurar las entradas analógicas y el voltaje de referencia (ADCON1).
- Selecciona el canal A/D de entrada a leer (ADCON0).
- Selecciona el tiempo de Adquisición A/D (ADCON2).
- Seleccione el reloj de la conversión A/D (ADCON2).
b) Esperar el tiempo requerido de adquisición.
c) Comienzo de la conversión A/D.
- Activa el Bit GO/DONE del registro ADCON0.
d) Esperar que la conversión A/D termine
- Interroga el Bit GO/DONE si es (=0), conversión completa.
e) Leer los registros del resultado A/D (ADRESH:ADRESL)

El módulo interno A/D del PIC incorpora un condensador de muestreo como muestra la imagen
de arriba. Entonces antes de dar inicio a una conversión A/D hay que asegurarnos de que el
condensador haya sido cargado con la tensión suministrada en el canal seleccionado, esto viene
a ser como el tiempo de adquisición. Existen 2 formas de generar este tiempo.

Por Software: se establece por código un tiempo simbólico igual al tiempo de adquisición y
luego se inicia una conversión A/D.

Automático: se configura un Tiempo de Adquisición que se establecerá de forma automática


entre, la orden de inicio de conversión y muestreo de la señal para iniciar la conversión. Este
tiempo se puede configurar a través de los bits ACQT[2:0] del registro ADCON2.

Tacq = Tiempo de Adquisición. Tacq >= 2.45uS

Tad = Tiempo de Conversión (por cada bit, para 8 o 10 bits).


0.7uS < Tad < 1.3uS

Luego de saber cuál es el Tacq mínimo y Tad por cada bit, es necesario saber cuánto debe ser
el tiempo total requerido para una correcta conversión A/D. Para una resolución de 10 bits.

Tiempo Total = Tacq + Tconversion + Tdescarga.


Tiempo Total = 2.45uS + 10*(1.3uS) + 3uS
Tiempo Total = 19.45uS ≈ 20uS

El tiempo de descarga es necesario para dar inicio a un nuevo muestreo por el canal A/D
En la siguiente imagen se muestra una tabla del Tad respecto a la Fosc, esto nos indica cual
debe ser el divisor de la Fosc para respetar el Tiempo de Adquisición y Conversión.
5. Directivas del compilador para el conversor análogo digital que maneja el PIC
18F4550.

En el encabezado del programa incluir la siguiente línea, si se va a trabajar el conversor


A/D a 10 bits ya que por defecto funciona a 8 bits.

#DEVICE ADC=10

6. Funciones en C que se utilizan para el conversor análogo digital que maneja el PIC
18F4550.

En el compilador , las instrucciones para manejar el conversor AD son las siguientes:


 setup_adc_ports(valor)

 setup_adc(modo)
 set_adc_channel(canal)

0 (AN0) 1 (AN1) 2 (AN2) 3 (AN3)


4(AN4) 5 (AN5) 6 (AN6) 7 (AN7)

 valor=read_adc()

Lectura del resultado y almacenado en valor, que viene a ser un numero entero dependiendo de
la directiva #DEVICE ADC= empleada

7. Explicar en qué consiste la interfaz serie de periféricos y como funciona en el PIC


18F4550.

La comunicación serial es una de las más simples que podremos emplear en nuestro
microcontrolador PIC. La comunicación UART o comunicación serial sólo utiliza tres líneas:
una para recibir los datos Rx, otra para trasmitir los datos Tx y la línea común GND.

En nuestro caso específico para el PIC18F4550 las líneas TX y RX corresponden a los pines 25
y 26 (Puerto RC6 y RC7 respectivamente).

El pic 18F4550 solo tiene un puerto UART físico, es por eso que solo tiene un solo RX y un
solo TX para realizar la comunicación serial. Existen otros PICS que poseen más de un UART
facilitando realizar varias comunicaciones con el dispositivo al tiempo. Si necesitamos
adicionar más puertos de comunicación serial con pic, podremos hacerlo con ayuda del PIC C
Compiler creando UARTS VIRTUALES.

Cada dato se transmite bit a bit, un bit a la vez, por lo tanto, se hace mucho más lenta, pero tiene
la ventaja de necesitar menos líneas y las distancias a las cuales se puede transferir la
información son mayores, además con el uso del módem se puede trasmitir a cualquier parte
del mundo.
A continuación, se describen las características de este módulo UART.

 Operación Síncrona y Asíncrona.


 Operación Full Dúplex en modo Asíncrono.
 Operación Half Dúplex en operación Síncrona Maestro-Esclavo.
 Operación de 8 o 9 bits.
 Generador de Baud-Rate de Alta y Baja
 Calibración Automática de Velocidad de Baudios.
 Detección Automática de Recepción de datos.
 Detección de errores de OverRun y Frame (datos sobrescritos y
dato invalido respectivamente).
 Dos interrupciones independientes; TX completado, RX completado.

A continuación, se explicarán los PASOS para la Transmisión/Recepción de datos a través de


la USART

1. Configurar las líneas pin RX y pin TX como entrada y salida respectivamente, a través
del registro TRISC.
2. Configurar el modo Síncrono o Asíncrono.
3. Configurar el Baud-Rate del USART a través del registro UBRRH y
4. Configurar Tamaño de byte 8/9 bits.
5. Habilitar la Transmisión y Recepción a través de los
bits TXEN y RCEN respectivamente.
6. Habilitar la Interrupción de Transmisión/Recepción a través de los
bits TXIE y RCIE respectivamente (opcional).

Comunicación Serial Sincrónica

Para realizar esta configuración de la comunicación, se requiere adicionar una línea que
contenga pulsos de reloj que indiquen que el dato que viaja en la otra línea de datos es válido;
la duración del bit está determinada por la duración del pulso de sincronismo.

Comunicación Serie Asincrónica

En esta comunicación los pulsos de reloj no son necesarios y se utilizan otros mecanismos para
realizar la transferencia de datos.
La duración de cada bit está determinada por la velocidad con la cual se realiza la trasferencia
de datos, por ejemplo si se transmite a 1200 bits por segundo (baudios), la duración de cada bit
es de 833 micro segundos.

Las velocidades de transmisión más comunes son 300, 600,1200, 2400, 9600, 14400 y 28800
baudios.

En la figura anterior se muestra la forma como se trasmite un dato cuando se realiza


alguna transferencia:

1. La línea del transmisor permanece en alto.


2. Para empezar a transmitir datos esta línea se pone en bajo durante un bit, lo cual se
conoce como bit de Start.
3. Se comienza a transmitir los bits correspondientes al dato, empezando por el bit menos
significativo (LSB) y terminando con el más significativo (MSB).
4. Al finalizar se agrega el bit de paridad, si está activada esta opción.
5. Por último, los bits de stop, que pueden ser 1 o 2, en los cuales la línea regresa a nivel
alto.

En el ejemplo de la figura, después del bit de start se trasmite el dato 01001011 y al


final hay un bit de stop.

Esto significa que la configuración de la transmisión serial es: 1 bit start, 8 bits datos, no paridad
y 1 bit de stop.

El receptor no está sincronizado con el transistor y no sabe cuándo va a recibir datos.

La transición de alto a bajo de la línea del transmisor, activa el receptor y este generan un conteo
de tiempo de tal manera que realiza una lectura de la línea medio bit después del evento; si la
lectura realizada es un estado alto, asume que la transición ocurrida fue ocasionada por ruido
en la línea; si por el contrario la lectura es un estado bajo, considera como válida la transición
y empieza a realizar lecturas secuenciales a intervalos de un bit hasta conformar el
dato transmitido.

Lógicamente tanto el transmisor como el receptor deberán tener los mismos parámetros de
configuración (velocidad, número bits del dato, paridad y bits de parada)

Configurar BAUD-RATE:

Para una correcta Transmisión/Recepción y sin pérdida de datos, es necesario configurar


correctamente el Baud-Rate a través de los registros SPBRGH y SPBRG. En la siguiente tabla
se muestra las ecuaciones para los modos Síncronos y Asíncronos.

Proceso de transmisión de datos:

Para enviar un dato no basta con escribir el valor que se desea enviar en el registro TXREG.
Sin embargo, si se quiere enviar varios datos consecutivos debe tenerse cuidado de NO escribir
un nuevo valor en TXREG antes de que el valor anterior haya sido enviado. Para ello es
necesario saber si el registro TXREG ha quedado libre o está vacío. Esto puede hacerse de 2
formas.

1. Por Sondeo: En este caso el programa debe monitorizar el estado del bit TXIF. Si este
bit está a “1” significa que TXREG está vacío y por tanto
podemos escribir el siguiente dato.
2. Por Interrupción: En este caso se habilita la Interrupción a través del bit TXIE, entonces
se producirá una interrupción cada vez que el registro TXREG esté vacío. Por tanto,
esto nos permite detectar cuando TXREG está libre para enviar un nuevo dato, sin
embargo, si habilitamos dicha Interrupción cuando NO estamos Transmitiendo datos se
generarán Interrupciones continuas mientras TXREG este vacío. Por tanto, solo se
debe habilitar esta Interrupción después de haber escrito un nuevo dato en
el registro TXREG y se deshabilitará cuando se ha escrito el ultimo

Proceso de recepción de datos:

Para recibir un dato no basta con leer el valor en el registro RCREG, es necesario esperar a que
la recepción del dato se haya completado correctamente para poder realizar el proceso de lectura
del registro. Esto puede hacerse de 2 formas.

1. Por Sondeo: En este caso el programa debe monitorizar el estado del bit RCIF. Si este
bit está a “1” significa que el dato recibido podrá ser leído del registro RCREG.
2. Por Interrupción: En este caso se habilita la Interrupción a través del bit RCIE, entonces
se producirá una interrupción cada vez que el registro RCREG posea un nuevo Por
tanto esto nos permite detectar cuando RCREG está listo para ser leído.

8. Directivas de CCS para el manejo de la interfaz serie de periféricos del PIC


18F4550.

En el encabezado del programa incluir la directiva:

#USE RS232(BAUD=BAUDIOS, XMIT=PIN, RCV=PIN)

Baud: Velocidad en baudios (bits por segundo).


Xmit: Bit que transmite (Tx)
RCV: Bit que recibe (Rx)

9. Funciones de CCS para el manejo de la interfaz serie de periféricos del PIC


18F4550.

Una vez dentro ya de la función principal del programa, hay que habilitar la interrupción por
recepción RS232.

enable_interrupts(INT_RDA);
Y la correspondiente habilitación global de interrupciones:
enable_interrupts(GLOBAL);
Para recibir un carácter se usa la instrucción:
C=getc(); Esta instrucción espera un carácter por el pin RCV del puerto RS232 y retorna el
carácter recibido.
Hacen lo mismo las instrucciones GETCH() y GETCHAR()

Para enviar un carácter se usa la instrucción:


PUTC() Esta instrucción envía un carácter a la patica XMIT del dispositivoRS232.
Hace lo mismo la instrucción PUTCHAR()

NOTA: Entre los paréntesis va el carácter a enviar.


Diseño Metodológico

a) Configuración de los periféricos empleados:

 LCD grafico con controlador KS0108:

Se configurará el puerto C como salida. En este puerto se conectarán los pines de control de la
LCD grafica. A excepción del pin RST quedara en RB7.

PIN 15 PIN 16 PIN 17 PIN 23 PIN 24 PIN 40


RC0 RC1 RC2 RC4 RC5 RB7
CS2 CS1 RS R/W E RST

El puerto D se configuro como salida y en él se conectarán los pines de transferencia de datos


de la LCD grafica.

Nota: Esta configuración aplica para ambos PIC’s


 Led’s indicadores

Para el PUERTO E se configuro como salida para los 3 leds necesarios para indicar las subidas
de las variables leídas por los sensores, por encima de los limites establecidos. Aplica solo en
el PIC principal.
 Sensor de temperatura LM35

Este sensor no necesita circuitería externa para su funcionamiento, así que sus pines irán directo
a GND el pin 3, a VCC el pin 1 y el pin 2 será su salida y se conectará al Pin AN0 del PIC, a
través de su pin 2 y por medio del modulo A/D se tomará su lectura para indicar la temperatura
percibida.

 Sensor de presión MPXA6115A


Este consta de 8 pines, pero 3 utilizados para su funcionamiento, se conectará el pin 2 a su
respectiva alimentación de 5V y a un capacitor de 100nF que ira a tierra, el pin 3 es GND e ira
directo a tierra, el pin 4 del sensor ira a una resistencia de 51kΩ, y a su vez al Pin AN1 del PIC,
a través de su pin 3 y por medio del módulo A/D se tomará su lectura para indicar la presión
percibida.
 Sensor de humedad relativa HIH5030
Este consta de 3 pines para su funcionamiento, el pin 1 ira a GND y a su vez a una resistencia
de 65KΩ que en su otro extremo ira a el pin 2 y este a su vez se conectará al Pin AN3 del PIC,
a través de su pin 5 y por medio del módulo A/D se tomará su lectura para indicar la humedad
relativa percibida. Su pin 3 será de alimentación a 5 V.

b) Diagrama Esquemático del diseño:

c) Diagrama de flujo del programa principal y de cada función diseñada.


A continuación, podemos apreciar el programa principal donde iniciaremos el programa,
configuraremos los puertos, especificaremos la velocidad del reloj para el ADC, apagaremos
los led’s indicadores, llamaremos a la función inicio_LCD y luego entraremos en un while
infinito para ir censando las mediciones captadas por cada uno de los sensores.
Al momento de entrar en la función de inicio_LCD(); inicializaremos la LCD gráfica con
glcd_init(ON), limpiaremos su pantalla con glcd_fillScreen(0) y seguidamente imprimiremos
el respectivo membrete a mostrar en pantalla y volviendo al programa principal.
Al momento de entrar en el while iremos llamando por orden cada una de las funciones para
tomar el valor del sensor respectivo en el momento. Empezaremos por la función temperatura()
Luego será llamada la función presión()

Por último, la función humedad(), antes de reiniciar el ciclo.

En cada función llamada en el ciclo while, después de hacer la conversión se enviará el valor
del número digital equivalente a la medición tomada. A continuación, el diagrama de flujo de
los procesos en el PIC2.
La parte más compleja del PIC2 está en la función habilitada por la interrupción, donde se
recibe la información enviada por el PIC1 y se modifica para hacer los cálculos respectivos y
mostrarlos.
d) Procedimiento de diseño de la aplicación.

1) Primero se realizó una investigación de los temas centrales en los cuales se basa la
aplicación de esta práctica, estos temas son el del manejo del módulo A/D y la interfaz
serie de periféricos (USART), para el PIC18F4550.
2) Se realizo un análisis de los requerimientos a cumplir, tanto de los elementos que se
podían utilizar como de sus funciones a realizar.
3) Se procedió a realizar el esquema de conexión en proteus con los elementos a utilizar
para la aplicación.
4) Empezó a desarrollarse la lógica de programación para poder cumplir todos los
requerimientos.
5) Por último, se fue simulando a medida que se desarrollaba el código hasta llegar a su
estado final cumpliendo todas las pautas.

e) Manual de uso de la aplicación diseñada.


1.- Se energiza el dispositivo, tanto en el invernadero como en la sala de control
2.- Automáticamente se estarán monitoreando los sensores y recogiendo sus medidas, las cual
podrán ser visualizadas tanto en la LCD del invernadero como en la de la sala de control.
3.- Al momento de percibir una subida por encima del límite establecido para alguna de la
variable, se procederá a encender un led, dependiendo cual sea la variable que esta por encima
de su límite.
4.- Si dicha variable censada se estabiliza se apagará el led respectivo.
5.- El PIC1, donde están conectados los sensores se comunicará por medio del puerto serial con
el PIC2, este recibirá por medio de una cadena char el numero digital, para hacer los respectivos
cálculos y mostrar en la pantalla de la LCD grafica de la sala de control.
6.- Constantemente se estará actualizando cada de medición hasta que se apaguen los
dispositivos.

Resultados

Para esta practica se lograron cumplir todos los requerimientos de la práctica, las cuales eran
las siguientes:
1. Las variables físicas deben ser visualizadas en el sitio de censado a través de un LCD.
Para este caso para cada variable llamamos a una función específica para cada sensor, donde
leeremos el valor de voltaje análogo por el canal respectivo de cada sensor y luego de
convertirlo a un valor digital, calculamos su valor equivalente en la unidad especifica que
medimos, por medio de la ecuación en función de el numero digital. Luego de esto mostramos
la medición en la pantalla LCD. Esto lo podemos apreciar en la siguiente imagen y también en
el anexo donde se encontrará el link donde estará el código del programa.
Las funciones de presión() y humedad() tienen la misma estructura, solo cambia la ecuación
para calcular el valor de la variable física en función de el numero digital, y la selección del
canal a realizar la lectura, por eso no se agregó su imagen.
Para entrar en estas funciones se hace por medio de un ciclo while en la función principal, que
ira haciendo un recorrido por cada una de las funciones.

2. Las variables físicas deben ser visualizadas en la sala de control en donde se encuentra
un microcontrolador que recibirá los datos por puerto serial conectado a un LCD.
Para cumplir esta condición se envía desde el PIC1 la cadena de caracteres que contiene el
numero digital, esta se recibe utilizando la interrupción por transmisión de datos y utilizando
la función gets() para guardarla. Este número es nuevamente convertido a un número entero y
luego se calcula nuevamente su equivalente medición por medio de la ecuación de la variable
respectiva en función de su numero digital. Podemos apreciar en la siguiente imagen el
proceso de recepción de datos y también encontrar el código en el anexo donde se encuentra
el link para descargar el archivo de programación respectivo.

Para poder diferenciar que datos ingresan si es de temperatura, presión o humedad y mostrarlos
en pantalla en su respectivo orden sin errores se implementó el siguiente código el cual podr
encontrarse en el anexo.
Nota: el membrete no se imprimió igual que en el PICC1 ya que no se podían visualizar las
variables, por eso se simplifico.

3. Se desea encender un led en el invernadero cuando la variable física sobrepase los


valores indicados en la tabla.

Luego de mostrar en pantalla el valor medido por el sensor, se procede a verificar que su valor
no sobrepase el limite establecido, y de pasarse, encendra un led de alerta en el invernadero.
Para ello implementamos el siguiente código que también podemos apreciar en el anexo.
Conclusión

El microcontrolador PIC posee una diversidad de herramientas para su uso, como lo es el


conversor análogo-digital, el cual pudimos conocer y aprender a configurar para poder utilizar
e implementar una correcta conversión para nuestros tres sensores utilizados en esta práctica,
pudiendo solucionar cualquier inconveniente presentado, realizando una correcta conversión.

También pudimos conocer y trabajar con el módulo de comunicación serial, gestionando su


configuración y creando un enlace de comunicaciones entre 2 PIC donde se compartió
información de tipo carácter. Esta transmisión de datos se transmitió de manera correcta y
ordenada sin ningún problema ya que se siguieron todos los parámetros necesarios.
Estas dos herramientas son importantes y van de la mano en muchas ocasiones, por ejemplo, a
la hora que se quiera hacer un monitoreo de sensores y guardar un registro de manera remota,
similar a lo realizado en esta práctica.
Anexo

https://drive.google.com/drive/folders/1L0KoV2sfiEfyJMSsCoXBrFj_0tXHDswy?usp=sharin
g

También podría gustarte