Sie sind auf Seite 1von 7

INSTITUTO FEDERAL DE EDUCAO, CINCIA E TECNOLOGIA DO MARANHO CAMPUS MONTE CASTELO ENGENHARIA ELTRICA INDUSTRIAL EE1 ARQUITETURA DE SISTEMAS

S DIGITAIS

Data: 20/05/2011

CONVERSOR ANALGICO-DIGITAL Voltmetro Carlos Henrique Lima Veloso EE 1011003-21 Paulo Batalha Sobrinho EE 0821019-21 Thawan Mariano Marinho EE 0821023-21

Trabalho apresentado disciplina de Arquitetura de Sistemas digitais, do curso de Engenharia Eltrica Industrial, para obteno da nota referente ao projeto prtico da segunda avaliao.

SO LUIS-MA

2011 SUMRIO

1. Introduo

2. Objetivos

3. Desenvolvimento terico 3.1. Conversor analgico-digital 3.2. Divisores de tenso 3.3. Introduo a Programao de Microcontroladores 3.4. PIC 18F452 3.5. Placa Exsto NEO201 4. Materiais utilizados

5. Desenvolvimento prtico

6. Anlise de resultados

7. Concluso

Bibliografia

1. Introduo

2. Objetivos Projetar, simular e construir qualquer circuito pratico que contenha um conversor analgico-digital. 2.1. Objetivo especfico Projetar, simular e construir um voltmetro digital, utilizando o PIC 18F452 como principal componente ativo no circuito. 3. Desenvolvimento terico 3.1. Conversor analgico-digital Um conversor analgico digital um dispositivo capaz de converter grandezas analgicas em grandezas digitais. Esta converso se da atravs de comparaes que so feitas dentro do prprio dispositivo dessa forma: o dispositivo possui um valor de referencia de tenso que deve ser fixado, este ser o maior valor que o dispositivo consegue ler. Dependendo do numero de bits esse pode ser mais ou menos preciso, quanto mais bits mais preciso ele ser. O Valor de fundo de escala ser dividido 3.2. Divisores de tenso 3.3. Introduo a programao de microcontroladores 3.4. PIC 18f452 3.5. Placa Exsto NEO201 4. Materiais utilizados Placa de exsto NEO201; Programa CCSC; Programa gravador SDE; Programa ISIS Proteus; 5. Desenvolvimento prtico Para a execuo do projeto, foi feita um algoritmo especfico e depois gravado no PIC. Como o PIC j tem um conversor internamente a ele, s foi necessrio configurar, no algoritmo, os 3 dados desejados de sada.

/*=================================================================== Exsto Tecnologia - Neo 201 Programa desenvolvido atraves de adaptaes dos codigos presentes no cd "NEO201" cedido pela Exsto ====================================================================*/ // *** Definies do Microcontrolador *** #include <18F452.H> // arquivo de definies do microcontrolador usado #include<regs_18fxx2.h> #device adc=10 #fuses HS,NOWDT,PUT,NOBROWNOUT,NOLVP // bits de configurao //---------------------------------------------------------------------------------------------------------// *** Configuraes do Projeto *** #use delay(clock=8000000) // informa ao sistema o frequncia de clock, para temporizao //--------------------------------------------------------------------------------------------------------// *** Definies de Hardware *** #bit RS = PORTE.0 #bit EN = PORTE.1 #bit RW = PORTE.2 #byte DISPLAY = PORTD #include <lcd8.h> /*================================================================*/ // *** Programa principal *** int16 q1; // Declarao de variaveis float x; // Declarao de variaveis int16 t; // Declarao de variaveis void main () { LATA = 0X00; LATB = 0X00; LATC = 0X00; LATD = 0X00; LATE = 0X00; set_tris_d(0x00); //Configurao de Saida das portas set_tris_e(0x00); //Configurao de Saida das portas set_tris_c(0x00); //Configurao de Saida das portas setup_adc_ports(AN0_AN1_AN3); //Configurao de uso dos pinos do ADC setup_adc(ADC_CLOCK_INTERNAL); //Configurao do Clock do ADC set_adc_channel(0); //Habilitao canal 0 delay_us(30); // Espera 30 uS lcd_init(); // Funo lcd_init da biblioteca lcd8.h t = 0; //carga de t com 0; while(true){ //loop infinito q1 = read_adc(); //Leitura canal do ADC x = q1 * 0.0048828125; //multiplicao do valor lido pelo valor de tensao correspondente a resoluo. x = x * 3.995; //fator de correo da entrada t++; //incremento de t; 4

if (t == 50){ //quando t chega a 50 inicio do if lcd_comando2(0x01); // comando para limpar a tela do lcd t = 0; // recarga de t com 0 } lcd_comando(0x80); //localiza o curso na primeira linha na primeira coluna printf(lcd_dado,"Tensao:%f", x); //carrega na funo lcd_dado a string "Tensao:%f" e a variavel x. lcd_dado("V"); //imprime na tela o caracter V if (x >= 16 & x < 19) // se x>=16 e x<19 { lcd_comando(0xC0); //desce o cursor para a segunda linha lcd_dado("Perigo"); // imprime "perigo" } if (x >= 19){ // se x>=19 inicio do if lcd_comando(0xC0); //desce o cursor para a segunda linha lcd_dado("Att. Fim Escala"); // imprime "Att. Fim Escala" //o codigo abaixo aciona o buzzer, reforando o aviso de fim de escala. output_high(PIN_C2); //eleva a saida pin_c2 para 1. delay_us(1); //espera 1uS output_low(PIN_C2); //abaixa a saida pin_c2 para 0. delay_us(1); // espera uS micro segundo output_high(PIN_C2); //eleva a saida pin_c2 para 1. delay_us(1); //espera 1uS output_low(PIN_C2); //abaixa a saida pin_c2 para 0. } } } Como o circuito de queda de tenso prov uma queda de cerca de 4,005 vezes a tenso original, foi necessrio fazer essa compensao, multiplicando o valor da sada dos dados por 4,005 no algoritmo.

O circuito da queda de tenso foi feito com um resistor de aproximadamente 3k e outro de 1k ligados em srie e finalizando o circuito no terra. Aplicada uma tenso no incio do circuito, a tenso encontrada aps o primeiro resistor (de 3k) aproximadamente 4 vezes menos do que a tenso aplicada no incio do circuito. Foi utilizado para gerar a freqncia necessria para o PIC, um cristal de 8MHz, ligados a dois capacitores de 33 pF aterrados. O cristal foi ligado nos pinos e e gerou o sinal de freqncia para o PIC desses pinos. O primeiro pino do PIC tem a funo de clear, apagar as informaes, que uma interrupo de prioridade mxima. Quando ligado ao nvel lgico baixo, as informaes so apagadas. Esse pino foi conectado a uma chave na placa, que fica em nvel lgico baixo quando pressionada. O display LCD nada mais que uma memria grfica, e tal como uma memria ela deve ser configurada atravs de comandos antes mesmo da insero dos dados desejados. 6. Anlise de resultados (Comentar os resultados obtidos experimentalmente).

7. Concluso

Bibliografia

Das könnte Ihnen auch gefallen