Vous êtes sur la page 1sur 23

INSTRUMENTACIN AVANZADA

Departamento de Ingeniera Elctrica y Electromecnica


Facultad de Ingeniera Universidad Nacional de Mar del Plata

Muestreo de seales analgicas

Principal requerimiento que surge al muestrear una seal continua:

Definir el periodo de muestreo con suficiente exactitud.


Ajustar el mismo a un valor adecuado de acuerdo al tipo de seal
que se desea adquirir.

2
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Muestreo de seales analgicas


El microcontrolador debera entonces adquirir un dato cada un delta
de tiempo determinado.

Cmo se hace esto en forma confiable?

Con interrupciones:

Las interrupciones son recursos o mecanismos del microcontrolador


para responder a eventos, permitiendo suspender temporalmente el
programa principal, para ejecutar una subrutina de servicio de
interrupcin (ISR por sus siglas en ingls Interrupt Service Routine);
una vez terminada dicha subrutina, se reanuda la ejecucin del
programa principal.
3
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Gestin de Interrupciones en un microcontrolador

INICIO DE INTERRUPCIN

INICIO

ENTRADAS
CONFIGURACIN DE
INTERRUPCIONES
PROCESOS

CICLO CONTINUO
(EJECUCIN DEL SALIDAS
PROGRAMA PPAL.)

FIN DE INTERRUPCIN
4
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Tipos de Interrupciones
Interrupciones externas
Corresponden a eventos externos que generan un cambio del estado
lgico de un pin de entrada digital. La transicin se detecta por cambio
en el nivel de tensin, por flanco ascendente o por flanco descendente.

Se evita as el pooling, tcnica ineficiente que consiste en sensar


constantemente el estado de las entradas digitales del
microcontrolador dentro de un bucle infinito.

Ejemplo:

5
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Tipos de Interrupciones
Interrupciones por software
Tanto los PICs como los Atmega disponen de interrupciones por tiempo
que podemos aprovechar para generar intervalos (dt) de una manera
precisa. Cada vez que se dispare una interrupcin tomaremos una
muestra.
Interrupcin
Interrupcin

6
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Interrupciones en PIC
Generacin de dt para producir Interrupciones por software
Tipos de Timers
En los PIC 18F2550 se dispone de 4 Timers.

Timer 0: puede funcionar como temporizador o contador. Tiene16 bits


(contar como mximo hasta 65535).

Timer 1 y 3: pueden funcionar como temporizadores o contadores


dependiendo del estado de unos registros de control asociados a ellos.
Tienen16 bits. Se pueden utilizar para programar interrupciones por tiempo
mediante unos mdulos denominados CCP.

Timer 2: contador o temporizador de 8 bits (contar como mximo hasta


255). Se puede utilizar para generar seales PWM tambin con CCP.

7
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Interrupciones en PIC
Generacin de dt para producir Interrupciones por software
Cada Timer del PIC 18F2550 cuenta pulsos de una seal de clock cuya
frecuencia se fija previamente.

Ejemplo:
Si el PIC trabaja con un oscilador de 20MHz por medio de una
elemento de hardware denominado PLL la frecuencia de reloj del
sistema ser de 48MHz.
Existe un divisor de frecuencia configurable por el usuario denominado
prescaler que puede tomar los valores 1, 2, 4 u 8.
Por lo tanto la frecuencia de la seal de clock aplicada a un Timer ser:

8
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Interrupciones en PIC
Generacin de dt para producir Interrupciones por software

Por lo tanto dependiendo del valor dado al prescaler, se tendr:

Prescaler Perodo de la Cantidad mxima de pulsos Tiempo


seal de clock que se pueden contar por mximo
ejemplo el Timer 1 transcurrido
1 0,08333333 us 65535 5461,33 us
2 0,16666666 us 65535 10299,67 us
4 0,33333333 us 65535 21845,33 us
8 0,66666666 us 65535 43690,67 us

9
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Interrupciones en PIC
Producido un dt disparamos una interrpcin con el
mdulo CCP1
El mdulo CCP1
El mdulo CCP1 se puede asociar al Timer 1. (mediante un registro de
control asociado a CCP1).

Mediante ese mismo registro de control asociado a CCP1 se lo puede


configurar en tres modos de funcionamiento. compare, capture, o PWM

El CCP1 configurado en modo compare dispara una interrupcin cuando


el valor del Timer 1 iguala a un valor seteado en CCP1.

