Practica No 5 LAB PIC18F MPLABX 2019

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

Universidad Nacional de Ingeniería

Facultad de Electrotecnia y Computación


Carrera de Ingeniería Electrónica
Maquinas Computadoras I

Práctica de laboratorio Nº 5
Programación en Lenguaje C del microcontrolador PIC
18F4550 en el entorno MPLAB X.
Convertidor Analógico-Digital

Autor/es:

Grupo Nº
Nº de carnet Nombre y Apellido Calificación

Agosto 2019
Universidad Nacional de Ingeniería
Facultad de Electrotecnia y Computación
Departamento Sistemas Digitales y Telecomunicaciones

Índice
1. Introducción .................................................................................................................... 2
2. Objetivos ......................................................................................................................... 2
3. Actividades propuestas ................................................................................................... 2
4. Instrumental utilizado ................................................... ¡Error! Marcador no definido.
5. Resultados obtenidos ...................................................................................................... 5
6. Conclusiones ................................................................................................................... 5
7. Bibliografía ..................................................................................................................... 5

1. Introducción
El convertidor analógico digital es capaz de convertir una señal de voltaje variable en
valores digitales a una resolución de 8 o 10 bits. Cuando se utiliza 10 bits de resolución y
voltajes de referencia iguales a los de la fuente de del micro, el tamaño del paso entre dos
escalones del ADC es de 4.83 mV. Ademas, se puede llegar hasta a 50K muestras por segundo,
lo que es ideal para proyectos de adquisición de datos como Datalogger, etc. A continuación,
se muestra las características y se describe los registros involucrados con el convertidor ADC
y se realizaran ejemplos.
 Resolución programable por software en modo de 8 y 10 bits.
 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.
El ADC involucra cinco registros durante su operación:
 A/D Result High Register (ADRESH)
 A/D Result Low Register (ADRESL)
 A/D Control Register 0 (ADCON0)
 A/D Control Register 1 (ADCON1)
 A/D Control Register 2 (ADCON2)

2. Objetivos

 Utilizar el Convertidor Analógico Digital interno para realizar adquisición y


visualización de variables analógicas.

3. Actividades Previas

Montar en una breadboard el circuito que se muestra en la figura siguiente. Note que el circuito
se alimenta a partir del cable USB. No olvide leer la hoja de datos del microcontrolador
PIC18F4550 en la sección referente al Convertidor Analógico Digital.

Elaborado por: Br. Eliezer Méndez Página 2 de 5


Universidad Nacional de Ingeniería
Facultad de Electrotecnia y Computación
Departamento Sistemas Digitales y Telecomunicaciones

4. Dispositivos Requeridos

 1 Breadboard
 1 PIC18F4550
 1 Cristal de 20MHz
 2 Capacitores de 22 pF
 1 Capacitor de 470 nF
 1 Resistor de 4.7 kOhm
 1 Resistor de 330 Ohm
 1 LED de 5mm
 1 Push button
 1 Cable USB Tipo A con su otro extremo acondicionado para breadboard
 1 pantalla LCD 16x2
 1 teclado matricial 4x4
 1 potenciometro de 10 kOhm
 1 sensor LM35

Elaborado por: Br. Eliezer Méndez Página 3 de 5


Universidad Nacional de Ingeniería
Facultad de Electrotecnia y Computación
Departamento Sistemas Digitales y Telecomunicaciones

5. Procedimiento

Cree un nuevo proyecto y en la carpeta donde lo guardó, pegue los archivos


bootloaderCHF.h, 16x2_LCD_4bit_File.h y 16x2_LCD_4bit_Mode.c. No olvide añadirlos
al proyecto, para ello debe hacer clic derecho sobre el proyecto, clic en Add Existing Item… y
seleccione los tres archivos que deben estar en la carpeta del proyecto.

Ahora cree un nuevo archivo fuente y pegue el código que está en el recuadro. No olvide
realizar la configuración del parámetro codeoffset a la posición 0x800 en las opciones del Linker
para ser cargado en el PIC18F4550 a través del Bootloader.
#include "bootloaderCHF.h"
#include "16x2_LCD_4bit_File.h"
#include <stdio.h>
#include <string.h>
#define VREF 5.00

