O que é ADC – Conversores Analógico para Digital

Tempo de leitura: 5 minutes

O mundo analógico com eletrônica digital

Há alguns anos, todos os dispositivos eletrônicos que usamos hoje, como telefones, computadores, televisões, etc., eram de natureza analógica. Então, lentamente, os telefones fixos foram substituídos por telefones celulares modernos, as televisões e monitores CRT foram substituídos por telas de LED, os computadores com tubos de vácuo evoluíram para serem mais poderosos com microprocessadores e microcontroladores dentro deles e assim por diante.

Na era digital de hoje, estamos todos cercados por dispositivos eletrônicos digitais avançados, isso pode nos enganar a pensar que tudo ao nosso redor é digital por natureza, o que não é verdade. O mundo sempre foi de natureza analógica, por exemplo, tudo o que nós, humanos, sentimos e experimentamos como velocidade, temperatura, velocidade do ar, luz do sol, som, etc. são de natureza analógica. Mas nossos dispositivos eletrônicos que funcionam em microcontroladores e microprocessadores não podem ler/interpretar esses valores analógicos diretamente, uma vez que funcionam apenas em 0 e 1. Então, precisamos de algo que converta todos esses valores analógicos em 0 e 1 para que nossos microcontroladores e microprocessadores possam entendê-los. Este algo é chamado de Conversores Analógico para Digital ou ADC para breve. Neste artigo, aprenderemos tudo sobre ADC e como usá-los.

 

O que é ADC e como usá-lo?

Como dito anteriormente, ADC significa conversão de analógico para digital e é usado para converter valores analógicos do mundo real em valores digitais como 1 e 0. Então, quais são esses valores analógicos? São esses que vemos no nosso dia a dia como temperatura, velocidade, brilho etc. Mas espere !! Um ADC pode converter temperatura e velocidade diretamente em valores digitais como 0 e 1?

Não, certamente não. Um ADC só pode converter valores analógicos de tensão em valores digitais. Portanto, qualquer parâmetro que desejamos medir, deve primeiro ser convertido em tensão, essa conversão pode ser feita com a ajuda de sensores. Por exemplo, para converter valores de temperatura em voltagem, podemos usar um termistor, da mesma forma, para converter o brilho em voltagem, podemos usar um LDR. Depois de convertido em voltagem, podemos lê-lo com a ajuda de ADC’s.

Para saber como usar um ADC, devemos primeiro nos familiarizar com alguns termos básicos como resolução de canais, alcance, tensão de referência, etc.

 

Resolução (bits) e canais no ADC

Quando você lê a especificação de qualquer Microcontrolador ou ADC IC, os detalhes do ADC serão dados usando os termos canais e Resolução (bits). Por exemplo, um ATmega328 do Arduino UNO tem um ADC de 8 canais e 10 bits. Nem todos os pinos de um microcontrolador podem ler a tensão analógica. O termo 8 canais significa que há 8 pinos neste microcontrolador ATmega328 que podem ler a tensão analógica e cada pino pode ler a tensão com uma resolução de 10 bits. Isso irá variar para diferentes tipos de microcontroladores.

Vamos supor que nossa faixa de ADC é de 0 V a 5 V e temos um ADC de 10 bits, o que significa que nossa tensão de entrada de 0 a 5 V será dividida em 1024 níveis de valores analógicos discretos (210 = 1024). Significando que 1024 é a resolução para um ADC de 10 bits, da mesma forma para uma resolução ADC de 8 bits será 512 (28) e para uma resolução ADC de 16 bits será 65.536 (216).

Com isso, se a tensão de entrada real for 0 V, então o ADC do MCU irá ler como 0 e se for 5 V, o MCU irá ler 1024 e se estiver em algum lugar entre 2,5 V então o MCU irá ler 512. Podemos usar as fórmulas abaixo para calcular o valor digital que será lido pelo MCU com base na resolução do ADC e tensão operacional.

