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

Instituto Politcnico

Nacional
Unidad Profesional
interdisciplinaria en
Ingeniera y Tecnologas
Avanzadas

PRCTICA 4.
CONVERSOR
ANALGICO DIGITAL
Unidad de aprendizaje

Microprocesadores, microcontroladores
e interfaz
Profesor

David Benjamn Trejo Salazar


Grupo

2mm6
Integrantes

Sabik Fernando Portillo Villalobos


Jamyr Agustn Vzquez Salinas
David Alejandro Toro Sandoval

INTRODUCCIN
En el mundo real, las seales analgicas (comunes por todos lados)
varan constantemente. Estas seales pueden variar lentamente como la
temperatura o muy rpidamente como una seal de audio. Lo que sucede con
las seales analgicas es que son muy difciles de manipular, guardar y
despus recuperar con exactitud. Si esta informacin analgica se convierte a
informacin digital, se podra manipular sin problema y se puede guardar con
gran facilidad. La informacin manipulada puede despus volver a tomar su
valor analgico original, con un DAC (convertidor Digital a Analgico).
Los conceptos de analgico y digital se conocen desde hace bastantes aos.
Como ya hemos mencionado, la mayora de la informacin existente es la
analgica, lo que significa que sufre una variacin continua en amplitud a lo
largo del tiempo.
No ocurre lo mismo con la informacin digital, ya que es bastante difcil
encontrarla en la naturaleza y, posiblemente los pocos pasos que encontremos
pueden llevar a confusin. Sin embargo, podemos poner como ejemplos lleno
y vaco, vida y muerte, que son valores perfectamente diferenciados y solo
admiten un numero finito de estados en un intervalo finito de tiempo.
Siguiendo con los ejemplos de diferenciacin entre lo analgico y lo digital,
podemos mencionar los relojes que, como bien sabemos, pueden pertenecer a
una u otra familia. As, los analgicos se caracterizan por su capacidad de
reflejar los infinitos valores de la variable tiempo en su recorrido. De manera
que para un intervalo finito de tiempo l nmero de valores que se han
visualizado es infinito.
Los relojes digitales nos darn un nmero determinado de valores que,
dependiendo de la precisin del reloj, ser diferente. Si, por ejemplo,
nicamente tiene horas y minutos en un intervalo de sesenta segundos, solo
nos visualizara dos valores: el anterior y el siguiente a este. Si, por el contrario,
el reloj tuviera tambin segundos en el mismo intervalo que el anterior, nos
mostrara 61 valores.
De este modo comprobamos que, segn la precisin del reloj, tendremos ms o
menos cantidad de valores visualizados. Pero, de lo que s estamos seguros es
de que los relojes digitales siempre tendrn un numero finito de valores en un
intervalo de tiempo completo.
Por lo tanto, la informacin digital es una forma prctica de reflejar el
comportamiento de la naturaleza de una manera sencilla. El proceso de lo que
s estamos seguros, es de los relojes digitales siempre tendrn un numero finito
de valores en un intervalo de tiempo completo.
Por lo tanto, la informacin digital es una forma prctica de reflejar el
comportamiento de la naturaleza de una manera sencilla. El proceso de
extraes la informacin digital de la analgica es la denominada conversin

analgico / digital. Y como va a ser una informacin digitalizada vendr


expresada con 0 y 1, ya que los encargados de tratarla sern los
microprocesadores de un ordenador.
El funcionamiento de la conversin analgico / digital estriba en que la
informacin analgica no es directamente manipulable, ni procesable,
mediante sistemas digitales o a travs de un ordenador, pero s lo son las
seales digitales que pueden almacenarse indefinidamente y, ms aun, pueden
incluso reproducir la seal analgica sin error apreciable. Como ejemplo ms
destacable en la actualidad, es la tcnica de grabacin digital, donde la seal
analgica que es la voz, en un proceso previo, ser sometida a muestreo y
transformada en lenguaje binario. Los unos y ceros que se obtienen en esta
accin sern los que, posteriormente, se grabarn sobre un disco compacto
(compC-disc) esto gracias a la tecnologa lser, podrn ser reproducidos con
una calidad de sonido increblemente igual a la original.
En resumen, aunque existe gran diversidad de tipos o familias de conversores
analgicos / digitales y todos ellos han de cumplir las tres fases citadas
anteriormente:

