Guía práctica 4

4
UNIVERSIDAD DEL VALLE - FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA ÁREA DE INFORMÁTICA INDUSTRIAL LABORATORIO DE INSTRUMENTACIÓN ELECTRÓNICA Conversión Análogo/Digital con el módulo ADC de la tarjeta Arduino Uno **** Lea completamente esta guía antes de realizar la práctica **** 1. OBJETIVOS 1.1. Familiarizarse con los principales conceptos asociados a los convertidores Analógo/Digitales (ADCs). 1.2. Entender el principio de funcionamiento y determinar las principales características del módulo ADC de la tarjeta Arduino Uno. 1.3. Utilizar el módulo ADC de la tarjeta Arduino Uno para realizar una conversión A/D y visualizar el resultado en computador, usando un sensor de presión. NOTA: en esta práctica se pretende que el estudiante diseñe el experimento a partir de los objetivos propuestos. 2. COMPONENTES Y EQUIPO DE LABORATORIO Para el desarrollo de la práctica se requiere la tarjeta Arduino Uno[1], un sensor de presión MPX2010DP[2], un computador portátil (con drivers y entorno de desarrollo de Arduino) [3], resistencias y condensarodes. La tarjeta y el sensor serán proporcionados al iniciar la práctica. Los demás componentes y el equipo de laboratorio serán determinados según los requerimientos de cada experimento. * El apartado 3 se incluye para satisfacer parcialmente los objetivos #1 y #2 de la práctica. La satisfacción total de los objetivos se logra consultando material adicional sobre el tema. 3. MARCO TEÓRICO Los convertidores de análogo a digital pueden clasificarse en dos grandes grupos: los que operan por comparación y los que operan por integrración. El modulo ADC de la tarjeta Arduino Uno utiliza aproximaciones sucesivas [4, 5], método que se encuentra en primer grupo de convertidores. Arduino es una plataforma electrónica abierta para la creación de prototipos basados en software y hardware flexibles y fáciles de usar. Arduino Uno, está basado en el microcontrolador ATmega328 [6] que proporciona 14 pines de entrada/salida digitales, 6 entradas análogas simples, un oscilador de 16MHz y una conexión USB. 3.1 CARACTERISTICAS DEL MODULO ADC Resolución de 10 bits Tiempo de conversión entre 13us y 260us 6 canales multiplexados de entrada simple 2 canales adicionales multiplexados de entrada simple (no para el encapsulado tipo PDIP) Entrada para sensor de Temperatura Rango de voltaje de entrada de 0 a Vcc Opciones de Voltaje de referencia interna y externa Ejecución en modo libre o una sola conversión 3.2 DESCRIPCION GENERAL Fig. 1 Diag. de Bloques del Módulo ADC

description

guia 4

Transcript of Guía práctica 4

Page 1: Guía práctica 4

UNIVERSIDAD DEL VALLE - FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA

ÁREA DE INFORMÁTICA INDUSTRIAL

LABORATORIO DE INSTRUMENTACIÓN ELECTRÓNICA Conversión Análogo/Digital con el módulo ADC de la tarjeta Arduino Uno

**** Lea completamente esta guía antes de realizar la práctica ****

1. OBJETIVOS

1.1. Familiarizarse con los principales conceptos asociados a los convertidores Analógo/Digitales (ADCs).

1.2. Entender el principio de funcionamiento y determinar las principales características del módulo ADC de la tarjeta Arduino Uno.

1.3. Utilizar el módulo ADC de la tarjeta Arduino Uno para realizar una conversión A/D y visualizar el resultado en computador, usando un sensor de presión.

NOTA: en esta práctica se pretende que el estudiante diseñe el experimento a partir de los objetivos propuestos.

2. COMPONENTES Y EQUIPO DE LABORATORIO

Para el desarrollo de la práctica se requiere la tarjeta Arduino Uno[1], un sensor de presión MPX2010DP[2], un computador portátil (con drivers y entorno de desarrollo de Arduino) [3], resistencias y condensarodes. La tarjeta y el sensor serán proporcionados al iniciar la práctica. Los demás componentes y el equipo de laboratorio serán determinados según los requerimientos de cada experimento. * El apartado 3 se incluye para satisfacer parcialmente los objetivos #1 y #2 de la práctica. La satisfacción total de los objetivos se logra consultando material adicional sobre el tema.

3. MARCO TEÓRICO

Los convertidores de análogo a digital pueden clasificarse en dos grandes grupos: los que operan por comparación y los que operan por integrración. El modulo ADC de la tarjeta Arduino Uno utiliza aproximaciones sucesivas [4, 5], método que se encuentra en primer grupo de convertidores.

Arduino es una plataforma electrónica abierta para la creación de prototipos basados en software y hardware flexibles y fáciles de usar.

Arduino Uno, está basado en el microcontrolador ATmega328 [6] que proporciona 14 pines de entrada/salida digitales, 6 entradas análogas simples, un oscilador de 16MHz y una conexión USB.

