Sunteți pe pagina 1din 12

Scientia et Technica Ao XVIII, No 30, Mes 10 del Ao 2017. Universidad tecnolgica de Pereira.

ISSN 01221701

Laboratorio de circuitos digitales II


Conversor Anlogo Digital
Digital Analog Converter
Autor 1: Gloria Stefani Ros Henao, Autor 2: Cristhian David Montoya Orozco.

Facultad de ingenieras, Universidad Tecnolgica de Pereira, Colombia.


Correo-e:tefarios96@gmail.com davidmontoya-21@hotmail.com

Resumen En esta prctica aprendimos acerca del


funcionamiento del conversor (A/D) mediante un
microcontrolador 16f887 y algunos conceptos bsicos para la
adquisicin de esta seal para asi poderla visualizar a travs de
la pantalla LCD, los resultados obtenidos para los trabajos
propuestos se pueden observar en la parte de anexos .

Palabras clave microcontrolador, resolucin, tiempo de


adquisicin, conversor (A/D),

Abstract In this practice we learned about the operation of the


converter (A / D) using a 16f887 microcontroller and some basic
concepts for acquiring this signal so that it can be viewed through
the LCD screen, the results obtained for the proposed works can Imagen 1: Curva.
be observed in the part of attachments.

Key words microcontroller, resolution, acquisition time,


El inters en digitalizar una seal puede surgir por varios
converter (A/D).
motivos: el hecho de querer almacenarla en un soporte
INTRODUCCION digital o transmitirla digitalmente para poder
reconstruirla, poder tratar con programas los valores
El microcontrolador PIC16F877 de Microchip puede analgicos que d un sensor, etc. Acotando la seal en
desempear muchas funciones pero en la que nos vamos un intervalo de tiempo y unos valores mnimos y
mximos de tensin tenemos que tener en cuenta dos
a centrar aqu es la de su conversor analgico-digital.
factores fundamentales a la hora de almacenar dicha
Antes de meternos de pleno en su funcionamiento vamos seal en un formato adecuado que pueda almacenarse
a comentar los conceptos bsicos de una conversin de digitalmente (con ceros y unos): se tiene que muestrear y
una seal analgica a digital. cuantificar el muestreo implica que tenemos que coger
una muestra de la seal cada T segundos ya que no hay
Tanto nuestra voz como muchas de las seales que se memoria suficiente capaz de almacenar los infinitos
envan a travs de un medio guiado como un cable o no puntos de una seal en un intervalo cualquiera de
guiado como es el aire son de tipo continuo y pueden tiempo. En el ejemplo de las figuras se ha acotado un
tomar infinitos valores a Lo largo del tiempo. Por segundo de tiempo y 5 V de tensin de entrada analgica
ejemplo podemos decir que la seal elctrica que se del PIC.
transmite de la tarjeta de sonido al altavoz es continua y
puede tomar cualquier tensin entre los dos hilos
Scientia et Technica Ao XVIII, No 30, Mes 10 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

1 Conversor anlogo digital


14 canales de entrada
Resolucin de 10 bits
Reloj de conversin configurable
Tensin mxima de entrada 5 voltios
La tensin siempre ha de ser positiva

En la siguiente figura queda resumido el proceso de


configuracin del conversor A/D.
Imagen 2: frecuencia de muestreo tomando 24 muestras.

La cuantificacin surge por el mismo motivo que el


muestreo pero para el eje de ordenadas: una vez tenemos
una muestra su amplitud puede tomar infinitos valores,
debemos redondear entre unos valores fijos a lo largo de
ese eje. Estos valores van a depender del nmero de bits
que vayamos a almacenar para cada muestra, por
ejemplo, en la imagen se cogen 4 bits y con ellos se
pueden formar 16 combinaciones y por lo tanto 16
distintos niveles en los que se puede dividir el eje. El
PIC cuantifica con 10 bits luego son 1023 niveles. Imagen 3: proceso de configuracin del conversor A/D

1. PARMETROS DEL CONVERSOR


(A/D) TRABAJO PREVIO
Algunos parmetros importantes que modelan el Disee un programa que lea el canal 1 del conversor
funcionamiento de este tipo de dispositivo son los A/D y en la lnea superior de una LCD se muestre el
siguientes: resultado de la lectura como una barra grafica de 16
posiciones. Esto es, si el voltaje es cero, la barra se
Tiempo de adquisicin: Tiempo durante el cual el encuentra en la primera posicin, si el voltaje es de 5
sistema de muestreo y retencin (Sample & Hold) debe voltios, la barra se encuentra completamente llena, si el
permanecer en estado de muestreo (sample), para voltaje es 2.5Volt la mitad de la barra est llena, etc. (Su
asegurarse que el consiguiente estado retencin (hold) funcionamiento debe ser similar a las barras de LEDs
este dentro de la banda de error especiada para la seal que tiene los ecualizadores en los equipos de audio).
de entrada.

Tiempos de conversin: Es el tiempo desde que se


