7 CONVERTIDOR ANALÓGICO DIGITAL



Documentos relacionados
La familia PIC18 USB posee 4 timers: Timer0, Timer1, Timer2 y Timer3, cada uno de los cuales tiene sus características únicas.

6 MODULACIÓN DE ANCHO DE PULSO (PWM)

Se recomienda consultar el siguiente enlace y el datasheet del PIC18F2550.

TEMA 20 EL CONVERSOR A/D

Dependiendo del dispositivo usado, se tienen hasta 5 puertos de entrada/salida disponibles: PORTA PORTB PORTC PORTD PORTE

4.4 Interrupciones RBI (Interrupciones por cambio de estado)

Conversores Análogo-Digital

CONVERTIDOR ANÁLOGICO-DIGITAL (ADC)

DEPARTAMENTO DE CIENCIAS DE LA ENERGIA Y MECANICA Laboratorio de Instrumentación Industrial Mecánica Laboratorio de Instrumentación Mecatrónica 2

INTRODUCCION A LA CONFIGURACION DEL CONVERSOR ANALOGICO DEL PIC16F876A

Conversor ADC. Código asociado a esta entrada: adc1.c. Conceptos básicos de un ADC:

PROFESOR: Práctica 9. Convertidor Analógico-Digital

EL módulo conversor A/D. (c) Domingo Llorente

PIC 18F45XX EL TIMER 0

PIC16F88. Características

TERMÓMETRO SENSOR DE TEMPERATURA CON CONEXIÓN AL PC

Curso de Automatización y Robótica Aplicada con Arduino

MICROCONTROLADOR PIC DE MICROCHIP

UNIVERSIDAD DE OVIEDO

Prueba 1. Figura B.1 Diagrama de Bloques de la Conexión Para la Prueba 1. #include <p18f2321.h> #include <USART.h> #include <delays.

CONVERSOR ANALÓGICO DIGITAL DEL PIC16F877 GRUPO A02-A03

PRÁCTICA 5. Semestre ADQUISICIÓN DE DATOS MEDIANTE EL MODULO ADC

Conversor A/D. Conversor Analógico a Digital

Características Específicas de los Multímetros Industriales de Escala Automática, MultiChiefDuty. Frecuencia Eléctrica.

INSTRUMENTACIÓN AVANZADA Departamento de Ingeniería Eléctrica y Electromecánica Facultad de Ingeniería Universidad Nacional de Mar del Plata

TUTORIAL II parte A. Observemos el diagrama de pines del microcontrolador 16F877A:

V = 3,4567 V M:4,45V m:0,23v

1. LENGUAJE DE PROGRAMACIÓN C18

Circuitos Sample & Hold y Conversores

Características Específicas de los Multímetros Digitales, MiniMultimeters Ciclo Voltaje Voltaje Corriente Corriente.

Práctica 5. Comunicación serie y entradas analógicas

Laboratorio 8. Uso de Conversor Análogo Digital Digital Análogo en microcontrolador MSP430.

Circuitos Sample & Hold y Conversores. Introducción

MANUAL DE USUARIO. Modulador HD AMP196

TUTORIAL manejo LCD y conversion analogo digital

Apéndice B Programa para calcular inclinación con PIC 16F877A

3 Sensores y transductores. Alfaomega. Material Web. Arduino 2. Electrónica en arquitectura abierta 7

El circuito integrado ADC1230, fabricado

Electrónica 5 EM ITS Lorenzo Massa Pagina 1 Unidad 6 - Ing. Juan Jesús Luna

Especificaciones técnicas de los prototipos:

Muestreo y cuantificación de señales (digitalización)

CAPITULO XIV TEMPORIZADORES

Características generales en el PIC16F877

Laboratorio N 3: TERMOMETRÍA

PIC MICRO ESTUDIO Temporizador con el 16F872 Guía de Uso

Objetivo. Desarrollo. Acondicionamiento de señal. Sección 1 - Acondicionamiento de una señal analógica

Conversor A/D del PIC16F877

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA DIVISIÓN DE INGENIERÍA ELÉCTRICA DEPARTAMENTO DE INGENIERÍA EN COMPUTACIÓN

Proyecto 3: CONTROL DE VELOCIDAD DE UN MOTOR DC Y TRANSMISIÓN DE DATOS

DISEÑO Y CONSTRUCCIÓN DE UN PROTOTIPO DE CAPNOGRAFO PORTATIL

con nueve dígitos disponibles (= 9x4 salidas digitales BCD) más la señal de clock en un sólo conector.

CONVERTIDORES DIGITAL ANALOGICO (DAC) Y ANALOGICO DIGITAL (ADC)

Controlador de Interrupciones (Versión programable) Manual de Usuario

