Esclarecimento de exemplo da entrada analógica do Arduino


8

Primeiro de tudo, eu sou totalmente interessada em eletrônica.

Recentemente, recebi um Arduino Nano. Agora, estou tentando entender por que não há potenciômetro nominal no exemplo http://arduino.cc/en/Tutorial/ReadAnalogVoltage e como a variação desse nominal afetaria as leituras de entrada analógica.

Também por que no exemplo http://arduino.cc/en/Tutorial/AnalogReadSerial eles escolheram o potenciômetro de 10k, o que seria diferente com o potenciômetro de 200k.

Obrigado!

Respostas:


12

Não haveria diferença na saída de tensão do limpador de qualquer potenciômetro (não carregado), todos eles funcionam da mesma maneira.

No entanto, a entrada analógica para o seu Arduino recomenda uma impedância de fonte inferior a 10kOhm, para um desempenho ideal. Isso ocorre devido ao tempo necessário para carregar a amostra e reter o capacitor, o que pode ser visto como uma impedância dinâmica . A imagem abaixo foi retirada da folha de dados do AtMega328 (o microcontrolador baseado no Arduino):

Impedância de entrada analógica

Não se preocupe muito se você não entender completamente isso agora, apenas aceite que precisamos de uma impedância de fonte inferior a 10kOhms.

Agora, como calculamos a impedância de saída de um potenciômetro?

Para obter detalhes, consulte a impedância equivalente de Thevenin . Isso nos diz que a resistência máxima de saída do limpador de um pote é 1/4 da resistência medida de cima para baixo (quando o limpador está no centro). Portanto, se o seu pote tiver 10k, a resistência máxima de saída será de 2,5k .
Aqui está uma simulação de um pote de 10k sendo varrido de uma extremidade à outra:

Pot Sim

O eixo X representa a rotação de 0 a 100% (ignore os valores reais mostrados). O eixo Y é a impedância de saída medida no limpador. Podemos ver como ele começa e termina em 0 ohms e atinge o pico de 2,5 kOhms no meio (50%).
Isso é confortavelmente menor que a impedância de fonte recomendada de 10 k.
Portanto, você pode usar qualquer valor de potenciômetro entre, por exemplo, 100 ohms e 40k como seu divisor de tensão.

EDIT - para responder à pergunta sobre o que acontece se usarmos um pote de 200k:

Como diz o trecho da folha de dados, quanto maior a impedância da fonte, mais tempo o capacitor S / H leva para carregar. Se não estiver totalmente carregado antes da leitura, a leitura mostrará um erro comparado ao valor verdadeiro.

Podemos calcular quanto tempo o capacitor precisa carregar até 90% do seu valor final, a fórmula é:

2,3 * R * C

Após 1 constante de tempo RC, a tensão está em ~ 63% do seu valor final. Após 2,3 constantes de tempo, está em ~ 90% como acima. Isso é calculado por 1 - (1 / e ^ (RC / t)), onde e é o logaritmo natural ~ 2,718. Por exemplo, para 2,3 constantes de tempo, seria 1 - (1 / e ^ 2,3) = 0,8997.

Portanto, se conectarmos os valores mostrados - impedância da fonte de 50k, impedância da série 100k (suponha o pior caso) e capacitância de 14pF:

2.3 * 150k * 14pF = 4.83us para cobrar a 90%.

Também podemos calcular o valor de -3dB:

1 / (2pi * 150k * 14pF) = 75,8kHz

Se queremos que o valor final esteja dentro de 99%, temos que esperar cerca de 4,6 tau (constantes de tempo):

4.6 * 150k * 14pF = 9.66us para cobrar a 99% - isso corresponde a cerca de 16.5kHz

Assim, podemos ver como quanto maior a impedância da fonte, maior o tempo de carga e, portanto, menor a frequência lida com precisão pelo ADC.

No entanto, no caso de uma panela controlando um valor ~ DC, você pode amostrar em uma frequência muito baixa e dar tempo de sobra para carregar, pois o vazamento é muito pequeno. Então, acho que 200k deve estar bem neste caso. Por exemplo, um sinal de áudio ou qualquer sinal de alta impedância variável (CA), você terá que levar tudo em consideração.
Esse link entra em alguns bons detalhes sobre as características do ATMega328 ADC.


1
Muito obrigado pela explicação detalhada! Você pode esclarecer como um potenciômetro superior a 40 kΩ afetaria as leituras digitais? Por exemplo, vamos multiplicar por 5 para que o potenciômetro seja 200 kΩ?
AB

@AB - Adicionei mais alguns detalhes, espero que ajude. Percebi que o pote em sua pergunta é usado apenas para variar o valor DC (não controlar o nível de um sinal CA), portanto, um valor mais alto deve ser bom. Você pode fazer alguns de seus próprios testes sobre o efeito de aumentar a impedância da fonte >> 10k se você tiver uma tensão conhecida e variar a resistência em série.
21712 Oli Glaser

6

Oli mostrou as informações na folha de dados, mas se você é novo nisso, a explicação pode estar um pouco exagerada.

O ADC (conversor analógico-digital) possui um pequeno capacitor, que mantém a tensão de entrada analógica. Esse capacitor é carregado através da resistência na entrada. Uma alta resistência carregará o capacitor mais lentamente. Recomenda-se o máximo de 10 kΩ, portanto, usar um medidor de potenciômetro com esse valor é bom. O máximo de 40 kΩ de Oli está correto, mas isso ficará claro quando você aprender sobre Thévenin.


1

Na minha experiência com Arduinos, com potenciômetros acima de 10k, as leituras variam. Eu resolvo isso colocando um capacitor .1uf entre o limpador e o terra. Isso mantém a tensão estável para os leitores analógicos. Usando o capacitor, usei potes de até 1 MegaOhm e obtive leituras sólidas e constantes.


Eu gosto disso porque o capacitor .1uF paralelo garante uma fonte de baixa impedância após a troca do pino de entrada. 0.1uF / 14pf = 7142, e a resolução de adc (10 bits) é de 1 em 1023. Com potes extremamente grandes, haverá um pequeno atraso entre definir e estabilizar a tensão no pino de entrada, mas é improvável que isso seja notado. O potenciômetro de 4Mohm é 1Mohm imp. * 0,1 uF = 0,1 seg. Assim, em 0,46 seg. seu valor é estabelecido em 99% da alteração!
Dario Dentes

Desculpe se isso parece idiota, mas o que acontece se a tensão estiver caindo?
HilarieAK
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.