Вы находитесь на странице: 1из 6

PRACTICA N.

-4

CONVERTIDOR A/D RAMPA SIMPLE


1. Objetivos:
Familiarizar al estudiante con el funcionamiento de los convertidores AD de
rampa simple.
Familiarizar al estudiante con el funcionamiento de los Timers de la placa
Arduino.
Familiarizar al estudiante con el funcionamiento de las interrupciones
utilizadas en Arduino.
2. Preparatorio
Consultar y realizar un resumen:
a) Caractersticas de los timers de la placa Arduino UNO.
Arduino UNO utiliza el micro controlador Atmel ATmega328, el cual cuenta con tres
Timers denominados Timer0, Timer1 y Timer2.
Timer0 y Timer2 son temporizadores de 8 bits, en cambio el Timer1 es de 16 bits.
Entonces existe una diferencia de resolucin entre estos temporizadores, 8 bits significa
256 valores y 16 bits significa 65.536 valores, es decir este ltimo es de mayor
resolucin.
Los timers pueden ser configurados con algunos registros especiales de timer.
El Timer0 es utilizado para las funciones delay(), millis() y micros(), que son para
realizar un seguimiento del tiempo transcurrido desde el ultimo reinicio. Si se cambian
estos valores se puede influir en las funciones de temporizador del Arduino.
Es mejor no modificar estos valores.
El Timer1 es utilizado por la bibloteca Servo, para proporcionar la interrupcin
impulsada por la generacin de la seal servo.
El Timer2 es utilizado por la funcin tone()
I.

Se puede cambiar el comportamiento de los timers a travs de los siguientes registros en


el microcontrolador:
TCCRx: Registro de Control timer/counter. El prescaler se configura aqu.
TCNTx: Registro timer/counter. El valor real del temporizador se almacena aqu
OCRx Registro de comparar salida
TIFRx: Registro de la bandera de interrupcin timer/counter. Indica una interrupcin del
temporizador pendiente

PRACTICA N.-4

b) Librerias e instrucciones necesarias para el uso de los timers presentes en


Arduino (refirindose a la placa adquirida por el grupo) y sus
interrupciones.
Timer 1:
TimerOne library ( #include <TimerOne.h> )
Configuracin de instrucciones.
Timer1 . initialize (microseconds);
Se utiliza para empezar a trabajar con este timer. Microseconds es el periodo de tiempo
que el tiemer toma.
Timer1 . setPeriod (microseconds);
Establece un nuevoperiodo luego que ha sido inicializada la biblioteca.
Control de ejecucin de instrucciones.
Timer1 . start ();
Inicia el timer
Timer1 . stop ();
Detiene el timer
Timer1 . restart ();
Reinicia el timer, desde el principio de un nuevo periodo
Timer1 . resume ();
Reanuda la ejecucin del timer detenido
Funcin de interrupcin
Timer1 . attachInterrupt (function);
Ejecuta una funcin cada que el tiempo de periodo ha finalizado. La funcin se ejecuta
como una interrupcin.
Timer1 . detachInterrupt ();
Deshabilitar la interrupcin.
Timer 2:
MsTimer2: ejecuta peridicamente una funcin, por 1 milisegundo.

PRACTICA N.-4

Configuracin de instrucciones.
MsTimer2 ::set(unsigned long ms, void (*f)())
Establece un tiempo en milisegundos para el desbordamiento, cada desbordamiento, f
tiene que ser declarado nulo sin parmetros.
Funcin de interrupcin
MsTimer2 ::start()
Permite la interrupcin
MsTimer2 ::stop()
Desactiva la interrupcin.
FlexiTimer2: permite que la resolucin sea configurable en lugar de ser fijado en 1
milisegundo.
Configuracin de instrucciones.
FlexiTimer2 ::set(unsigned long units, double resolution, void (*f)())
Establece en unidades de tiempo la resolucin para el desbordamiento.
Cada desbordamiento, f tiene que ser declarado nulo sin parmetros.
FlexiTimer2 ::set(unsigned long ms, void (*f)())
Establece un tiempo en milisegundos para el desbordamiento.
Cada desbordamiento, f tiene que ser declarado nulo sin parmetros.
Funcin de interrupcin
FlexiTimer2 ::start()
Inicia la interrupcin
FlexiTimer2 ::stop()
Desactiva la interrupcin.
Instrucciones generales:
initialize(periodo).
Puede especificar el periodo del temporizador (en us) por defecto es 1seg.
setPeriod(periodo).
Establece el periodo en us, el periodo minimo o mayor frecuencia es compatible con 1us
o 1MHz, el mximo o menos frecuencia e s8388480 us o 8.3 seg.
pwm(pin,duty,periodo).
Genera ondas PWM.
attachInterrupt(funcin, periodo)
Llama a una funcin en el intervalo especifico en milisegundos.
detachInterrupt
Deshabilita la interrupcin asociada.
read()
Lee el tiempo desde el ltimo desbordamiento en us.

PRACTICA N.-4

c) Caractersticas de un convertidor de rampa simple (incluir ventajas y


desventajas).
La conversin digital resulta al utilizar mtodos indirectos, se transforma la variable de
entrada en otra variable intermedia esta variable intermedia es el tiempo. Entonces
convierte primero el voltaje de entrada en esta variable intermedia para luego convertir
esta magnitud en una salida digital.
Para el convertidor de rampa simple, se integra el voltaje de referencia hasta que la
salida del integrador sea igual al voltaje de entrada. El tiempo que tarda en llegar hasta
este punto depende de la magnitud del voltaje de entrada y se mide con un reloj y
contador interno. La precisin depende de la frecuencia de reloj, de la estabilidad del
voltaje de referencia y de la capacidad del capacitor de integracin.