Termostato electrónico con el PIC16F872

CAPÍTULO 3. Las principales funciones del microcontrolador son: adquirir por medio del A/D y también, mostrar mensajes de pesos y voltaje en el LCD.

MULTÍMETROS DIGITALES

Instituto Tecnológico de Puebla Ingeniería Electrónica Control Digital

AR 15 P. Sensor de Temperatura Inteligente. (Sistema de ambientación.)

ET1032 Informática Industrial

MEDIDOR DE TEMPERATURA

Práctica No. 4 del Curso "Microcontroladores" Uso del Convertidor ADC

MICROCONTROLADORES. 1. El PIC 16F84A es un microcontrolador de: a) 16 bits b) 8 bits c) 4 bits d) 32 bits e) 64 bits

Proyecto final "Sistema de instrumentación virtual"

ANEXOS DIAGRAMA DE FLUJO PRINCIPAL

Convertidor Analógico Digital ADC

Control de LCD y sensor de temperatura

GUIA DE EJERCICIOS Nº 2 INSTRUMENTACIÓN AVANZADA

Usando los Codificadores Cuadráticos

Tarjeta Entrenadora EA128 Aplicación académica

Módulo Modbus RTU esclavo

Tema: Utilización del módulo CCP (PWM) en los microcontroladores PIC.

CODIGO EN ASSEMBLER TRANSMISOR. list p=16f876 ;selecion de pic

Laboratorio de Microprocesadores El MICROCONTROLADOR Diagrama de tiempos de la operación del convertidor ADC0809

Esquema de partida. Maximum Operating Supply Voltage 5.5V USB 1 USART 1

3.6) Repite el problema 3.5 para una frecuencia de reloj de 100KHz.

Instrumentación Electrónica

9 MODULACIÓN DE ANCHO DE PULSO (PWM)

MANUAL DE INSTRUCCIONES ALTÍMETRO MULTIFUNCIÓN II.

Registros SFR vistos hasta ahora: Microcontroladores PIC

Universidad Nacional de Colombia, sede Bogotá

Otros circuitos digitales. Actividad de apertura. Circuitos lógicos secuenciales.

PRODUCTO P05 SOFTWARE EMBEBIDO PARA EL CONTROL DEL CIRCUITO GENERADOR DE CORRIENTE DE LAS FORMAS DE ONDAS PARA ELECTROTERAPIA

LENGUAJE C PARA SISTEMAS DEDICADOS

Manual Impulsor inyectores Common Rail y Nafta

TUTORIAL PRIMERA PARTE: GENERACIÓN DE UN RETARDO CON TIMER.

Este capítulo está dedicado a la programación del microcontrolador y de la. tarjeta de adquisición de datos. La programación del microcontrolador se

CA240C Medidor de temperatura Hoja de datos

Proyecto final "Sistema de instrumentación virtual"

TEMA 5 LA MEMORIA DE DATOS MEMORIA RAM D.P.E. DESARROLLO DE PROYECTOS 1

Laboratorio de Termodinámica Clásica

Recursos en SYMBHIA: Empaquetado CSG225. Convertidor USB-RS /576 Kb de Block RAM

Transcripción:

81 7 CONVERTIDOR ANALÓGICO DIGITAL La familia PIC18 USB posee un convertidor Analógico Digital de 10 bits con 10 entradas en dispositivos de 28 pines y 13 entradas en dispositivos de 40/44 pines. Los siguientes pasos se deben seguir para realizar una conversión A/D: 1. Configurar el módulo: Configurar pines analógicos. Configurar voltajes de referencia. Seleccionar el canal a muestrear: Canal0(AN0) a Canal12(AN12). Ajustar el reloj de conversión (T AD ). Ajustar el tiempo de adquisición. Activar el módulo A/D. 2. Configurar la interrupción A/D (opcional). 3. Iniciar la conversión. 4. Esperar a que termine de convertir, ya sea: Por medio de sondeo del bit GO/DONE. Esperando que se genere una interrupción. 5. Leer el resultado del A/D 6. Repetir el procedimiento para la siguiente conversión. Veamos más a detalle cada uno de estos pasos. 7.1 Configurar el módulo 7.1.1 Configurar pines analógicos Como ya se explicó anteriormente, los pines denominados ANx, pueden ser analógicos o pueden ser digitales. Si queremos usar un pin ANx como canal del ADC debemos configurarlo como entrada en su respectivo pin TRIS y como analógico usando los bits PCFG del registro ADCON1 (Figura 7-1), de acuerdo a la Figura 7-2.

82 Figura 7-1. Registro ADCON1 [8] Por ejemplo si queremos usar solo el Canal0 (AN0) podemos configurarlo como analógico de la siguiente manera: ADCON1bits = 14; Figura 7-2. Configuración de pines ANx [8]