void ADC_Init(void);
int ADC_Read(int);

void main(void) {
char data[10];
int digital;
float voltage;
LCD_Init();
ADC_Init();
LCD_String_xy(1,1,"El voltaje es:");
while(1){
digital = ADC_Read(0);
voltage = digital*((float)VREF/(float)1023);
sprintf(data,"%.2f",voltage);
strcat(data," V");
LCD_String_xy(2,0,data);/*Send string data for printing*/
__delay_ms(10);
}

void ADC_Init(){
TRISA = 0xFD; /*Set as input port except for RA1*/
ADCON1 = 0x0E; /*Ref vtg is VDD & Configure pin as analog pin*/
ADCON2 = 0x96; /*Right Justified, 4Tad and Fosc/64. */
ADRESH=0; /*Flush ADC output Register*/
ADRESL=0;
}

int ADC_Read(int channel){


int digital;

ADCON0 =(ADCON0 & 0b11000011)|((channel<<2) & 0b00111100);


/*channel 0 is selected i.e.(CHS3CHS2CHS1CHS0=0000)& ADC is disabled*/
ADCON0 |= ((1<<ADON)|(1<<GO));/*Enable ADC and start conversion*/
/*wait for End of conversion i.e. Go/done'=0 conversion completed*/
while(ADCON0bits.GO_nDONE==1);
digital = (ADRESH*256) | (ADRESL);/*Combine 8-bit LSB and 2-bit MSB*/
return(digital);
}

Este código permite leer el voltaje presente en pin central del potenciómetro.

Elaborado por: Br. Eliezer Méndez Página 4 de 5


Universidad Nacional de Ingeniería
Facultad de Electrotecnia y Computación
Departamento Sistemas Digitales y Telecomunicaciones
Compruebe el funcionamiento de este código en el simulador Proteus antes de llevar a cabo el
montaje físico del circuito.

Ahora habilite el segundo canal (AN1) donde está conectado el sensor LM35 y muestre ambos
datos en la pantalla. Para ello debe calcular un factor de conversión para obtener el resultado en
grados centígrados. Consulte la hoja de datos del LM35 para obtener la relación de salida. Registre
sus resultados.

Ahora proceda a cambiar el rango de valores del potenciómetro. En lugar de voltaje haga que siga
una escala de 0 a 50 grados centígrados, donde valdrá 0 °C cuando el dial del potenciómetro este
en su extremo izquierdo y 50 °C cuando se halle en su extremo derecho. Programe la salida RC0
(LED_ROJO) para que se active cuando el sensor marque una temperatura mayor que el valor que
muestra la lectura del potenciómetro.

Por último, en aras de mejorar la sensibilidad de las lecturas del LM35, disminuya el tamaño de
escalón a 1 mV, realizando la conexión adecuada en los pines VREF y sus correspondientes
modificaciones en la programación.

6. Resultados obtenidos
En este punto el informe elaborado por los alumnos debe contener:

1. Descripción del problema a resolver por el grupo.


2. Código final del programa principal y de los diferentes módulos.
3. Si se exploraron soluciones alternativas, describa las mismas y efectúe las comparaciones
que se consideren necesarias.
4. Planteo de situaciones críticas que demuestren un correcto funcionamiento del programa
propuesto.
5. Dificultades encontradas y cómo se solucionaron.
6. Comentarios,

7. Conclusiones

Los alumnos redactarán sus conclusiones, referidas a las tareas abordadas y los resultados
obtenidos. Estas conclusiones incluirán la evaluación realizada por el equipo de trabajo
respecto de la solución alcanzada, destacando sus ventajas y limitaciones.

8. Bibliografía
Los alumnos incluirán toda la bibliografía consultada para la realización del práctico y
estudio de los temas relacionados. La misma deberá incluir una referencia completa del
material utilizado (Título, autor, año, editorial, capítulos de interés, si es un sitio web o material
accedido desde uno, la URL completa).

Elaborado por: Br. Eliezer Méndez Página 5 de 5

También podría gustarte