3.1 CARACTERISTICAS DEL MODULO ADC

• Resolución de 10 bits • Tiempo de conversión entre 13us y

260us • 6 canales multiplexados de entrada

simple • 2 canales adicionales multiplexados de

entrada simple (no para el encapsulado tipo PDIP)

• Entrada para sensor de Temperatura • Rango de voltaje de entrada de 0 a Vcc • Opciones de Voltaje de referencia

interna y externa • Ejecución en modo libre o una sola

conversión 3.2 DESCRIPCION GENERAL

Fig. 1 Diag. de Bloques del Módulo ADC

Page 2: Guía práctica 4

El módulo ADC de la tarjeta Arduino Uno trabaja con aproximaciones sucesivas (fig. 1). Tiene un multiplexor análogo que le permite manejar 6 entradas de voltaje simple (referenciadas a tierra), a través de los pines del puerto C. El canal de entrada se selecciona en ADMUX. La alimentación de voltaje de este módulo AVCC es separada y no puede diferir mas de ±0.3V de Vcc. Se puede fijar un voltaje de referencia interno (Vcc o 1.1V) o externo (AVref). El convertidor es habilitado con el bit ADEN del registro ADCSRA. El módulo ADC tiene un muestreador y retenedor que asegura que el voltaje de entrada sea estable durante la conversión. El convertidor tiene una no-linealidad integral de 0.5LSB y una precisión absoluta de ±2LSB 3.3 CONFIGURACIÓN DEL MÓDULO Configurar puertos y Deshabilitar Reducción de consumo de potencia.

Fig. 2. Pines del Microcontrolador

ATmega328P

Los seis canales de entrada analógica simples del ATmega328P se encuentran en el puerto C, PORTC[5:0] (fig. 2). Cuando se utiliza el módulo ADC del Arduino Uno se debe configurar el puerto C (o determinado pin del puerto C) como puerto de entrada. Para habilitar el módulo ADC, el bit de reducción de potencia del módulo ADC, PRADC en el registro PRR, debe ser desabilitado, escribiendo un cero lógico. Seleccionar Canal de entrada Para seleccionar uno de los 6 canales de entrada analógica simple del Arduino Uno con encapsulador PDIP, se fija los bits MUX[3:0] del registro ADMUX. Por ejemplo, para seleccionar el ADC0, pin 23, los bits MUX[3:0] son 0000. Si estos bits se cambian durante una

conversión, el cambio no tendrá efecto hasta que se complete la conversión. Seleccionar Voltaje de referencia El voltaje de referencia, ya sea interno (1.1v o AVcc) o externo (AREF), se selecciona a través de los bits REFS[1:0] del registro ADMUX. Si el voltaje de referencia se selecciona interno, se debe usar un condensador entre AREF y tierra. No se puede utilizar un voltaje de referencia interno si un voltaje de referencia externo se aplica al pin AREF. Seleccionar pre-escala del reloj del módulo ADC El circuito de aproximaciones sucesivas requiere una frecuencia de reloj entre 50kHz y 200kHz para obtener máxima resolución. El módulo ADC contiene un pre-escalizador que genera una frecuencia de reloj aceptable para el ADC. La pre-escala se fija con los bits ADPS en el registro ADCSRA. El pre-escalizador empieza a funcionar desde que se habilita el convertidor con el bit ADEN en el registro ADCSRA. La primera conversión, después que el ADC es habilitado toma 25 ciclos de reloj del ADC. Una conversión normal toma 13 ciclos de reloj del ADC. Seleccionar justificación de los registros de resultado

Fig. 3. Registros de Datos: ADCH y ADCL

El resultado de 10 bits de una conversión se presenta en los registros ADCL y ADCH. El resultado puede ser ajustado a la derecha o a la izquierda fijando el bit ADLAR en ADMUX a cero lógico o a uno lógico, respectivamente (fig. 3). Si el resultado se ajusta a la izquierda y no se requiere más de 8 bits de precisión, es suficiente con leer ADCH. De lo contrario, se debe leer primero ADCL y luego ACH para asegurar que el contenido de los dos registros pertenezca a la misma conversión. Habilitar el módulo Para habilitar el módulo ADC del ATmega328P se debe escribir un uno lógico en el bit ADEN

Page 3: Guía práctica 4