83 7.1.2 Configurar voltajes de referencia Una conversión A/D siempre se hace usando un voltaje como referencia. Los PIC18 permiten seleccionar entre 2 voltajes de referencia distintos: 1. La alimentación positiva y negativa (V DD y V SS ). 2. El voltaje en los pines V REF+ (RA3/AN3) y V REF- (RA2/AN2). Esta selección se hace por medio de los bits VCFG del registro ADCON1 (Figura 7-1), de acuerdo a la Figura 7-3. Figura 7-3. Voltajes de referencia Por ejemplo si se desean usar los pines V REF+ y V REF- como voltajes de referencia y el canal 0 como entrada analógica se puede hacer de la siguiente manera: ADCON1bits = 0x3E; 7.1.3 Seleccionar el canal a muestrear El ADC tiene hasta 13 entradas analógicas pero solamente una se puede usar a la vez, entonces debemos especificar que Canal vamos a digitalizar. Para configurar esto, se usan los bits CHS3-CHS0 del registro ADCON0 como se muestra en la Figura 7-4. Siguiendo con el ejemplo anterior, si queremos digitalizar el canal0 (previamente ya se configuró como entrada analógica AN0) podemos configurarlo de la siguiente manera: ADCON0 = 0; En la Figura 7-5 se muestra un diagrama del módulo ADC resaltando los canales de entrada.

84 Figura 7-4. Selección del canal a muestrear [8] Figura 7-5. Modulo ADC [8]

85 7.1.4 Ajustar el reloj de conversión (T AD ) El proceso completo de digitalización de un voltaje analógico consiste de 2 pasos: la adquisición (muestreo) y la conversión. La adquisición toma un tiempo para que se cargue un capacitor que mantiene el voltaje constante durante el proceso de conversión. El proceso de conversión tiene una duración de 11 periodos del ADC denominados T AD, de acuerdo al fabricante T AD debe durar mínimo 0.7µs y máximo 25µs. Esta duración debe ser especificada en el programa. La duración de T AD se configura en los bits ADCS2-ADCS0 del registro ADCON2, vea la Figura 7-6. Para una frecuencia de oscilación de 48MHz configurar los bits ADCS2-ADCS0 en F OSC /64 para dar un T AD de 48 10 64 6 1 = 1.33µ s 7.1.5 Seleccionar el tiempo de adquisición El tiempo de adquisición también se debe configurar en función de T AD, el fabricante especifica que el tiempo de adquisición debe ser mínimo 2.45µs. Este tiempo de adquisición se configura en los bits ACQT2-ACQT0 del registro ADCON2 (Figura 7-6). Por ejemplo para que la adquisición dure 2 T AD y configuramos T AD como se menciona en el tema anterior, sería: ADCON2 = 0x8E; El último bit del registro ADCON2 (ADFM) se usa para configurar la alineación del resultado. Como el resultado de la digitalización es de 10 bits, este se almacena en 2 registros: ADRESL (parte baja) y ADRESH (parte alta), de tal manera que con el bit ADFM configuramos si queremos que el resultado quede justificado a la izquierda o justificado a la derecha.

86 7.1.6 Activar el módulo A/D El módulo ADC se activa por medio del bit ADON del registro ADCON0: ADCON0bits.ADON = 1; // módulo activado, listo para iniciar Figura 7-6. Registro ADCON2 [8] 7.2 Funciones para uso del ADC El lenguaje C18 de Microchip proporciona las funciones necesarias para la configuración y el uso del ADC de los PIC18. En la Tabla 7-1 se muestran estas funciones y una breve descripción.

87 Tabla 7-1. Funciones de la librería adc.h [7] La función BusyADC regresa un valor entero indicando si el ADC está ocupado realizando una conversión (regresa 1) o si no está ocupado (regresa 0). La función CloseADC se usa para deshabilitar el módulo ADC y la interrupción asociada. La función ConvertADC inicia una conversión, previamente se debe activar y configurar el módulo por medio de la función OpenADC. Para saber si ya termino de convertir, podemos usar la función BusyADC o bien esperar que se genere una interrupción. La función ReadADC regresa el valor digital resultado de la conversión en un tipo int. La función SetChanADC se usa para seleccionar o cambiar el canal de entrada a digitalizar. Ejemplo: SetChanADC( ADC_CH0 ); 7.2.1 Función OpenADC Esta función es la más compleja, ya que recibe muchos parámetros de entrada para configurar todo lo antes explicado. La Figura 7-7 muestra el prototipo y los argumentos de la función OpenADC.

88 Figura 7-7. Función OpenADC [7]