10
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Ejemplo : se quiere leer con el PIC dos entradas analgicas 500 veces cada 0,5 ms
(2000 muestras/s)

11
continua
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Ejemplo : se quiere leer con el PIC dos entradas analgicas 500 veces cada 0,5 ms

12
Gua de
Ejercicios
N 10

13
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Interrupciones en Arduino
Generacin de dt para producir Interrupciones por
software
Tipos de Timers
En los chips AVR Atmega 328 (Arduino UNO) se dispone de 3 timers, mientras
que en los Atmega 2560 (Arduino MEGA) se cuenta con 6 timers.

Timer 0: contador de 8 bits (contar como mximo hasta 255). Se utiliza en


las funciones delay() y millis().
Timer 1: contador de 16 bits (contar como mximo hasta 65535). Es
utilizado por la librera servo.
Timer 2: contador de 8 bits. Similar al Timer 0. Es utilizado por la funcin
tono.
Timer 3, 4 y 5: son tres contadores de 16 bits similares al Timer 1,
disponibles en la Arduino MEGA.
14
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Interrupciones en Arduino
Generacin de dt para producir Interrupciones por
software

Configuracin del Timer 1 para adquisicin de seales analgicas

Debemos modificar sus registros en memoria:

TCCR1A (Timer Counter Control Register)


TCCR1B
TIMSK (Timer/counter Interrupt Mask Register)
OCR1A (Output Compare Register)

15
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Interrupciones en Arduino
Configuracin del Timer 1 para adquisicin de seales analgicas

16
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Interrupciones en Arduino
Configuracin del Timer 1 para adquisicin de seales analgicas

= 16 (frecuencia de clock proveniente del cristal)


= (frecuencia de clock del contador)

1
= (tiempo entre cada conteo)

1
, = (periodo o frecuencia de muestreo deseados)


= 1 = 1 (valor mximo de reset del contador)

17
Gua de
Ejercicios
N 10

18
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Muestreo de seales analgicas


Mientras la adquisicin est en curso:
es la alternativa que estuvimos analizando
aprovecha el dt (una pausa) entre muestra y
Alternativas
muestra para enviar los datos a la PC
para la la tasa de muestreo depender adems de la
transferencia velocidad del conversor A/D de la velocidad de la
de datos entre comunicacin.
la placa y la PC

Una vez finalizada la adquisicin:


es una alternativa que implica guardar los datos
en la memoria de la placa para luego enviarlos a la
PC
la tasa de muestreo depender de la velocidad
del conversor A/D pero la cantidad de datos a tomar
de la memoria de la placa.
19
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Frecuencia de Muestreo: Caso Arduino


Tiempo de conversin del ADC


= 100 = 1. 105

5

14 . 1. 10 = 1,4. 104 7,1

20
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Tiempo para el envo de las muestras: Caso Arduino


Tiempo de envo de datos

Por cada canal muestreado, se envan 2 bytes en cada interrupcin a una


velocidad de 115200 baudios:


2 . 10

= 1,73. 104 5,7

115200

21
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Aspectos a tener en cuenta para medir una alterna


con la placa PIC o Arduino

1. El rango de conversor A/D del PIC 18F2550 es:


Limitaciones 0 V 5 V (tensin de alimentacin)
A TENER EN CUENTA pero en nuestro caso, como hay unos diodos de
proteccin la tensin de alimentacin no es 5V sino unos
4,2V)
0V = 0 en el conversor 4,2V=1023 en el conversor

2. El rango de conversor A/D del Arduino es:


0 V 5 V (tensin de alimentacin)
0V = 0 en el conversor 5V=1023 en el conversor

22
INSTRUMENTACIN AVANZADA
Departamento de Ingeniera Elctrica y Electromecnica
Facultad de Ingeniera Universidad Nacional de Mar del Plata

Aspectos a tener en cuenta para medir una alterna


con la placa PIC o Arduino
3. El PIC o el Arduino no pueden medir tensiones negativas.
Limitaciones
Debemos acondicionar la seal a medir para eliminar los
A TENER EN CUENTA
valores negativos

Circuito bsico propuesto para superponer una continua de valor Vcc/2 a Vx:
Vx
Tensin en PIC
1.5
5
4.5
1
4
0.5 3.5
3
0 2.5
2
-0.5
1.5
-1 1
0.5
-1.5 0

23

Vous aimerez peut-être aussi