Está en la página 1de 10

Nro.

LABORATORIO MICROCONTROLADORES
Página 1 de 5

MICROCONTROLADORES

LABORATORIO N° 07

Conversión ADC (Analógico – Digital)

Participantes(s)
DIAZ MAMANI
Nombres: HOSHENSON
RODRIGO
%
100%
participación:
Grupo
Ciclo 4C5 Electrónica y Automatización – Microcontroladores
Fecha de entrega
Nro.
LABORATORIO MICROCONTROLADORES
Página 2 de 5

I. COMPETENCIAS ESPECÍFICAS DE LA SESIÓN


● Comprender la conversión ADC en un microcontrolador.
● Programar el Módulo ADC del PIC y aplicaciones prácticas.

II. CONTENIDOS A TRATAR


● Conversión a 8 bits y 10 bits.
● Resolución y ecuación de cálculo de conversión.

III. MATERIALES Y EQUIPO


● CCS Compiler instalado.
● Entrenador de PICS
● PIC16F877A
● PC con Software de simulación.

IV. FUNDAMENTO TEÓRICO


● Para la realización de este laboratorio se requiere haber realizado y aprobado la EVALUACIÓN
DE LA FASE ASÍNCRONA
● La lectura previa de la información proporcionada para el curso, como el texto y el manual del
fabricante.
● Revise la bibliografía recomendada en la FASE ASÍNCRONA.

V. SEGURIDAD EN LA EJECUCIÓN DEL LABORATORIO

Tener cuidado con el tipo y niveles de voltaje con


los que trabaja.
Antes de utilizar el multímetro, asegurarse que está
en el rango y magnitud eléctrica adecuada.

Tener cuidado en la conexión y en la desconexión


de los equipos utilizados
Nro.
LABORATORIO MICROCONTROLADORES
Página 3 de 5

VI. EXPERIENCIA 1 – LECTURA Y CONVERSIÓN SIMPLE UTILIZANDO EL MÓDULO ADC

1. Vamos a realizar una lectura de la entrada analógica AN3 en el cual está conectado un
POTENCIÓMETRO el cual nos brinda un voltaje variable entre 0 y 5 voltios. Esto se ve en el
entrenador virtual de PROTEUS:

2. Vamos a mostrar en el LCD la lectura directa del valor leído con 10 bits (de 0 a 1023) y vamos
a convertir dicho valor a un valor flotante entre 0.00 y 5.00, lo cual va a representar el voltaje
que ingresa a dicho pin del uC. En pocas palabras estamos creando un VOLTÍMETRO. El
código se muestra en las diapositivas y en el video introductorio al tema.

3. Como EVIDENCIA, capturamos la pantalla de PROTEUS mostrando la ventana PIC CPU


Source Code: (incluir NOMBRES DE LOS INTEGRANTES).:

#include <16f877A.h>
#device adc=10
#use delay (clock=20M)
#fuses HS, NOPROTECT, NOWDT
#include <lcd.c>
int16 lectura=0;
float voltios;
void main()
{
Nro.
LABORATORIO MICROCONTROLADORES
Página 4 de 5

lcd_init() ;
printf (lcd_putc, "\fLECTURA ANALOGICA") ;
delay_ms(2000);

setup_adc_ports (AN0_AN1_AN3);
setup_adc (ADC_CLOCK_INTERNAL);
set_adc_channel (3);
delay_us (20);
WHILE (true)
{
lectura = read_adc ();
voltios = lectura*5.0/1023.0;
delay_ms (20) ;
lcd_gotoxy(1,1);
printf (lcd_putc, "Valor ADC:%4lu ",lectura);
lcd_gotoxy(1,2);
printf (lcd_putc, "Voltaje: %1.3f ", voltios);
delay_ms(100);
}
}
Nro.
LABORATORIO MICROCONTROLADORES
Página 5 de 5

VII. EXPERIENCIA 2 – LECTURA DE 2 ENTRADAS ANALÓGICAS

1. Esta vez vamos a realizar la lectura de 2 entradas analógicas, una de ellas el


POTENCIÓMETRO conectado a la entrada AN3 y en el otro un sensor LDR conectado a la
entrada AN5.

4. El código es similar al anterior, solo que esta vez, antes de hacer la lectura, necesitamos
direccionar a la entrada respectiva, por este motivo parte del código se va al bucle WHILE
(true):
Nro.
LABORATORIO MICROCONTROLADORES
Página 6 de 5

5. Como EVIDENCIA, capturamos la pantalla de PROTEUS mostrando la ventana PIC CPU


Source Code: (incluir NOMBRES DE LOS INTEGRANTES).:

