Font Size

Neste artigo estaremos entendendo o funcionamento de uma porta analógica por completo. Além disso, você vai saber como é construído o valor lido pelos microcontroladores. Por fim, veremos toda a parte de multiplexação das portas analógicas, e você sabia que podemos expandir para até 16? Então vamos nessa!

Dando o seu contexto.

Primeiramente, você já deve ter feito o projeto com LDR ou potenciômetro. Ou até mesmo testado o seu primeiro servo motor. Em todos eles, acredito que tenha utilizado algumas das entradas analógicas (as famosas A0, A1, A2, …).

Entendendo o funcionamento de uma porta analógica

Além disso, quando estamos utilizando elas, estamos também trabalhando com alguns conceitos como:

Todos estes conceitos tem a sua importância aqui. Entretanto, como eles trabalham em conjunto para pegar o valor de tensão que está sendo enviado para a porta A0 e resultar no valor de 403 usando o analogRead()? Bom, continue a sua leitura!

Projetos usando as Portas Analógicas.

Então, continuando o nosso aprendizado de hoje, deixo abaixo alguns projetos super legais. Em todos eles, foram utilizadas as portas analógicas. Por isso, perceba a variedade de projetos e como as portas analógicas foram essenciais neles.

Portanto, perceba que a utilização dessas portas se faz muito necessário. Sabe o que é mais necessário ainda? Saber como ela trabalha. Então vamos nessa!

Conceito de Aproximações Sucessivas.

O conceito de aproximações sucessivas é um método matemático muito utilizado em sistemas. O seu principal objetivo é encontrar uma constante, ou um valor mais próximo do resultado de uma função. No nosso caso, o objetivo será descobrir o valor da tensão!

Entendendo o processo.

Tal método parte sempre de um valor inicial (em nosso caso, como o Arduino UNO tem uma maior tensão de 5V, então partimos da metade 2,5V). Beleza, agora o que fazer? O Arduino vai variar o valor dessa tensão interna dele. Aqui entra mais dois conceitos:

  • Comparador de Tensão.
  • Resolução do Arduino.

 

Entendendo o funcionamento de uma porta analógica
Fonte: Brincando com Ideias

Observando a imagem acima, perceba que o Arduino identifica o que ele está recebendo graças ao seu comparador. Ou seja, vamos supor que estou regulando a tensão do circuito na porta A0 e enviando 2V para ela.

Agora, vou aplicar o comando analogRead(A0) e quero saber o valor lido. Para isso o Arduino vai passar a realizar esse processo.

Processo de Identificação do Arduino.

Começo com 2.5V e pergunto ao meu comparador: isso é maior que o valor de entrada? Sim (0) e Não (1). Agora ele faz o processo da aproximação e divide 2.5V pela metade e vai até 1.25 e faz a mesma pergunta aos comparador: isso é maior ou menor? Sim (0) e Não (1).

Ele realiza esse processo 10 vezes. Pois adivinha? O valor 10 vem da sua resolução 2^10 = 1023 lembra? Assim, como na imagem, o valor em binário é 403. Portanto a saída do analogRead(A0) = 403.

Detalhes Importantes.

Vale ressaltar alguns pontos importantes:

  • Quanto maior o valor da tensão, mais tentativas o Arduino faz até chegar no valor.
  • O Arduino tem apenas 1 comparador, então ele faz o calculo de uma porta por vez!
  • Por fim, para fazer todo esse calculo, o Arduino demora cerca de 100 μs. Ou seja, em 1 segundo ele já fez 10 mil leituras!

Expandindo as portas do Arduino.

Para finalizar o nosso estudo de hoje, vamos conhecer o CD74HC4067. Ele é um um módulo no qual conseguimos expandir as saídas analógicas para até 16 canais!

Além disso, com relação a preocupação da tensão de operação, que discutimos em um artigo anterior, ele pode atuar tanto nas tensões de 3,3V e 5V. Portanto, você só precisa se preocupar com a tensão necessária para alimentar todos os componentes ligados nas portas!

Ficou alguma dúvida?

Então, como foi o estudo até aqui? Ficou alguma dúvida? Comenta abaixo! Caso tenha sido bem esclarecedor, então compartilhe. Conteúdo de qualidade merece ser compartilhado para o mundo. Vejo você no próximo artigo!

5.00 avg. rating (97% score) - 3 votes