del registro ADCSRA. Con un cero lógico este módulo se desactiva. Comenzar una conversión Una sola conversión se inicia escribiendo un cero lógico en el bit PRADC del registro PRR para deshabilitar la reducción de potencia del ADC y escribiendo un uno lógico al bit de inicialización de conversión, ADCSC, en el registro ADCSRA. Este bit permanecerá en nivel alto hasta que la conversión se complete, momento en el cual será cambiado a cero por hardware. ADCSC puede ser usado para determinar si una conversión está en progreso; si termina la conversión se lee el resultado y se inicializa otra conversión. Si se quiere inicializar una conversión en ciertos intervalos de tiempo con una señal de disparo se puede activar el bit ADC Auto Trigger Enable, ADATE, en el registro ADCSRA. Se selecciona una fuente de disparo con los bits ADC Trigger Select, ADTS, en ADCSRB. Se puede usar la bandera de interrupción del ADC, ADIF, como fuente de disparo de modo que se inicie una nueva conversión cada vez que la conversión actual termine (ejecución libre). ADIF se coloca en uno lógico cuando una conversión se completa y los registros de datos se actualizan. La interrupción de conversión completa se ejecuta si el bit de habilitación de interrupción del ACD, ADIE en ADCSRA, y el bit I en SREG, de habilitación global de interrupciones, están en uno lógico. ADIF cambia a cero lógico por hardware cuando se ejecuta el vector de interrupción correspondiente. Alternativamente, ADIF cambia a cero lógico escribiendo un uno lógico en la bandera. Calcular el voltaje análogo de entrada Después de que la conversión se completa, el resultado puede ser leído de los registros ADCL y ADCH. El resultado es:

��� =���1024

�� �

donde VIN es el voltaje en el pin de entrada seleccionado y VREF es el voltaje de referencia seleccionado. Instalar el IDE y drivers La tarjeta Arduino Uno puede ser programada con el software de Arduino que proporciona un entorno de desarrollo (fig. 4) y permite descargar el código a la tarjeta.

Fig.4. IDE de Arduino

El software de Arduino puede ser descargado de [3]. También se debe instalar el driver USB para reconocer la tarjeta Arduino Uno. Una guía paso a paso de estos procesos puede ser encontrada en [7, 8]. Conectar la tarjeta con el computador Se utiliza un cable USB tipo-A a USB tipo-B para conectar la tarjeta Arduino Uno con el Computador a través de comunicación serial UART. El IDE de Arduino tiene una Terminal Virtual en donde se puede visualizar la comunicación serial entre el computador y la tarjeta. Se puede encontrar en el menú: Herramientas/Monitor Serial. Simular en Proteus Para simular el microcontrolador ATmega328P en Proteus se requiere especificar la ubicación del archivo .hex. Esta ubicación se puede observar en la información de compilación al colocar un visto sobre mostrar resultado detallado durante: compilación, en el menú: Archivo/Preferencias. También se necesita configurar las propiedades del microcontrolador en Proteus. A continuación se presenta la configuración de las propiedades del ATmega328P (fig. 5).

Page 4: Guía práctica 4

Fig. 5. Configuración de propiedades del

ATmega328P en Proteus Para poder acceder a la práctica es necesario presentar las tablas que se van a llenar, los diagramas de conexión y el procedimiento a desarrollar. Tome como ejemplo las guías número 1 a 3 del laboratorio de instrumentación electrónica.

Tenga en cuenta las siguientes recomendaciones:

• Revise todas las conexiones del circuito antes de energizarlo.

• Verifique la magnitud y polaridad de los voltajes aplicados al circuito.

• No encienda la fuente de voltaje hasta que haya conectado todos los cables de alimentación.

4. INFORME

1. Explique el procedimiento que definió para el desarrollo de la práctica. Recuerde que el desarrollo de esta práctica debe cumplir con los objetivos propuestos al inicio de la guía.

2. Presente de manera ordenada el código y los datos obtenidos con el procedimiento realizado y explique los resultados logrados.

3. Construya una tabla en la que aparezcan 4 fabricantes de convertidores A/D, cada uno de ellos con al menos tres técnicas de conversión diferentes y al menos dos

referencias por cada una de las técnicas de conversión. Para cada dispositivo liste las características más relevantes (resolución, canales, precio por unidad mencionando el proveedor, error total, tiempo de conversión).

4. Presente el resumen de un artículo que describa una aplicación industrial con sistemas de adquisición en el que se use un convertidor A/D (con la justificación para su uso).

5. Presente dos aplicaciones industriales o médicas que usen el sensor de presión MPX2010DP o similares.

6. Conclusiones y comentarios de la práctica.

5. BIBLIOGRAFIA

1. ARDUINO. Arduino Board Uno. http://arduino.cc/en/Main/arduinoBoardUno

2. MOTOROLA. 10kPa On-Chip Temperature Compensated and Calibrated Silicon Pressure Sensors. http://educypedia.karadimov.info/library/MPX2010.pdf

3. ARDUINO. Arduino Software http://arduino.cc/en/Main/Software

4. Floyd, Thomas L., Fundamentos de Sistemas Digitales. Séptima edición. Pearson Education, S.A. Pags. 845-849. Madrid, 2000.

5. Coughlin, Robert F. y Driscoll, Frederick F. Amplificadores operacionales y circuitos integrados lineales. Quinta edición. Prentice Hall. Pags. 425-428. Mexico, 1999.

6. ATMEL. ATmega328P datasheet. http://www.atmel.com/devices/ATMEGA328P.aspx

7. ARDUINO. Getting started with Arduino on Windows http://arduino.cc/en/Guide/Windows

8. ARDUINO. Installing Arduino on Linux. http://playground.arduino.cc/Learning/Linux