Baixe o app para aproveitar ainda mais
Prévia do material em texto
CENTRO UNIVERSITÁRIO RADIAL Sistemas a Microprocessadores PESQUISA DO PROJETO PIC 16F818 e LM35 Prof. Sidnei Ravoni ENGENHARIA ELÉTRICA P9 JOÃO MARCOS NASCIMENTO Matrícula: 201002255589 TERMÔMETRO DIGITAL COM PIC 16F818 e LM35 Introdução Neste trabalho vou descrever a construção de um dispositivo eletrônico para medir a temperatura ambiente, que é informada ao usuário por meio de um display de LED's do tipo 7-segmentos. Este projeto consiste de duas partes: hardware (menor complexidade) e software (maior complexidade). Na primeira descrevo o conceito, o funcionamento e a montagem do dispositivo. Na segunda faço o mesmo para o firmware (programa) que irá executar dentro do dispositivo. A principal vantagem da abordagem adotada neste projeto é o número reduzido de componentes utilizados na construção. Embora existam chips dedicados a esta tarefa, estes podem não ser muito facilmente encontrados e não podem ser modificados ou adaptados a uma utilização em particular. Além disso, a construção com PIC é bastante didática. Todos os arquivos necessários para realizar a construção e a programação, incluindo o esquema elétrico e o código fonte em assembler, podem ser encontrados neste arquivo compactado. Hardware O componente escolhido para ser o coração deste projeto foi o PIC16F818, que em seus 18 pinos apresenta uma quantidade suficiente de entradas e saídas (16), possui conversor A/D integrado, oscilador interno de 8MHz, pode armazenar até 1K palavras de programa, 128 bytes de RAM e 128 de EEPROM, bem mais do que o necessário para esta aplicação. Esse componente apresenta ainda outros recursos bem convenientes, como um módulo para comunicação serial síncrona e outro para PWM. Em outro projeto, utilizei o módulo de comunicação serial para implementar um bus I2C para que um componente mestre controle outros componentes escravos. O PIC16F818 é compatível pino-a-pino com seu ancestral direto, o popular PIC16F84, mas é muito mais versátil do que este. Dentre todos os tipos de sensores de temperatura, por causa do baixo preço, estabilidade, precisão e facilidade de uso, o LM35 foi escolhido. Este componente é um circuito integrado dotado de um sensor de temperatura e circuitos de compensação térmica e de potência, apresentando a temperatura medida como voltagem com resolução de 10mV de por grau Celsius. Protótipo montado em proto-board: Protótipo auto-iluminado: Versão final e sua caixa: Versão final, em seu local definitivo: Esquema elétrico: Versão em PDF. Arquivo fonte para o GEDA : Termometro.sch Arquivo de símbolos descrevendo o componente PIC16F818: pic16F818-1. sym Software O firmware para o termômetro foi escrito em linguagem assembly para PIC em PC/Linux usando as ferramentas de código aberto piklab e gputils. Os repositórios de algumas distros já vêm com esses pacotes, mas normalmente eles não são instalados por padrão. Apesar disso foi muito fácil instalá-los em meu Fedora usando yum: [waldeck@halpic]$ yum -y install piklab gputils O screenshot abaixo mostra o ambiente de desenvolvimento integrado do piklab, com um excerto do código fonte do termômetro visível na janela de editoração. Com o piklab é possível organizar os arquivos contendo o código fonte em um mesmo diretório, e incluí-los em um arquivo de projeto, que contém também detalhes e configurações sobre o hardware onde o programa irá executar. Após compilar o código fonte, pode-se transferir o executável para a memória flash do chip com apenas um clique do mouse. O software é responsável por fazer leituras digitais periódicas do sinal analógico fornecido pelo LM35, converter essa informação em uma temperatura segundo a escala Celsius, converter esse número de binário para decimal, exibir a temperatura no visor, memorizar na EEPROM as temperaturas mínimas e máximas observadas e responder à pressão de um botão. O software também permite exibir a temperatura em Fahrenheit, se desejado. Para algumas dessas conversões, foi necessário implementar rotinas de multiplicação e divisão eficientes, já que estas operações não estão presentes no hardware.
Compartilhar