Muestreo
Cuantificacin
Codificacin.

DESARROLLO
Experimento
analgicas

1.-

Muestreo

de

seales

Planteamiento: Se tienen dos seales analgicas en la entrada, las cuales se


conectarn a los pines ADC0 y ADC1. El circuito contar con un selector de
seal, el cual elegir entre cualquiera de las dos entradas para representar su
valor en 10 Leds. La conversin ser automtica con un pre-escalamiento de
clk/16.

Diagrama de flujo

CDIGO

Figura 1. Diagrama del flujo del programa realizado


en donde destaca la espera del trmino de la
conversin. En esta seccin del cdigo se

//PUERTOS
LDI R16,0xFF
OUT DDRB,R16
LDI R16, 0x0C
OUT DDRC, R16
CLR R16
OUT DDRD,R16
SER R16
CICLO:
OUT PORTD,R16
LDS R16,ADMUX
SBIS PIND,0
//ADC
JMP R16,
SELEC_UNO
LDI
0x40
SBISADMUX,R16
PIND,1
STS
JMP R16,
SELEC_DOS
LDI
0x84
LDI R16,0
STS
ADCSRA,R16
STS PORTB,R16
LDI R16,0xF3
LDS R17,PORTC
AND R17,R16
STS PORTC,R17
JMP CICLO

SELEC_UNO:
LDI R16,0x40
JMP INICIO_CONVER
SELEC_DOS:
LDI R16,0x41
JMP INICIO_CONVER

inicializaron los
puertos B y D como salidas y el puerto C con sus
dos bits menos significativos como entradas para
usarlos como los canales 0 y 1 del convertidos
analgico digital.
Adems, se configur
siguientes parmetros:

el

ADC

activando

los

REF0: para utilizar AVCC como voltaje de


comparacin
ADEN: Para activar el convertidor
ADPS2: Para configurar la divisin por el
factor de 16

En esta seccin del cdigo se determin


cul de los selectores estaba activo y de esa
manera
seleccionar
con
las
rutinas

alternativas SELEC_UNO y SELEC_DOS cual bit se activara en


ADMUX para seleccionar el canal de conversin.
Posteriormente en el bloque siguiente se mostrarn los valores de la
conversin en el puerto B y en los pines no utilizados del puerto C, por lo
que se ejecuta un enmascaramiento para la proteccin de los bits ya
utilizados.

INICIO_CONVER:
STS ADMUX,R16
LDS R16, ADCSRA
ORI R16,(1<<6)
STS ADCSRA,R16
ESPERA:
LDS R16, ADCSRA
SBRS R16,4
JMP ESPERA
LDS R17,ADCL
OUT PORTB,R17
LDS R17,ADCH
ROL R17
ROL R17
LDS R18, PORTC
OR R18,R17
OUT PORTC,R18
//RCALL DELAY
JMP CICLO

Esta seccin es la parte central del programa y se


encarga de:
1.
2.
3.
4.

Iniciar la conversin
Esperar a que la conversin se termine
Mostrar los valores de ADCL en PORTB
Mostrar solo los dos bits de ADCH en PORTC
en los pines 2 y 3 para no alterar los pines 0
y 1 en donde se est ejecutando la lectura.

SIMULACIN

Figura 2.
Simulacin del circuito empleado en la
prctica en donde se muestra la barra de leds, los dos
potencimetros y los dos botones de seleccin.

Figura 3. Simulacin del circuito modificando el valor


de RV1 y mostrando su valor en la barra de leds

RESULTADOS:
Figura 4. Simulacin del circuito modificando el valor
de RV2 al 100% y mostrando su valor en la barra de leds

Figura 5.
Se muestra el valor de conversin del
potencimetro de la izquierda una vez activado el
selector nmero 1.

Experimento 2.- Control de motor con


Figura 6.
Se muestra el valor de conversin del
seal analgica
potencimetro de la derecha una vez activado el
selector nmero 2.

Planteamiento: Controlar la velocidad de un motor de CD leyendo el ADC


utilizando 8 bits. Con la lectura del potencimetro se controlar el ancho de
pulso (Fast PWM) asociando el valor ledo con el de OCR0A.