(Resolução ADC / Tensão operacional) = (Valor digital ADC / Valor de tensão real)

 

Tensão de referência para um ADC

Outro termo importante com o qual você deve estar familiarizado é a tensão de referência. Durante uma conversão ADC, o valor da tensão desconhecida é encontrado comparando-o com uma tensão conhecida, essa tensão conhecida é chamada de tensão de referência. Normalmente, todo MCU tem uma opção para definir a tensão de referência interna, o que significa que você pode definir essa tensão internamente para algum valor disponível usando o software (programa). Em uma placa Arduino UNO, a tensão de referência é definida internamente para 5 V por padrão, se necessário, o usuário pode definir essa tensão de referência externamente por meio do pino Vref também após fazer as alterações necessárias no software.

Lembre-se sempre de que o valor da tensão analógica medido deve ser sempre menor que o valor da tensão de referência e o valor da tensão de referência deve ser sempre menor que o valor da tensão operacional do microcontrolador.

Exemplo

Aqui estamos tomando um exemplo de ADC que tem resolução de 3 bits e tensão de referência de 2V. Assim, ele pode mapear a tensão analógica 0-2v com 8 (23) níveis diferentes, conforme mostrado na imagem abaixo:

Portanto, se a tensão analógica for 0,25, o valor digital será 1 em decimal e 001 em binário. Da mesma forma, se a tensão analógica for 0,5, o valor digital será 2 em decimal e 010 em binário.

Alguns microcontroladores têm ADC embutido como Arduino, MSP430, PIC16F877A, mas alguns microcontroladores não têm como 8051, Raspberry Pi etc. e temos que usar alguns ICs conversores analógicos para digitais externos como ADC0804, ADC0808.

Tipos de ADC e funcionando

Existem muitos tipos de ADC, os mais comumente usados são Flash ADC, Dual Slope ADC, Aproximação sucessiva e Dual Slope ADC. Explicar como cada um desses ADC’s funciona e a diferença entre eles estaria fora do escopo deste artigo, pois são bastante complexos. Mas, para dar uma ideia geral, o ADC tem um capacitor interno que será carregado pela tensão analógica que será medida. Em seguida, medimos o valor da tensão descarregando o capacitor durante um período de tempo.

 

Algumas perguntas comuns no ADC

Como medir mais de 5 V usando meu ADC?

Conforme discutido anteriormente, um módulo ADC não pode medir o valor da tensão mais do que a tensão operacional do microcontrolador. Ou seja, um microcontrolador de 5 V pode medir no máximo 5 V com seu pino ADC. Se você quiser medir qualquer coisa além disso, digamos, você deseja medir 0-12V, então você pode mapear 0-12V em 0-5V usando um divisor de potencial ou circuito divisor de tensão. Este circuito usará um par de resistores para mapear os valores para um MCU, você pode saber mais sobre o circuito divisor de tensão usando o link. Para o nosso exemplo acima, devemos usar um resistor de 1K e um resistor de 720 ohm em série para a fonte de tensão e medir a tensão entre os resistores conforme discutido no link acima.

Como converter valores digitais de ADC em valores de tensão reais?

Ao usar um conversor ADC para medir a tensão analógica, o resultado obtido pelo MCU será em digital. Por exemplo, em um microcontrolador de 5 V de 10 bits, quando a tensão real a ser medida é 4 V, o MCU irá lê-lo como 820, podemos novamente usar as fórmulas discutidas acima para converter 820 em 4 V para que possamos usá-lo em nosso cálculos. Vamos verificar o mesmo.

(Resolução ADC / Tensão operacional) = (Valor digital ADC / Valor de tensão real)
Valor de tensão real = valor digital ADC * (tensão operacional / resolução ADC)
= 820 * (5/1023)
= 4,007
= ~ 4V

Espero que você tenha uma boa ideia do ADC e como usá-lo para suas aplicações. Se você teve algum problema em entender os conceitos, sinta-se à vontade para postar seus comentários abaixo ou escrevê-los em nossos fóruns.