aplica la seal a convertir hasta que la seal digital est
disponible en la salida.

Resolucin: indica el nmero de valores discretos que el


conversor puede producir sobre un rango de valores de
voltaje y generalmente es expresado en nmeros bits o
en voltios / bit.
Imagen 4: visualizacin del trabajo previo en la LCD

2. Conversor A/D del microcontrolador CDIGO Y SIMULACION IMPLEMENTADOS EN


16F887 EL TRABAJO PREVIO

Las principales caractersticas del conversor A/D que Para el trabajo previo se dise un programa que lea el
posee el microcontrolador 16F887 son: canal 1 del conversor A/D y en la lnea superior de una
Scientia et Technica Ao XVIII, No 30, Mes 10 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

LCD se muestre el resultado de la lectura como una delay_ms(500);


barra grafica de 16 posiciones. }
}
#include <16F887.H> }
#device ADC=10 //Seleccin de la resolucin del PRACTICA
conversor - se trabaja con 10 bits - Disear un programa que lea una seal anloga de 0 a
#fuses NOWDT, NOPUT,INTRC_IO,NOPROTECT, 5 voltios y la muestre en una LCD, previo escalamiento.
NOBROWNOUT,NOWRT
#use delay(internal=8MHZ) El programa funciona de la siguiente forma:
#include <LCD.C> Al ser puesto en operacin el sistema electrnico, este
#use fast_io(B) debe mostrar un mensaje solicitando que se introduzca el
rango alto y bajo de la seal que ser leda.
int16 valor; Los valores de los rangos son introducidos a travs de
float porcentaje; un teclado matricial 4x4.
int V[16]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; Una vez los datos son digitados, la LCD mostrara el
int cnc; valor anlogo calculado dentro de los rangos
especificados. Por ejemplo, los rangos alto y bajo
void main() introducidos en el sistema son 90 y 10 respectivamente,
{ por lo tanto cuando la seal anloga sea cero, la LCD
lcd_init(); //inicializacin de lcd indicara 10, si es 5 voltios, la indicacin ser 90, y de
setup_adc_ports(SAN1); // Programacin de los esta forma para cualquier valor comprendido entre 0 y 5
puertos anlogos a usar voltios.
setup_adc(ADC_CLOCK_DIV_32); //Seleccin del - La tecla A permite modificar nuevamente los rangos.
reloj - reloj interno del microcontrolador

while(true) CDIGO Y SIMULACION IMPLEMENTADOS EN


{ LA PRCTICA
set_adc_channel(1); //Lectura del valor digital, #include <16f887.h>
canal 1 #fuses nowdt, noput, intrc_io, nomclr, noprotect,
delay_us(20); //tiempo para que haga la conversin nobrownout,nowrt
A/D
#device adc=10
valor = read_adc(); // lee el valor de la conversin
Porcentaje= valor*100.0/1023.0; #use delay(interna=8mhz)
cnc = porcentaje*16/100; ////Conversin de 0 - 16, #include <lcd.c>
nmero de casillas de la LCD #include <kbd4x4.c>
#use fast_io(b)
printf(lcd_putc,"\f");

if(V[valor]>=0.0 && V[valor]<=1023.0) int16 valor;


{ float RH=5, RL=0,a1=0,a2=0,
for(int j=1; j<=cnc; j++) porcentaje,total,nuevo;
{ char tecla;
lcd_gotoxy(j,1);
lcd_putc(255);
} float limitesuperior(float a1)
for (int k=16; k>=(cnc+1); k=k-1) {
{ int b1=0;
lcd_gotoxy (k, 1);
lcd_putc (' '); lcd_gotoxy(1,1);
} printf(lcd_putc,"LIMITE SUPERIOR");
lcd_gotoxy (1,2); lcd_gotoxy(1,2);
printf(lcd_putc,"VOLTAJE %1.0f", porcentaje); printf(lcd_putc,"valor:");
//1 entero 0 decimales while(b1 != 1)
lcd_putc("%"); {
Scientia et Technica Ao XVIII, No 30, Mes 10 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

tecla=kbd_getc(); void proceso()


if(tecla!=0) {
{ // se realiza la lectura de los canales anlogos
if(tecla=='b') set_adc_channel(1);
{ delay_us(0.1);
b1=1; valor=read_adc();
}
tecla=tecla-0x30; // se calcula el valor de la entrada anloga en los
a1= a1*10.0 + tecla*1.0; lmites
lcd_gotoxy(8,2); porcentaje = valor*100.0/1023.0;
printf(lcd_putc,"%1.0f",a1); printf(lcd_putc,"\f");
}
} lcd_gotoxy(1,1);
b1=0; printf(lcd_putc,"[%1.0f,%1.0f]v",ls,li);
printf(lcd_putc,"\f"); total=(((RH-RL)/(100))*porcentaje +li);
return ((a1-18.0)/10.0); lcd_gotoxy(1,2);
} printf(lcd_putc," %1.0f",total);
delay_ms(100);
float limiteinferior(float a2) nuevo=porcentaje;
{
int b2=0; }
void cambiodevalor()
lcd_gotoxy(1,1); {
printf(lcd_putc,"LIMITE INFERIOR"); // se realiza la lectura de los canales anlogos
lcd_gotoxy(1,2); set_adc_channel(1);
printf(lcd_putc,"valor:"); delay_us(0.1);
valor=read_adc();
while(b2 != 1)
{ // se calcula el valor de la entrada anloga en los
tecla=kbd_getc(); lmites
if(tecla=='b') porcentaje = valor*100.0/1023.0;
{ if(porcentaje!=nuevo)
b2 = 1; {
delay_ms(200); printf(lcd_putc,"\f");
} lcd_gotoxy(1,1);
if(tecla!=0) printf(lcd_putc,"[%1.0f,%1.0f]v",RH,RL);
{ total=(((RH-RL)/(100))*porcentaje +RL);
lcd_gotoxy(1,2);
tecla=tecla-0x30; printf(lcd_putc," %1.0f",total);
a2= a2*10.0 + tecla*1.0; delay_ms(100);
lcd_gotoxy(8,2); nuevo=porcentaje;
printf(lcd_putc,"%1.0f",a2); }
}
} }
b2=0;
printf(lcd_putc,"\f"); void main()
return ((a2-18.0)/10.0); {
kbd_init();
} port_b_pullups(255);
lcd_init(); //inicializacion de la lcd
Scientia et Technica Ao XVIII, No 30, Mes 10 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

setup_adc_ports(san1);
setup_adc(adc_clock_div_32);
proceso();

III. WEBGRAFA
while (true)
[1]. conversor analogico digital disponible en
{ linea:
https://es.wikipedia.org/wiki/Conversi%C3%B3n_an
cambiodevalor(); al%C3%B3gica-
tecla=kbd_getc();
digital#Ventajas_de_la_se.C3.B1al_digital
if(tecla !=0)
{
switch(tecla) [2]. pantalla lcd disponible en lnea:
http://microcontroladores-
{
mrelberni.com/pantallas- lcd/#ccs
case 'a':
RH= limitesuperior(a1); [3]. Teclado Matricial 4x4 disponible en linea:
RL=limiteinferior(a2); http://www.circuitoselectronicos.org/2011/03/tecl
break; ado-matricial-4x4.html
default: [4]. conversor analogico digital del pic 16f887
proceso(); disponible en linea:
break; http://server-
} die.alc.upv.es/asignaturas/paeees/2004-05/a02-
} a03%20-
%20conversor%20ad%20del%20pic16f877.pdf
}
}

Las imgenes tanto del trabajo previo como


de la prctica se pueden observar en la parte
de anexos.

II. CONCLUSIONES
El conversor (A/D) es una herramienta con bastante
utilidad, Ya que lo que hace es convertir una seal
analgica en una digital, haciendo la seal resultante
casi inmune al ruido y otros tipos de interferencias
que se suelen presentarse en las seales analgicas,
tambin cabe destacar la importancia de la resolucin
para este proceso de conversin, ya que entre mayor
sea la resolucin mejor ser la precisin de la lectura
otorgando mucha ms informacin.
Scientia et Technica Ao XVIII, No 11, Mes 05 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

ANEXOS

IMGENES DEL TRABAJO PREVIO

Imagen 5: simulacin en proteus barra ubicada en la primera posicin a 0 V.

Imagen 6: simulacin en proteus barra ubicada en la primera posicin a 5 V.


Scientia et Technica Ao XVIII, No 11, Mes 05 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

Imagen 7: barra ubicada en la primera posicin a 0 V.

Imagen 8: posicin de la barra a 2.5 V.


Scientia et Technica Ao XVIII, No 11, Mes 05 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

Imagen 9: barra completamente llena a 5 V.

IMGENES DE LA PRCTICA

Imagen 10: rango de voltaje dado por el potencimetro.


Scientia et Technica Ao XVIII, No 11, Mes 05 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

Imagen 11: ingresando valor del rango lmite superior.

Imagen 12: ingresando valor del rango lmite inferior.


Scientia et Technica Ao XVIII, No 11, Mes 05 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

Imagen 13: visualizacin de los rangos superior-inferior ingresados en el teclado.

Imagen 14: valor mximo a 5 V entregado por potencimetro.


Scientia et Technica Ao XVIII, No 11, Mes 05 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

Imagen 15: ingresando el lmite superior a travs del teclado matricial.

Imagen 16: ingresando el lmite inferior a travs del teclado matricial.


Scientia et Technica Ao XVIII, No 11, Mes 05 del Ao 2017. Universidad tecnolgica de Pereira. ISSN 01221701

Imagen 17: rangos ingresados y visualizados en la pantalla LCD.

Imagen 18: rango inferior el cual fue variado por el potencimetro

S-ar putea să vă placă și