Diagrama de flujo

Figura 7. Diagrama de flujo del experimento dos en donde


destaca el cambio proporcional del ciclo de trabajo de un
PWM por el valor de conversin

CDIGO
//TIMER0
LDI R20, 0x23
OUT TCCR0A,R20
LDI R20, 0x04
OUT TCCR0B,R20
//ADC
LDI R16, 0x60
STS ADMUX,R16
LDI R16, 0x84
STS ADCSRA,R16

En esta seccin del cdigo se configuraron los dos


perifricos de inters para nuestra aplicacin: El ADC
y el TIMER0
Para configurar el TIMER0 se activaron los siguientes
bits de configuracin:

COM0B1: Para configurar el modo no invertido


de FAST PWM en el canal B
WGM01, WGM02 y WGM03: Para configurar el
modo FAST PWM con tope en 0Xf

Para el ADC se configuraron los siguientes pines:

REFS0: Para configurar AVCC como la entrada del voltaje de referencia


para efectuar la conversin.
ADLAR: Para un ajuste a la izquierda y quedarnos con los valores ms
significativos en futuros comandos.
Se opt por dejar la configuracin para el canal 0, por lo que ningn otro
bit de configuracin tuvo que ser activado
ADEN: Para encender el perifrico.
ADPS2: Para configurar un pre escalamiento de 16

INICIO_CONVER:
LDS R16, ADCSRA
ORI R16,(1<<6)
STS ADCSRA,R16
ESPERA:
LDS R16, ADCSRA
SBRS R16,4
JMP ESPERA
LDS R17,ADCH
OUT PORTB,R17
OUT OCR0B,R17
JMP INICIO_CONVER

Este es loop principal del programa, se encarda de:


1. Iniciar la conversin
2. Esperar a que la conversin termine
3. Carga el valor de ADCH en el registro OCR0B
para as modificar el ancho de pulso del PWM

SIMULACIN

Figura 8.
Simulacin del circuito realizado en el
experimento dos en donde se muestra un osciloscopio
para identificar los cambios en la salida .

Figura 9.
Simulacin del circuito realizado en el
experimento dos en donde se muestra la salida del pwm
del microcontrolador, con un valor intermedio de RV1.

Figura 10.
Simulacin del circuito realizado en el
experimento dos en donde se muestra la salida del pwm
del
microcontrolador,
con
un
valor
bajo
del
potencimetro. Haciendo mas pequeo el ciclo de

RESULTADOS:

Figura 11. Circuito real desarrollado, en donde se


muestra un transistor encargado de la fase de potencia
una vez procesada la seal del micrcontrolador con el
motor de cd de 12 V a la derecha

Figura 12.
Fuente de voltaje implementada para
alimentar el motor una vez procesada la seal en el
microcontrolador y por la fase de potencia

Figura 13. Circuito de potencia en donde se inyecta la


seal proveniente del microcontrolador y la salida fluye
a travs del cayman verde.

Experimento 3.- Semforo de temperatura


Planteamiento: Desarrollar un semforo de seguridad con un sensor de
temperatura. Constar de tres leds (verde, amarillo y rojo) los cuales se
encendern conforme a la siguiente tabla:
Temperatura
[centgrados]

Color

0-20

Verde

20-30

Amarillo

>30

Rojo

Diagrama de flujo

Figura 14.
Diagrama de flujo del programa del
experimento 3 en donde desataca el procesamiento del
valor de conversin en 3 comparadores.

CDIGO
//PILA
ldi r16,low(ramend)
out spl,r16
ldi r16, high(ramend)
out sph,r16
//PUERTOS
LDI R16,0xFF
OUT DDRB,R16
//ADC
LDI R16, 0x40
STS ADMUX,R16
LDI R16, 0x84
STS ADCSRA,R16

La configuracin de los puertos fue la misma que en


las ocaciones anteriores, utilizando el puerto B como
salida para mostrar la informacin en los 3 leds de
colores.
Para la configuracin del ADC se configuraron los
siguientes pines:

Para ADMUX:
REFS0: Para configurar AVCC como la entrada
del voltaje de referencia para efectuar la
conversin.
Se opt por dejar la configuracin para el canal
0, por lo que ningn otro bit de configuracin
tuvo que ser activado en ADMUX

