You are on page 1of 15

Conversor

Analógico para Digital - AD

PIC16F877A

PROF.: DR. ALBERTO WILLIAN MASCARENHAS


Analogico para Digital - AD

 Vivemos em um mundo analógico. Tudo à nossa volta é analógico. Todas as


sensações que podemos experimentar são analógicas (audição, visão, olfato,
paladar, tato, etc). E ainda todas as grandezas físicas que se fazem por vezes
necessárias determinar, também são analógicas (tensão, corrente, temperatura,
pressão, etc).
 Porém os sistemas informatizados atuais como computadores,
microprocessadores, microcontroladores e outros microsistemas no geral são
digitais. Para coletar dados do mundo externo com estes sistemas, é preciso
conhecer e compreender melhor o funcionamento dos conversores analógicos
(ADCs).
 Estes conversores transformam um sinal analógico qualquer em um sinal digital
discreto, passivo de ser “processado” pelos computadores e microsistemas
digitais atuais.
Analogico para Digital - AD

 Para converter um sinal analógico qualquer, o conversor faz algumas


amostragens e depois representa a leitura realizada através de um valor
equivalente binário (digital), de acordo com a sua precisão. E esta é
determinada pelo número de bits que um ADC pode usar em sua escala de
conversão. Sendo assim, quanto maior o número de bits dentro da escala de
conversão, maior será a precisão do conversor.
 Um conversor ADC com 8 bits pode retornar valores dentro da faixa de 00H a FFH
(0 a 255) e um ADC com 10 bits retornará valores de 0000H a 03FFH (0 a 1023).
Analogico para Digital - AD

Para um mesmo valor de entrada, poderemos ter resoluções diferentes. Quanto


menor o valor retornado em nossa resolução, maior será a precisão da medida
realizada. A resolução é dada pela fórmula,

𝑉𝑅𝐸𝐹
𝑟𝑒𝑠𝑜𝑙𝑢çã𝑜 =
2𝑛

onde:
𝑉𝑅𝐸𝐹 = tensão de entrada no conversor
𝑛 = número de bits do conversor (quantidades de bits que compõe um degrau)
Para exemplificar ainda mais, na tabela abaixo você tem o comparativo do valor da
resolução para uma conversão do valor de 5 Volts com ADC’s de 8 e 10 bits.
Analogico para Digital - AD
Analogico para Digital - AD
Analogico para Digital - AD
ADC de 8 bits ADC de 10 bits
Valor a ser convertido = 5V Valor a ser convertido = 5V

Resolução = Entrada / 28 - 1 = 5V / 256 - 1 = 0,0196 V Resolução = Entrada / 210 - 1 = 5V / 1024 - 1 = 0,00488 V

Resolução = 19,6 mV Resolução = 4,88 mV

Vamos a um exemplo bem simples. Digamos que durante uma experiência qualquer, com
dois conversores ADC diferentes, um com 8 e outro com 10 bits de precisão, medindo uma
tensão com 3,41VDC obtivemos os seguintes resultados:

ADC 8 bits => 10101101 binário = 173 decimal


ADC 10 bits => 1010111010 binário = 698 decimal
Analogico para Digital - AD
Alguns microcontroladores PIC possuem conversores ADC internos, outros não. É preciso selecionar um que
possua conversor ADC interno para poder utilizá-lo. Vamos selecionar o PIC16F877 apenas para fins de
exemplo. O conversor ADC deste microcontrolador possui a seguintes características:

 Pode trabalhar com 8 ou 10 bits de precisão;


 Possui 8 canais para conversão;
 Quatro tipos de referência: VDD ou VSS (interna), VREF+ ou VREF- (externa);
 Frequência de conversão baseada no clock interno do microcontrolador ou através de cristal externo (pode
operar no modo sleep);
 Três divisores para a frequência (clock interno da máquina);
 Dois tipos de justificação do resultado: direita e esquerda;
 Uma interrupção para avisar sobre o término da conversão.

Apesar do modelo possuir 8 canais para conversão, ele só possui um único conversor. Os canais são na verdade
entradas ligadas através de uma “chave” que pode ser selecionada internamente através do programa. Assim,
apenas uma única conversão pode ser feita por vez.
Analogico para Digital - AD
TENSÂO DE REFERÊNCIA
O valor apresentado pelo ADC leva em conta, sempre, a referência selecionada. Ou seja,
quando a referência VREF+ selecionada for VDD, por exemplo, a conversão máxima 5VDC
será representada pelo valor 1024.
Porém se você optar por utilizar os pinos RA3 e/ou RA2 como entrada para diferentes
tensões de referência, a máxima conversão retornada como 1024 terá exatamente o valor
inserido no pino RA3 ou ainda a diferença entre RA3 e RA2, caso VREF- tenha sido
selecionado também. De qualquer maneira, é necessário observar os valores máximos e
mínimos para trabalhar com tensões de referência externas no PIC.

