Post on 12-Feb-2015
Conversión AD con micro controladores MicroshipLa conversión analógica-digital (CAD) consiste en la transcripción de señales analógicas en señales digitales, con el propósito de facilitar su procesamiento (codificación, compresión, etc.) y hacer la señal resultante (la digital) más inmune al ruido y otras interferencias a las que son más sensibles las señales analógicas. Además teniendo en cuenta la naturaleza digital del micro controlador, se hace necesario su transformación para su procesamiento.
Conversión ADExisten diferentes tipos de conversores de
acuerdo a su funcionamiento, tipo flash, sigma-delta, rampa y de aproximaciones sucesivas que son los que se utilizan en micro controladores debido a su bajo costo de implementación.
Señal Análoga: una señal análoga es aquella que puede tomar infinito número de valores dentro de su rango de variación, es decir puede variar de manera continúa entre sus valores máximo y mínimo.
Conversión ADSeñal Digital: Una señal digital sólo puede
tomar ciertos valores cuantizados, es decir la señal debe tomar valores predeterminados discretos.
Conversión AD
Esta tabla representa la conversión de un voltaje de 0 a 15 V mediante un conversor de 4 bits.
Conversor AD
Es de esperar que a mayor cantidad de bits disponibles en el conversor, más exacta va a ser la “aproximación” del conversor, esto lo podemos ver en la siguiente tabla. Es decir que un cambio pequeño en la señal análoga de entrada produce cambios en los bits de la salida digital.
Conversión ADVisto de manera muy simplificada el
conversor realiza una relación de
proporcionalidad entre el valor de la entrada y el valor digital a la salida del conversor. Lo cual se puede verificar en la tabla a continuación.
Voltaje de entrada 0-5V Valor binario de la conversión Valor decimal de la conversión
0 00000000 0
0,02 00000001 1
0,04 00000010 2
1 00110011 51
5 11111111 255
Configuración del conversor en PICCNuevamente utilizaremos el pic
wizard para configurar fácilmente nuestro proyecto.En este caso se debe seleccionar
un micro controlador que posea conversores AD, como el 16f873, 16f877, 16f688.
Configuración del conversorSeleccionamos la
pestaña Analog, y allí seleccionamos los canales AD requeridos para nuestro proyecto, en este ejemplo sólo se seleccionó el A0.
Finalmente en el menú Units definimos el número de bits de la conversión y seleccionamos la fuente de reloj para el conversor AD. En este caso se escogió 16uS
Configuración del Conversor
Al aceptar la configuración llegamos a la plantilla básica de nuestro progama en C.
Las instrucciones resaltadas tienen que ver con el conversor AD, y con la configuración que se hizo en el pic wizard.
Ejemplo de uso del conversor
Mediante la instrucción int valor; declaramos la variable “valor” en donde se almacenará el valor de la conversión (en este caso de 8 bits)La instrucción set_adc_channel(0); define cual canal de conversión leeremos mediante la instrucción read_adc(); , esto en el caso de que utilicemos varios canales de conversión.
Ejemplo de uso del conversor
La instrucción valor=read_adc(); es la que realmente da la orden al conversor para que realice todo el proceso y guarde el valor de la conversión dentro de la variable valor, esto toma un tiempo, por eso agregamos la instrucción de retardo para evitar que los valores de las conversiones se traslapen antes de entregar el valor de la conversión anterior. Esto es muy importante para tenerlo en cuenta cuando la señal a muestrear tiene una frecuencia muy alta.
Ejercicio:
RA0/AN02
RA1/AN13
RA2/AN2/VREF-4
RA4/T0CKI6
RA5/AN4/SS7
RE0/AN5/RD8
RE1/AN6/WR9
RE2/AN7/CS10
OSC1/CLKIN13
OSC2/CLKOUT14
RC1/T1OSI/CCP216
RC2/CCP117
RC3/SCK/SCL18
RD0/PSP019
RD1/PSP120
RB7/PGD40
RB6/PGC39
RB538
RB437
RB3/PGM36
RB235
RB134
RB0/INT33
RD7/PSP730
RD6/PSP629
RD5/PSP528
RD4/PSP427
RD3/PSP322
RD2/PSP221
RC7/RX/DT26
RC6/TX/CK25
RC5/SDO24
RC4/SDI/SDA23
RA3/AN3/VREF+5
RC0/T1OSO/T1CKI15
MCLR/Vpp/THV1
U1
PIC16F877
D7
14D6
13D5
12D4
11D3
10D2
9D1
8D0
7
E6
RW
5RS
4
VSS
1
VDD
2
VEE
3
LCD1LM016L
RV1
1k
RV2
1k
El ejercicio consiste en mostrar en la pantalla LCD el valor de los dos sensores simulados por los potenciómetros.Se debe luego mostrar el valor de entrada en voltios de los sensores.Finalmente si alguno de los sensores supera el valor de 3V se debe mostrar un mensaje de alarma en la LCD