LABORATORIO NRO.05 SISTEMA DE MEDICIÓN DE TEMPERATURA OBJETIVOS:
controlar el modulo LCD
programar el lcd para mostrar mensaje
Programar voltímetro de 0a 5V
Programar sistema de medicino de temperatura
estructurar rutinas de trabajo
Usando el ATMEGA8, el modulo LCD, se desea realizar mensajes en el modulo LCD, así mismo implementar un sistema de medición de temperatur : 2. Material: 1 Micro controladorATMEGA8
1 modulo LCD Hitachi HD44780 o compatible de 2x16
1 pushbuttons NA
Fuente realimentación 5V,1 amp
Sensor de temperatura NTC con una resistencia a 25ªC de 20Kohm y
β=4050
AVR STUDIO 6
Programador
PC
PROCEDIMIENTO Parte I.- mostrar mensaje 1. .- Realizar Realizar el circuito que que se indica
2.- Realizar el programa para mostrar el mensaje que se muestra en la figura1 Mediante el entorno AVR STUDIO 6. 3.- Comente cada instrucción del programa 4.-Genere el archivo +.hex 5.- Realizar la simulación y luego las pruebas correspondientes Parte II – IMPLMENTACION DE VOLTIMERO DE 0V A 5V
2.1 implemente el circuito de la figura 02
2.2.- Realizar el programa para mostrar el LCD:
1 FILA: VOLTAJE DIGITAL: ADC =…..
2 FILA VOLTAJE EN DECIMAL: VOLTAJE=…..
2.3.- Comente cada instrucción del programa 2.4.-Genere el archivo +.hex 2.5.- Realizar la simulación y luego las pruebas correspondientes PARTE III SISTEMA DE MEDICION DE TEMPERATURA
Se utiliza un NTC con un β=4050 con resistencia a 25ªC de 20Kohm Nota:
La NTC se linealita mediante una resistencia R1 de 10Kohm. El valor de la tensión
de la NTC (Vt) se obtiene según las ecuaciones que se muestra ( temperatura en grados Kelvin).
SOLUCION PROBLEMA 1 CODIGO COMENTADO: /* * GccApplication1.c * * Created: 09/02/2014 11:41:47 a.m. * Author: Jose */ #include
#include "lcd.h" void delay_ms(unsigned int t) { while(t--) delay_us(1000); } int main(void) { lcd_init(); // Inicializar LCD while(1) { lcd_gotorc(1,5); // Cursor a fila 1 posición 7 lcd_puts("UNAC-FIEE"); // Escribir la palabra UNAC-FIEE lcd_gotorc(2,3); // Cursor a fila 1 posición 7 lcd_puts("MICRO-ATMEGA8"); // Escribir MICRO-ATMEGA8 delay_ms(600); // Pausa de 600 ms lcd_clear(); // Limpiar pantalla delay_ms(400); } }
CIRCUITO EN PROTEUS:
DIAGRAMA DE FLUJO:
INICIO
CONFIGURACION DE PUERTO E/S
INICIALIZACION DE LCD
Mostramos palabra UNAC-FIEE MICRO-ATMEGA8
Delay de 600ms Para mostrar
SOLUCION PROBLEMA 2 CODIGO COMENTADO: int main(void) { int adc_vol; DDRD=0xff; double adc; DDRC = DDRC|0b00000110; DDRC=0b00000110; lcd_init(); lcd_clear(); while(1) { lcd_gotorc(1,1); lcd_puts("Temperatura"); lcd_gotorc(2,1); lcd_puts("T = "); ADCSRA=0b10000000; // activamos el ADC ADMUX=0b0110000; //voltaje de referencia AVCC y con 8 bits(ajustado a la izquierda) ADCSRA|=(1<
// configuracion de ad, inicializacion
y conversion while(!(ADCSRA&(1<
Temperatura a 40°c
Temperatura mínima a 0°c
DIAGRAMA DE FLUJO:
INICIO
CONFIGURACION DE PUERTO E/S
CONFIGURACION DE LCD
INICIALIZACION DE LCD Y CONVERSION
MOSTRAMOS EN LCD LAS PALABRAS TEMPERATURA:….°C
SOLUCION PROBLEMA 3 CODIGO COMENTADO: */ #include #include #include #include
"avr_compiler.h" "lcd.h"
int main (void) { lcd_init(); lcd_clear(); while(1){ ADCSRA = 0x80; //Configurar el registro ADCSRA ADMUX = 0x22; //Configurar el registro ADMUX ADCSRA|=_BV(ADSC); //Activar el bit ADSC del registro ADCSRA inicio de conversión int b=ADCH*19.61; int c=b/1000; int d=b%1000; lcd_gotorc(1,1); // Cursor a fila 1 posición 1 char buf[30]; sprintf (buf,"ADC= %03d",ADCH); lcd_puts(buf); lcd_gotorc(2,1); // Cursor a la fila 2 posicion 1 char buf1[4]; sprintf (buf1,"Voltaje= %d",c); lcd_puts(buf1) ; sprintf (buf1,",%03d",d); lcd_puts(buf1) ; lcd_puts("V"); } } CIRCUITO EN PROTEUS:
DIAGRAMA DE FLUJO:
INICIO
CONFIGURACION DE PUERTO E/S
CONFIGURACION DE LCD
INICIALIZACION DE LCD Y CONVERSION
MOSTRAMOS EN LCD el VOLTAJE QUE SE MUESTRA EN EL VOLTIMETRO
CONCLUSIONES: Los conversores ADC y DAC son necesarios porque muchas señales generadas en el mundo real son analógicas pero su tratamiento electrónico debe hacerse de manera digital, en esta práctica vimos el funcionamiento de la red R-2R para convertir números binarios a un equivalente analógico y se comprobó la resolución del conversor.