Referência Valor Mínimo (V) Valor Máximo (V)


VREF+ VDD – 2,5 VDD + 0,3

VREF- VSS – 0,3 VREF+ + 2,0


(VREF+ - VREF-) 2,0 VDD + 0,3
Analogico para Digital - AD
VELOCIDADE DE AMOSTRAGEM E SELEÇÃO DO TAD

Um outro detalhe muito importante sobre o conversor analógico interno do PIC diz respeito a sua
velocidade. Toda amostragem feita é realizada pelo processo Sample and Hold (amostra e congela).
O conversor possui um capacitor interno (120 pF) que é ligado ao canal analógico selecionado
durante a amostragem do sinal. Assim, ele é carregado com a tensão presente na entrada. Quando um
processo de conversão tem inicio, o capacitor é desligado do canal selecionado, mantendo assim a
tensão anteriormente presente na entrada. Assim, mesmo que a tensão na entrada sofra pequenas
variações, estas não afetarão a conversão que agora está em andamento internamente.

Devido a este fato você deve tomar muito cuidado durante suas “medidas analógicas” com o PIC.
Digamos que entre uma leitura e outra o capacitor se descarregue por completo. Para que uma nova
conversão possa ser feita de maneira adequada, é necessário esperar pela carga total do capacitor.
Assim é necessário que entre uma leitura e outra haja um tempo (tempo de adequação do capacitor).
Recomenda-se que na pior das hipóteses este não seja inferior a 40 us (40 x 10−6 s).
Analogico para Digital - AD
VELOCIDADE DE AMOSTRAGEM E SELEÇÃO DO TAD

A adequação do capacitor interno também dependerá da temperatura e da impedância inserida na


entrada. Valores entre 50k Ohm e 10k Ohm são os indicados. Quanto menor o valor da impedância
inserida na entrada, menor será o tempo de adequação do capacitor.
O tempo de adequação do capacitor também está intimamente ligado ao clock selecionado para o
conversor ADC. Podemos chamar este tempo (período) de TAD e este será equivalente ao tempo de
conversão de 1 bit. Como o conversor do PIC tem 10 bits teremos 10 x TAD . É preciso acrescentar
dois períodos neste total, sendo um para a adequação do capacitor e outro para o inicio da conversão.
Temos então 12 x TAD. O valor de TAD dependerá então do valor da freqüência do clock
selecionada para o conversor.
Obs.: é recomendável acrescentar mais 2 TAD no total calculado, pois ao final da conversão o flag da
interrupção é marcado e o capacitor será religado.
Analogico para Digital - AD
SELEÇÃO DA FREQUENCIA PARA O CONVERSOR
Analogico para Digital - AD
SELEÇÃO DA FREQUENCIA PARA O CONVERSOR
Vamos a um pequeno exemplo. Digamos que o cristal externo no PIC seja de 20 MHz e a opção
selecionada seja FOSC / 2, então temos:

TAD = 2 / 20.000.000 = 100 x 10−9 => 100ns


Este tempo é bastante pequeno, se considerarmos que cada ciclo de máquina nesta situação terá
200 ns. Assim o mesmo não é recomendado.

A escolha correta para este caso seria FOSC / 32. Com este valor obteríamos um TAD de 1,6 µs
aproximadamente. Multiplicando o total obtido nosso tempo total seria de aproximadamente 22 µs.
Se a cada leitura entre um ou mais canais, um tempo de 40 µs fosse dado, estaríamos mais que
dentro dos nossos limites.
Analogico para Digital - AD
 TAREFAS
1) Escrever o firmware para mostrar o valor de conversor A/D do canal 0 através dos LEDS
conectados no PORTD. Dividir o valor lido por 4 para condicionar o resultado em 8 bits:

2) Escrever o firmware para digitalizar o valor analógico do sensor de temperatura LM35 (10mV/°C)
e ajustar a velocidade de um motor de corrente contínua de acordo com a temperatura. Quanto
maior a temperatura maior a velocidade.
Analogico para Digital - AD
CRÉDITOS
http://www.arnerobotics.com.br/

UTFPR – Campus Curitiba


Prof. Amauri Assef

You might also like