#include <16f877a.h>
#device adc=10
#include <lcd.c>
int16 lectura1=0;
int16 lectura2=0;
void main()
{
lcd_init ();
printf (lcd_putc, "\f LECTURA ANALOGICA");
delay_ms(2000);
setup_adc_ports (AN0_AN1_AN3);
setup_adc (ADC_CLOCK_INTERNAL);
set_adc_channel (3);
delay_us (20);
while (true)
{
set_adc_channel (3);
delay_ms (20);
lectura1= read_adc ();
delay_ms (20);
Nro.
LABORATORIO MICROCONTROLADORES
Página 7 de 5

lcd_gotoxy(1,1);
printf (lcd_putc, "Valor POT: %4lu ", lectura1),

set_adc_channel (1);
delay_ms (20);
lectura2= read_adc ();
delay_ms (20);

lcd_gotoxy(1,2);
printf (lcd_putc, "Valor LDR: %4lu ", lectura2);
delay_ms(100);
}
}
Nro.
LABORATORIO MICROCONTROLADORES
Página 8 de 5

6. Acondicionar el código para ejecutarlo en el ENTRENADOR FÍSICO, sabiendo que las


entradas analógicas están en los puertos RA3 y RA5. Cambiar la línea 14 por
setup_adc_ports (AN0_AN1_AN2_AN3_AN4_AN5);

#device adc=10
#use delay(clock=20M)
#fuses HS, NOPROTECT, NOWDT
#define LCD_ENABLE_PIN PIN_D3
#define LCD_RS_PIN PIN_D2
#define LCD_RW_PIN PIN_A0
#define LCD_DATA4 PIN_D4
#define LCD_DATA5 PIN_D5
#define LCD_DATA6 PIN_D6
#define LCD_DATA7 PIN_D7

#include <lcd.c>
int16 lectura1=0;
int16 lectura2=0;
Nro.
LABORATORIO MICROCONTROLADORES
Página 9 de 5

void main()
{
lcd_init ();
printf (lcd_putc, "\f LECTURA ANALOGICA");
delay_ms(2000);
setup_adc_ports (AN0_AN1_AN3);
setup_adc (ADC_CLOCK_INTERNAL);
set_adc_channel (3);
delay_us (20);
while (true)
{
set_adc_channel (3);
delay_ms (20);
lectura1= read_adc ();
delay_ms (20);

lcd_gotoxy(1,1);
printf (lcd_putc, "Valor POT: %4lu ", lectura1),

set_adc_channel (1);
delay_ms (20);
lectura2= read_adc ();
delay_ms (20);

lcd_gotoxy(1,2);
printf (lcd_putc, "Valor LDR: %4lu ", lectura2);
delay_ms(100);
}
}

VIII. RETO DE PROGRAMACIÓN:

1. Utilizando los programas anteriores como base, programe con PIC un TERMÓMETRO
utilizando el sensor LM35 conectado a la entrada AN0 del PIC y cuyo rango de medición va de
-55ºC a 150ºC, 1ºC equivale a 10mV. El programa debe medir SOLO temperaturas positivas
de 0 a 150ºC y debe mostrarlo en una pantalla LCD.

Video demostrativo: https://www.loom.com/share/daefdd525efa477ebd76bcbe9382f71f

2. Como EVIDENCIA 1, grabe un video de su simulación en PROTEUS utilizando la aplicación


LOOM o YOUTUBE y coloque el LINK en el recuadro siguiente. En la simulación debe
visualizarse los nombres de los integrantes claramente. El video NO debe durar más de 2
minutos.

I. OBSERVACIONES Y CONCLUSIONES:

Emita al menos 3 observaciones y 3 conclusiones por cada integrante


Nro.
LABORATORIO MICROCONTROLADORES
Página 10 de 5

OBSERVACIONES de XXX:

• Tener en cuenta la conexión del entrenador al CPU ya que a veces por malas conexiones no
podemos importar el PIC C COMPILER a PICkit.
• Tener mucho cuidado al monto de tipear los códigos al PIC C COMPILER ya que los mayores
errores de estos son confundir ( ; - , )
• Acondicionar el código para ejecutarlo en el ENTRENADOR FÍSICO.
CONCLUSIONES de XXX:

• Como conclusión el comprender el funcionamiento de un conversor analógico-digitales


esencial debido a que facilitan el procesamiento de las señales y establece una relación entre
las señales continuas (analógicas) y las señales con valores discretos (digitales).
• En la práctica anteriormente desarrollada se pudo observar la ejecución del ADC con una
señal analógica tomada de un sensor de temperatura.
• El poder entender cómo funciona un sensor con respecto a un fenómeno nos permite poder
digitalizar los valores que este provee mediante un convertidor analógico-digital, además al
ser digitalizados y cuantificados estos valores se es capaz de procesarlos para poder utilizarlos
en algún proceso requerido, para responder ante el fenómeno de interés o incluso solo para
estudiar el comportamiento del fenómeno en sí.

También podría gustarte