89 Ejemplo 7-1. Uso de ADC El siguiente ejemplo demuestra el uso del módulo ADC. En este ejemplo se realizan conversiones del canal 0 cada 100ms y se muestra el valor digital en el display LCD. Este código lo puede probar con el diagrama de la Error! No se encuentra el origen de la referencia.. Figura 7-8. Prueba de ADC /* Uso del módulo ADC * Se programa el Timer0 para producir una interrupción cada 100ms * en la cual se realiza una conversión del ADC y se muestra en LCD */ #include <p18cxxx.h> #include <timers.h> #include <adc.h> #include <stdlib.h> #include "lcd.h" /** REMAPEO PARA BOOTLOADER **/ extern void _startup (void); #pragma code REMAPPED_RESET_VECTOR = 0x1000 void _reset (void) { _asm goto _startup _endasm

90 } **/ // Prototipos de función de interrupción void rsi_tmr0(void); // Variables Globales #pragma udata int valoradc; char stradc[7]; char strclean[] = " "; // Inicio de programa #pragma code void main() { char cadena[] = "Probando ADC"; // configura LCD OpenLCD( FOUR_BIT & LINES_5X7); //Envia cadena "Probando LCD" putslcd(cadena); // Activa timer0 de 16 bits, conteo de Tcy con prescaler de 1:64 OpenTimer0 (TIMER_INT_ON & T0_SOURCE_INT & T0_16BIT & T0_PS_1_64); WriteTimer0(0xB6C2); // Configura y activa el módulo ADC OpenADC( ADC_FOSC_64 & // TAD = FOSC/64 ADC_RIGHT_JUST & // Resultado justificado a la derecha ADC_2_TAD, // Tiempo de adq 2 TAD ADC_CH0 & // Selecciona Canal0 (AN0) ADC_INT_OFF & // Sin interrupción de ADC ADC_VREFPLUS_VDD & // Referencia+ VDD ADC_VREFMINUS_VSS, // Referencia- VSS 14 ); // AN0 como pin analógico // Habilitación global de interrupciones INTCONbits.GIE = 1; } while(1) { } // Vector de Interrupción #pragma code high_vector=0x1008 void high_interrupt (void) { _asm GOTO rsi_tmr0 _endasm }

91 #pragma code /****** RSI de TIMER0 *****/ #pragma interrupt rsi_tmr0 void rsi_tmr0 (void) { ConvertADC(); // Inicia conversión while(busyadc()); // Espera a que termine de convertir valoradc = ReadADC(); // Lee resultado de ADC // Convierte resultado a cadena itoa(valoradc,stradc); // Envia cadena a display LCD SetDDRamAddr(0x40); putslcd(stradc); putslcd(strclean); // Reinicia el Timer0 WriteTimer0(0xB6C2); } // Limpia la bandera de interrupción INTCONbits.TMR0IF = 0; Programa 7-1. Uso de ADC

92 7.3 Sensor de Temperatura Un sensor de temperatura es un dispositivo diseñado para responder a cambios en temperatura o medir temperatura absoluta. Actualmente se usan 5 tipos de sensores de temperatura cuyas salidas pueden ser medidas eléctricamente: 1. Termopares. 2. RTDs (resistance temperature detectors). 3. Termistores. 4. Sensores integrados. 5. Sensores infrarrojos. 7.3.1.1 Sensor LM35 En este curso usaremos el sensor LM35, el cual es un sensor de temperatura integrado con una precisión calibrada de 1ºC. Puede medir temperaturas en el rango que abarca desde -55º a + 150ºC. La salida es lineal y cada grado centígrado equivale a 10 mv en la salida. Características Precisión de ~1,5ºC (en el peor caso), 0.5ºC garantizados a 25ºC. No linealidad de ~0,5ºC (peor caso). Baja corriente de alimentación (60uA). Amplio rango de funcionamiento (desde -55º a + 150ºC). Bajo costo. Baja impedancia de salida. El voltaje de salida es proporcional a la temperatura, en la escala Celsius. No necesita calibración externa y es de bajo costo. Funciona en el rango de alimentación comprendido entre 4 y 20 voltios.

93 Como ventaja adicional, el LM35 no requiere de circuitos adicionales para su calibración externa cuando se desea obtener una precisión del orden de ±0.25 ºC a temperatura ambiente, y ±0.75 ºC en un rango de temperatura desde 55 a 150 ºC. La baja impedancia de salida, su salida lineal y su precisa calibración inherente hace posible una fácil instalación en un circuito de control. Figura 7-9. LM35 PRÁCTICA 6. Termómetro Digital con display LCD Diseñe un termómetro digital que obtenga la temperatura de un LM35 y la muestre en grados centígrados y grados Farenheit en un display LCD.