Cuando llega la orden de comenzar la conversin, se resetea el contador y se descarga el


capacitor, al desaparecer el pulso de inicio, a la salida del integrador, se dispara una
rampa de pendiente Vref/RC. Entonces el contador estar habilitado para contar los
pulsos de CLK, aumentando as el valor de N.
Cuando la amplitud de la rampa sea iguala Vi, la salida del comparador ser 0 y el
contador quedara bloqueado en el valor final de N y en la salida del conversor habr un
1 indicando el fin de la conversin.
N=f clkt
Ventajas:
o Estructura simple y barata si no se considera las caractersticas del reloj externo.
o No utiliza convertidores D/A.
o La conversin se realiza en un solo paso.
Desventajas:
o Baja velocidad de conversin.
o Poca precisin.
o Dependencia de la linealidad de la rampa.
o La precisin de la conversin depende de :
La estabilidad de la frecuencia de reloj.
La estabilidad del voltaje de referencia.
La precisin de R y C.

PRACTICA N.-4

d) Calculo de la pendiente de la rampa.

V i=

V ref
t
RC

m=

V
RC

II.

Conteste brevemente:
a. Qu es el pre-escalador de un Timer en un microprocesador?
Es un circuito que permite modificar la frecuencia del reloj de entrada de un timer,
dividindola y generando una nueva seal de menor frecuencia que ser la seal de reloj
de entrada a un registro. Cuando la seal de entrada es demasiada rpida se utiliza el
pre-escalador para ralentizarla.
b. Qu valores posibles se tienen para el pre-escalador de la placa ARDUINO
adquirida?
La precisin del temporizador depende de la velocidad del procesador y la frecuencia.
La velocidad de reloj del timer se define fijando el prescaler. Este se puede ajustar a 1,
8, 64, 256 o 1024.
Para 16MHz:

Max Periodo=

Prescale1 17
2
frecuencia
Time per tick =

III.

Prescale1
frecuencia

Implemente el circuito necesario.


3. Bibliografa.

IV.

[1] Sistemas analgicos digitales, Apuntes de clase, Ing. Ramiro Morejn,


Escuela Politcnica Nacional, Abril 2015.
5

PRACTICA N.-4

V.
VI.
VII.
VIII.
IX.
X.
XI.

[2] Advanced Arduino: direct use of ATmega counter/timers. [Online].


Available: http://sphinx.mythic-beasts.com/~markt/ATmega-timers.html
[3] Arduino 101: Timers and Interrupts. [Online].Available:
http://playground.arduino.cc/%20DIGITALES/Muestreo%20digital.pdf
[4] Arduino y los timers. [Online].Available: http://www.prometec.net/timers/
[5] Arduino. [Online].Available: http://playground.arduino.cc/
[6] Conversores D/A y A/D. [Online].Available:
http://www.fceia.unr.edu.ar/enica3/da-ad.pdf

Вам также может понравиться