Informe_previo_micro5

11
1 Microcontroladores Universidad del Callao, 2013 MICROCONTROLADORES (Informe Previo del Laboratorio N°5) Control del modulo LCD Sistema de medicion de temperatura Entorno AVR Studio Integrantes: Adarleen Arevalo Valle 082661G Pascual Gerónimo Luigi 100749D Miguel Franco Cesar A. 082644E Iriarte Arevalo Cristian 080660C ---------------------------------------------------------------------- --------------------------------------------------------- OBJETIVOS: o controlar el modulo LCD o programar el lcd para mostrar mensaje o Programar voltímetro de 0a 5V o Programar sistema de medicino de temperatura o estructurar rutinas de trabajo Usando el ATMEGA8, el modulo LCD, se desea realizar mensajes en el módulo LCD, así mismo implementar un sistema de medición de temperatura 3. Material: o 1 Micro controladorATMEGA8 o 1 modulo LCD Hitachi HD44780 o compatible de 2x16 o 1 pushbuttons NA o Fuente realimentación 5V,1 amp o Sensor de temperatura NTC con una resistencia a 25ªC de 20Kohm y β=4050 o AVR STUDIO 6 o Programador o PC Parte I.- mostrar mensaje 1. .- Realizar el circuito que se indica Atmel

description

microcontroladores

Transcript of Informe_previo_micro5

Page 1: Informe_previo_micro5

1

Microcontroladores Universidad del Callao, 2013

MICROCONTROLADORES(Informe Previo del Laboratorio N°5)

Control del modulo LCDSistema de medicion de temperatura

Entorno AVR StudioIntegrantes:

Adarleen Arevalo Valle 082661G Pascual Gerónimo Luigi 100749D Miguel Franco Cesar A. 082644E Iriarte Arevalo Cristian 080660C

-------------------------------------------------------------------------------------------------------------------------------

OBJETIVOS:o controlar el modulo LCDo programar el lcd para mostrar mensajeo Programar voltímetro de 0a 5Vo Programar sistema de medicino de temperaturao estructurar rutinas de trabajo

Usando el ATMEGA8, el modulo LCD, se desea realizar mensajes en el módulo LCD, así mismo implementar un sistema de medición de temperatura

3. Material:o 1 Micro controladorATMEGA8o 1 modulo LCD Hitachi HD44780 o compatible de 2x16o 1 pushbuttons NAo Fuente realimentación 5V,1 ampo Sensor de temperatura NTC con una resistencia a 25ªC de 20Kohm y

β=4050o AVR STUDIO 6o Programadoro PC

Parte I.- mostrar mensaje

1. .- Realizar el circuito que se indica

Atmel

Page 2: Informe_previo_micro5

2

Microcontroladores Universidad del Callao, 2013

Figura Nº1 .- Circuito Base

2.- Realizar el programa para mostrar el mensaje que se muestra en la figura 1 mediante el entorno AVR STUDIO 63.- Comente cada instrucción del programa

#include "avr_compiler.h" //libreria para compilador#include "lcd.h" //libreria para lcd

int main(void){

lcd_init(); // Inicializar LCD

while(1){

lcd_gotorc(1,4); //Cursor 1,4lcd_puts("UNAC-FIEE"); //mensaje 1lcd_gotorc(2,3); //Cursor 2.3lcd_puts("MICRO-ATMEGA8"); //mensaje 2

}}

4.-Genere el archivo +.hex

5.- Realizar la simulación y luego las pruebas correspondientes

Figura Nº2.-Simulacion

Atmel

Page 3: Informe_previo_micro5

3

Microcontroladores Universidad del Callao, 2013

Figura Nº3.-Implementacion

Parte II – IMPLMENTACION DE VOLTIMERO DE 0V A 5V

2.1 implemente el circuito de la figura 2

Figura Nº4.-Circuito base

2.2.- Realizar el programa para mostrar el LCD:

o 1 FILA: VOLTAJE DIGITAL: ADC =…..o 2 FILA VOLTAJE EN DECIMAL: VOLTAJE=…..

2.3.- Comente cada instrucción del programa

#include "avr_compiler.h" //libreria para compilar#include "lcd.h" //libreria para lcd

void adc_setup(void); //funcion adcunsigned int adc_read(char channel); //funcion lectura ADC

int main()

Atmel

Page 4: Informe_previo_micro5

4

Microcontroladores Universidad del Callao, 2013

{char cadena[14],cadena2[14]; int n,vol1,vol2;float vol;lcd_init(); //inicializamos lcd

adc_setup(); //inicializamos adc

lcd_gotorc(1,1);lcd_puts("ADC :");lcd_gotorc(2,1);lcd_puts("Voltaje : ");

while(1) //bucle{

n = adc_read(0); //lectura ADCvol=n*5.0/1023;vol1=vol;vol2=(vol-vol1)*100;sprintf(cadena,"%0004u", n); //impresion primer datolcd_gotorc(1,11);lcd_puts(cadena);sprintf(cadena2,"%d.%02d V.", vol1, vol2); //impresion segundo datolcd_gotorc(2,11);lcd_puts(cadena2);}

}

//****************************************************************************// Configurar el conversor ADC//****************************************************************************void adc_setup(void){ // Vref+ y Vref- = VCC y GND // Justificación de resultado = Derecha

