quarta-feira, 18 setembro, 2024
Comunidade Prototipando
InícioEletrônicaConversão analógica para digital

Conversão analógica para digital

Explore a conversão analógica para digital e descubra como transformar sinais analógicos em dados digitais para aplicações modernas.

Os microcontroladores são capazes de detectar sinais binários, o botão está pressionado ou não? Estes são sinais digitais. Quando um microcontrolador é alimentado a partir de cinco volts, entende zero volts (0V) como um binário 0 e cinco volts (5V) como um binário 1. No entanto, o mundo não é tão simples e gosta de usar tons de cinza. E se o sinal for 2,72V? Isso é zero ou um? Muitas vezes precisamos medir sinais que variam, estes são chamados sinais analógicos. Um sensor analógico de 5V pode emitir 0,01V ou 4,99V ou qualquer coisa entre eles. Felizmente, quase todos os microcontroladores possuem um dispositivo incorporado que nos permite converter essas tensões em valores que podemos usar em um programa para tomar uma decisão. Essa funcionalidade é conhecida como Conversão analógica para digital e é essencial para lidar com sinais analógicos em sistemas digitais.

O que é o ADC?

Um conversor analógico para digital (ADC) é um recurso muito útil que converte uma tensão analógica em um pino em um número digital. Ao converter do mundo analógico para o mundo digital, podemos começar a usar a eletrônica para fazer interface com o mundo analógico ao nosso redor.

arduino analogico entrada

Nem todos os pinos de um microcontrolador têm a capacidade de fazer conversões analógicas para digitais. Na placa Arduino, esses pinos têm um ‘A’ na frente de sua etiqueta (A0 a A5) para indicar que esses pinos podem ler tensões analógicas.

Os ADCs podem variar bastante entre o microcontrolador. O ADC no Arduino é um ADC de 10 bits, o que significa que ele tem a capacidade de detectar 1.024 (2^10) níveis analógicos discretos. Alguns microcontroladores têm ADCs de 8 bits (2^8 = 256 níveis discretos) e alguns têm ADCs de 16 bits (2 ^ 16 = 65.536 níveis discretos).

O modo como um ADC funciona é bastante complexo. Existem algumas maneiras diferentes de conseguir esse feito, mas uma das técnicas mais comuns usa a tensão analógica para carregar um capacitor interno e depois medir o tempo necessário para descarregar através de um resistor interno. O microcontrolador monitora o número de ciclos de clock que passam antes que o capacitor seja descarregado. Esse número de ciclos é o número retornado quando o ADC estiver concluído.

Relacionando o valor ADC à tensão

O ADC reporta um valor ratiométrico. Isso significa que o ADC assume que 5V é 1023 e qualquer coisa menor que 5V será uma razão entre 5V e 1023.

calculo adc

Conversões de analógico para digital dependem da tensão do sistema. Por isso, como usamos predominantemente o ADC de 10 bits do Arduino em um sistema de 5V, podemos simplificar ligeiramente esta equação.

calculo adc valores

Se o seu sistema for 3,3V, basta trocar 5V por 3,3V na equação. Se o seu sistema é 3.3V e o seu ADC está reportando 512, qual é a tensão medida? É aproximadamente 1.65V. Se a tensão analógica for 2.12V, o que o ADC reportará como um valor?

substituir valores adc arduino calculo

Reorganize um pouco as coisas e obtemos:

substituir valores adc arduino calculo1

Pronto, o ADC deve relatar 434.

Exemplo ADC do Arduino

Para mostrar isso no mundo real, por exemplo, vamos usar o Arduino para detectar uma tensão analógica. Assim, use um potenciômetro, sensor de luz ou divisor de tensão simples para criar uma tensão. Em seguida, vamos configurar um circuito potenciômetro simples para este exemplo.

exemplo arduino adc potenciometro

Para começar, precisamos definir o pino como uma entrada. Para combinar com o diagrama de circuito, usaremos A3.

pinMode(A3, INPUT);

e, em seguida, execute a versão analógica para digital usando o comando analogRead():

int x = analogRead(A3); //Reads the analog value on pin A3 into x

O valor retornado e armazenado em x será um valor de 0 a 1023. O Arduino possui um ADC de 10 bits (2^10 = 1024). Armazenamos esse valor em um int porque x é maior (10 bits) do que o byte pode conter (8 bits). Vamos imprimir esse valor para observá-lo conforme ele muda.

Serial.print(“Analog value: “);
Serial.println(x);

À medida que mudamos o valor analógico, x também deve mudar. Por exemplo, se x é relatado como 334 e estamos usando o Arduino em 5V, qual é a tensão real? Puxe o multímetro digital e verifique a tensão real. Deve ser aproximadamente 1,63V. Parabéns! Você acabou de criar seu próprio multímetro digital com um Arduino!

Curiosidade

O que acontece se você conectar um sensor analógico a um pino regular (digital)? Nada de ruim vai acontecer. Você simplesmente não poderá fazer uma leitura analógica com sucesso:

int x = analogRead(8); // Tente ler o valor analógico no pino digital 8 - isso não funciona!

Isso será compilado, mas x será preenchido com um valor sem sentido. O que acontece se eu conectar um sensor digital a um pino analógico? Mais uma vez, você não quebrará nada. Se você fizer uma conversão de analógico para digital em um botão, provavelmente verá valores ADC muito próximos de 1023 (ou 5V, que são binários 1) ou muito próximos de 0 (ou 0V, que são binários 0).

Conclusão

Fazer conversões digitais analógicas é uma grande coisa para aprender. Além disso, agora que você entende esse importante conceito, confira todos os projetos e sensores que utilizam conversão de analógico para digital. Caso possua alguma dúvida ou sugestão quanto a este tutorial, não hesite em deixar um comentário abaixo.

Iuri Medeiros
Iuri Medeiroshttps://grupoexperts.com.br/
CEO apaixonado por negócios e visionário, lidera a GEX com uma abordagem inovadora. Sua ética de trabalho incansável e compromisso com a excelência transcendem os números, refletindo-se na cultura corporativa que valoriza inovação e responsabilidade social.
ARTIGOS RELACIONADOS

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

- PUBLICIDADE -
Google search engine

Mais Populares

Comentários Recentes