Para ADCSRA:
ADEN: Para encender el perifrico.
ADPS2: Para configurar un pre escalamiento de 16

CICLO:
LDS R16, ADCSRA
ORI R16,(1<<6)
STS ADCSRA,R16
ESPERA:
LDS R16, ADCSRA
SBRS R16,4
JMP ESPERA
LDS R17,ADCL
LDS R18,ADCH

CPI R17,42
BRLO VERDE
CPI R17,63
BRSH ROJO
JMP AMARILLO
JMP CICLO
VERDE:
LDI R16,1
OUT PORTB,R16
JMP CICLO
AMARILLO:
LDI R16,2
OUT PORTB,R16
JMP CICLO
ROJO:
LDI R16,4
OUT PORTB,R16
JMP CICLO

Esta seccin pertenece al bucle principal de todo el


programa que se encarga de hacer las lecturas en el
canal 0 del perifrico del conversor analgico digital
del microcontrolador. Consta de un ciclo llamado
CICLO que inicia la conversin, espera mientras la
conversin es terminada evaluando la bandera de
conversin completa en el bit 4 de ADCSRA y
finalmente captura los valores de la conversin en los
registros de propsito general R17 y R18.

En esta seccin se hace la lgica de todo el


programa, en donde se evala y discrimina la
conversin digital capturada el bloque anterior.
Basicamente se trata de una secuencia de saltos en
donde el valor de la conversin tiene que embonar
en una sola subrutina que se encargar de prender el
led correspondiente.

Si es menor a 42 pasar a verde


Si es mayor a 63 pasar a rojo
Si no es ninguna de las anteriores pasa a
amarillo.

Los nmeros fueron seleccionados considerando que el LM35 proporciona


10mV por cada grado centgrado. De esta manera cada valor de conversin se
aproxima a los 5 mV. Es por eso que se consideran 2 constantes de conversin
por cada grado centgrado.

SIMULACIONES

Figura 15. Simulacin del circuito en donde se modela


un lm35 a 10 centgrados, prendiendo el led verde.

Figura 16. Simulacin del circuito en donde se modela


un lm35 a 22 centgrados, prendiendo el led amarillo.

Figura 17. Simulacin del circuito en donde se modela


un lm35 a 31 centgrados, prendiendo el led rojo.

RESULTADOS:

Figura 18. Muestra el circuito en donde se le aplica


calor al lm35 para que este modifique su temperatura y
poder explorar los 3 casos del experimento.

Figura 19. Muestra el circuito real, con la temperatura


pertinente al rango de valores para el primer led

Figura 20. Muestra el circuito real, con la temperatura


pertinente al rango de valores para el segundo led

Figura 21. Muestra el circuito real, con la temperatura


pertinente al rango de valores para el tercer led

CONCLUSIONES

El convertidor analgico digital es una herramienta indispensable para el


ingeniero moderno, pues es imperativo hacer el anlisis de seales no
solo digitales sino tambin analgicas, es por eso que la implementacin
de este perifrico favorece el desarrollo de proyectos ms integrales y
prototipos con mayor diversidad de componentes y modos de operacin.

El uso del ADC hace posible el anlisis de seales provenientes de casi


cualquier dispositivo de corriente directa, especialmente en sensores
como lo son los potencimetros, sensores de temperatura, sensores
resistivos, sensores de magnticos, etc. Es importante reconocer la
diversidad de aplicaciones posibles para este perifrico identificando la
multitud de seales procesables.

El ADC tiene un tiempo de conversin relativamente largo que siempre


debe de considerarse al momento de desarrollar un programa, pues
hacer caso omiso del tiempo de espera puede generar errores y un mal
funcionamiento del software desarrollado, es importante adems
conocer si cuantos bits deseamos de resolucin, las limitantes del
perifrico como la imposibilidad de evaluar voltajes superiores al de
referencia, etc.

El verdadero sentido del conversor Analgico-Digital est en la


interpretacin de su resultado y en la actividad subsecuente a la
conversin, es ah donde se encuentra la posibilidad de combinarlo con
otros perifricos como Timers, USART, I/Os, etc. En esta prctica el uso
del ADC se mostr a travs de estos perifricos que en conjunto hacen
buen equipo.