ADMUX = 0x40;

// Reloj de ADC = F_CPU/64 = 125kHz // Estado del conversor = Habilitado // Modo de conversión = Manual ADCSRA = 0x86;}

//****************************************************************************// Lee el canal 'channel' del conversor ADC//****************************************************************************unsigned int adc_read(char channel){ ADMUX &= 0xF8; // ADMUX |= channel; // Seleccionar canal ADCSRA |= (1<<ADSC); // Iniciar conversión while(ADCSRA & (1<<ADSC)); // Esperar a que termine la conversión return ADC; // Retornar resultado de conversión}

Atmel

Page 5: Informe_previo_micro5

5

Microcontroladores Universidad del Callao, 2013

2.4.-Genere el archivo +.hex

2.5.- Realizar la simulación y luego las pruebas correspondientes

Figura Nº5.-Simulacion

Figura Nº6.-ImplementacionPARTE III SISTEMA DE MEDICION DE TEMPERATURA

Se utiliza un NTC con un β=4050 con resistencia a 25ªC de 20Kohm

Atmel

Page 6: Informe_previo_micro5

6

Microcontroladores Universidad del Callao, 2013

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)

3.1 CIRCUITO EXPERIMENTAL

Figura Nº7.-Circuito Base

3.2.- Realizar el programa para mostrar el LCD:

o 1 FILA: MENSAJE = TEMPERATURAo 2 FILA TEMPERATURA = T=….º C.

3.3.- Comente cada instrucción del programa

#include "avr_compiler.h"#include "lcd.h"#include <math.h>

#define logf log#define grado 0x00 //definimos caractes

PROGMEM const char Pattern1[] = {0x00,0x1C,0x14,0x1C,0x00,0x00,0x00,0x00};//caracter

void create_char(unsigned char a, PGM_P p)//funcion para generar caracter º{

unsigned char i;

Atmel

Page 7: Informe_previo_micro5

7

Microcontroladores Universidad del Callao, 2013

lcd_cmd(LCD_CGRAM + a); // Instrucción Set CGRAM Addressfor (i=0; i<8; i++)lcd_data(pgm_read_byte(p+i));

}

void adc_setup(void); //funcion setup ADCunsigned int adc_read(char channel); //funcion lectura ADC

int main() //funcion principal{ char cadena[10]; char c=0; //seleccion de canal

float n=0;float Vin = 5.0; float Rfija = 10000; float R25 = 10000; float Beta = 4050.0; float T0 = 293.15;

float Vout = 0.0; float Rntc = 0.0;

float TempK = 0.0; float TempC = 0.0; lcd_init(); //inicializar lcd

adc_setup(); //inicializar adc

create_char(grado*8, Pattern1); //llamamos a funcion caracter

lcd_gotorc(1,1);lcd_puts("TEMPERATURA-UNAC");

while(1){n = adc_read(c);

//Primero la Vout del divisorVout=(Vin/1024)*(n);

//Ahora la resistencia de la NTCRntc=(Vout*Rfija)/(Vin-Vout);

//Y por último la temperatura en KelvinTempK = Beta/(log(Rntc/R25)+(Beta/T0));

//Y ahora la pasamos a celsiusTempC = TempK-273.15;

sprintf(cadena,"T = %0.0f",TempC); //impresion tempClcd_gotorc(2,4);lcd_puts(cadena);lcd_gotorc(2,11);lcd_data(grado);lcd_gotorc(2,12);lcd_puts("C.");

Atmel

Page 8: Informe_previo_micro5

8

Microcontroladores Universidad del Callao, 2013

}}

//****************************************************************************// Configurar el conversor ADC//****************************************************************************void adc_setup(void){ // Vref+ y Vref- = VCC y GND // Justificación de resultado = Derecha

ADMUX = 0x40;

// Reloj de ADC = F_CPU/64 = 125kHz // Estado del conversor = Habilitado // Modo de conversión = Manual ADCSRA = 0x86;}

//****************************************************************************// Lee el canal 'channel' del conversor ADC//****************************************************************************unsigned int adc_read(char channel){ ADMUX &= 0xF8; // ADMUX |= channel; // Seleccionar canal ADCSRA |= (1<<ADSC); // Iniciar conversión while(ADCSRA & (1<<ADSC)); // Esperar a que termine la conversión return ADC; // Retornar resultado de conversión}

3.4.- Genere el archivo +.hex

3.5.- Realizar la simulación y luego las pruebas correspondientes

Atmel

Page 9: Informe_previo_micro5

9

Microcontroladores Universidad del Callao, 2013

Figura Nº8.-Simulacion

Figura Nº9.-Implementacion

4.- Diga cinco aplicaciones de este sistema de medición

o Termometro digitalo Sensor para control de temperatura de fuenteso Voltimetro digital implementado en fuenteso Control de dispositivos mediante ADCo Sistema de enfriamiento de motores con control de temperatura

5.- DIGA SUS CONCLUSIONES

Las multiples practicas para poder programar un Atmegaxx8 usando el conversor ADC nos muestra la gran utilidad que puede tener , ya que las señales analogas estan presentes en cualquier dispositivo como sensores de temperatura , acelerometros, potenciometros , etc.

Atmel