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

Anuncio
F. Hugo Ramírez Leyva
Microcontroladores
Convertidor ADC
Práctica No. 4 del Curso "Microcontroladores"
Uso del Convertidor ADC
Objetivos
Caracterizar el convertidor ADC del Microcontrolador MSP430 y con base en él
realizar algunas aplicaciones para la medición y control de la temperatura.
Material
•
•
•
•
•
Sensor de temperatura LM35 y/o LM335
Relevador de con voltaje de activación de 5V, 9 o 12V
Transistor BC547
Resistencias
MSP430 Launchpad
Planteamiento
El MSP430 internamente posee un convertidor analógico digital (ADC) de 10
bits. Con él se puede digitalizar una señal analógica en el rango del voltaje de
alimentación o menor. Internamente posee una referencia de voltaje que también
puede ser usada, así como un sensor de temperatura. La máxima frecuencia de
conversión es de 200 kmuestras/seg.
El MSP430G2553 que es el microprocesador que posee el Launchpad, tiene 8
entradas externas al ADC, del A0 al A7 (terminales 2, 3, 4, 5, 6, 7, 14 y 15), que se
configuran con sus registros de control. También internamente tiene un convertidor
analógico digital, en la tabla 1 se muestra el código que programa que configura al
convertidor con una frecuencia de muestreo de 1 muestra por segundo de la señal que
convierte la temperatura del sensor interno (entrada 10), el voltaje de referencia es de
2.5V.
Tabla 1 Código del programa que usa al sensor interno
#include "msp430g2553.h"
#ifndef TIMER0_A1_VECTOR
#define TIMER0_A1_VECTOR TIMERA1_VECTOR
#define TIMER0_A0_VECTOR TIMERA0_VECTOR
#endif
volatile long tempRaw;
void FaultRoutine(void);
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
1
F. Hugo Ramírez Leyva
Microcontroladores
Convertidor ADC
P1DIR = 0x41; // P1.0&6 outputs
P1OUT = 0; // LEDs off
if (CALBC1_1MHZ ==0xFF || CALDCO_1MHZ == 0xFF)
FaultRoutine(); // If cal data is erased
// run FaultRoutine()
BCSCTL1 = CALBC1_1MHZ; // Set range
DCOCTL = CALDCO_1MHZ; // Set DCO step + modulation
BCSCTL3 |= LFXT1S_2; // LFXT1 = VLO
IFG1 &= ~OFIFG; // Clear OSCFault flag
BCSCTL2 |= SELM_0 + DIVM_3 + DIVS_3; // MCLK = DCO/8
while(1)
{
ADC10CTL1 = INCH_1 + ADC10DIV_0; // Temp Sensor ADC10CLK
ADC10CTL0 = SREF_1 + ADC10SHT_3 + REFON + ADC10ON;
_delay_cycles(5); // Wait for ADC Ref to settle
ADC10CTL0 |= ENC + ADC10SC; // Sampling & conversion start
P1OUT = 0x40; // green LED on
_delay_cycles(100);
ADC10CTL0 &= ~ENC;
ADC10CTL0 &= ~(REFON + ADC10ON);
tempRaw = ADC10MEM;
P1OUT = 0; // green LED off
_delay_cycles(125000);
}
}
void FaultRoutine(void)
{
P1OUT = 0x01; // red LED on
while(1); // TRAP
}
Par la medición de temperatura existen varios tipos de sensores para realizarlos
como son termopares, RTD, o sensores de semiconductor, estos últimos son más
baratos y fáciles de usar. El circuito LM35, es un circuito diodo Zener cuyo voltaje de
salida es proporcional a la temperatura que detecta, teniendo un voltaje de 10mV/°C,
de tal manera que si la temperatura es de 0°C el vo ltaje a la salida es de 0V. Si la
temperatura es de 100°C, el voltaje es de 1V. En la figura 1 se muestra el diagrama de
conexiones y como se monta en un protoboard. El sensor de temperatura LM335 es
similar al anterior, la diferencia es su voltaje de salida es de 10mV/°K, por lo que a 0°C
(273 °k) se tiene un voltaje de 2.73V
2
F. Hugo Ramírez Leyva
Microcontroladores
(a)
Convertidor ADC
(b)
Figura 1. (a) Diagrama de conexiones. (b) Conexiones en el protoboard
Una incubadora es un recinto en el cual la temperatura se mantiene constante
en cierto rango y es utilizada para incubar huevos de aves. Con la presente práctica se
pretende realizar la circuitería necesaria para controlar la temperatura en cierto rango
usando el Microcontrolador MSP430, con el fin de demostrar la factibilidad de realizar
un control con los conocimientos vistos en clase.
En la figura 1 se muestra el diagrama a bloques del control de la incubadora, el cual
utiliza el sensor de temperatura LM335 para tener un voltaje en función de la
temperatura, y un foco de 60 Watts como elemento de calefacción. Los bloques que
componen al control de la incubadora son:
•
•
•
•
•
•
Temperatura deseada. Es un registro dentro del MSP430 que determina la
temperatura deseada.
Temperatura medida. Es la temperatura que se mide con el sensor de
temperatura interno o externo al MSP430.
Sensor de temperatura LM335. Proporciona un voltaje proporcional a la
temperatura de la incubadora.
Comparador de Histéresis. Cuando la temperatura es mayor a 35 ºC se apaga el
foco, cuando ésta es menor a 30 ºC enciende el foco
Control de encendido. Activa o desactiva al foco con base en la salida del
comparador de histéresis, lo más sencillo es usar un relevador, si se usa un triac
es un poco más complejo
Calefactor. Es un foco el cual con el calor que genera se incrementa la
temperatura en la incubadora.
3
F. Hugo Ramírez Leyva
Microcontroladores
Convertidor ADC
Figura 2. Diagrama a bloques de la incubadora
El control de encendido se utilizara un foco de 60 Watts, el cual se alimenta con
voltaje de corriente alterna. Como el circuito de control funciona con fuentes de voltaje
de +12V, es necesario utilizar un relevado de DC para controlar el encendido del foco, y
aislar eléctricamente la parte de potencia de los circuitos de control. En la figura 6 se
muestra el diagrama esquemático del circuito de control del relevador. Cuando la salida
digital es 1 el transistor se polariza directamente y funciona como interruptor, haciendo
circula corriente por la bobina del relevador, lo cual hace que se conmute el relevador,
y con ello se cierre el circuito de AC activando el foco. Cuando el voltaje de salida es 0
el transistor no conduce y no se activa el relevador.
Procedimiento.
1. Realzar el programa para el Microcontrolador MSP430 que lea una entrada
analógica A4 (pin 6). Configura el convertidor analógico digital (ADC) con de una
sola medición con dentro de un ciclo for o while infinito, con un rango de 0 a
Vref=1.5V, y que almacene el valor digitalizado en una variable. Con una fuente
de voltaje externo, aplicarle voltaje a esta entrada y ver qué valor digitalizado se
obtiene. Capturar las mediciones en la tabla 1. Repetir las mismas mediciones
con el voltaje Vref=Vcc. ¡Tener cuidado en no aumentar el voltaje mas al
de alimentación del Launchpad, ya que lo pueden dañar!.
4
F. Hugo Ramírez Leyva
2.
Voltaje de la
fuente (V)
Microcontroladores
Convertidor ADC
3. Figura 3. Control de encendido del foco
Tabla 2. Caracterización del convertidor ADC
Dato Medido del
Dato del ADC
Dato Medido del
ADC Decimal
teórico
ADC Decimal
Vref=1.5V
Vref=1.5V
Vref=Vcc
Dato del
ADC teórico
Vref=Vcc
0.00
0.25
0.50
1.00
1.25
1.50
1.75
2.00
2.25
2.50
2.75
3.00
3.25
3.50
4. Armar el circuito de la figura 3 en un protoboard, verificar que cuando se le envía
un 0 lógico al resistor R4 el relevador debe estar apagado, cuando se le pone en
1 lógico el relevador se enciende y con ello el foco. ¡Tener cuidado con la
5
F. Hugo Ramírez Leyva
Microcontroladores
Convertidor ADC
corriente alterna, ya que les puede dar toques o si hace contacto con
el Launchpad lo pueden dañar!
5. Una vez que funcione el paso 2 hacer un programa para el MSP430 para que
encienda al foco durante 10 segundos y lo apague durante 10segundos.
6. Ya que se completen los pasos 1 al 3, hacer un programa en el MSP430 que
cuando la temperatura actual sea mayor a 35ºC encienda al foco, cuando ésta
sea mayor a 30 ºC apague al foco y lo vuelva a encender una vez que la
temperatura sea mayor a 35 ºC. Hacer las conexiones y montar el sensor y el
foco dentro de una caja para que se vea el efecto más rápido.
Reporte
El reporte se va a entregar en 1 semanas después de concluida la práctica. No
se les olvide incluir, la introducción, el procedimiento, resultado, conclusiones y
bibliografía en el formato especificado.
Referencias.
[URL1]
Sensor LM35, http://www.agspecinfo.com/pdfs/L/LM335Z.PDF
Fecha del último acceso 14 de noviembre de 2012.
6
F. Hugo Ramírez Leyva
Microcontroladores
Convertidor ADC
7
Descargar