Medindo a tensão da fonte de energia de um Arduino usando entrada analógica

9

Estou ligando um Arduino usando uma bateria de 5V (3,7v para um módulo de expansão) e preciso medir a tensão. Digamos que a bateria ofereça alta corrente , é seguro medir a tensão via entrada analógica? Como neste:

insira a descrição da imagem aqui

A razão pela qual estou perguntando é que não conheço muito a arquitetura e as limitações do ADC do Arduino. Normalmente, eu o faria por segurança:

insira a descrição da imagem aqui

As conexões no primeiro diagrama são seguras para o ADC? Desde já, obrigado!

Nota: Uma pergunta semelhante foi feita aqui: ( Monitorar o uso de energia CC ), mas ela não responde à pergunta sobre altas cargas de corrente na bateria.

Ahmed Farid
fonte
11
Onde você conseguiu uma bateria de 5V?
Na verdade, é uma bateria de 3.7v que entra em um circuito regulador de tensão. De fato, estou interessado em medir a própria bateria de 3,7v, mas, por exemplo, apenas assumi os 5v para mostrar que o Arduino está funcionando.
precisa saber é o seguinte
Ah, mas pode mudar as coisas. Provavelmente não: o arduino não se importará com a quantidade de corrente consumida pela bateria, desde que nem toda essa corrente passe pelo pino de E / S. Mas não tenho certeza, não conheço arduino.
Isso é verdade. Estou preocupado com a entrada atual no pino de entrada analógica se eu o conectar diretamente a uma bateria.
precisa saber é o seguinte

Respostas:

6

Verifique a folha de dados para a corrente de entrada em um pino de E / S. Depende do tipo exato de controlador no seu Arduino. É provavelmente chamado de pino de E / S da Corrente de Vazamento de Entrada e estará próximo de 1 μA .

Aqui está uma folha de dados ATmega típica usada em Uno / Duemilanove / ... , você pode encontrar o parâmetro na página 304. Verifique a folha de dados do seu controlador específico para obter detalhes precisos.

Se você usar uma bateria de 3,7V e um conversor de avanço para fornecer 5V ao controlador, poderá conectar a bateria diretamente à entrada analógica do controlador. No entanto, quando a tensão de saída do conversor intensificador cair abaixo da tensão da bateria (por qualquer motivo), todo o seu Arduino será alimentado através do pino de entrada analógica e é isso que você não deseja. Todos os pinos de entrada têm proteção contra sobretensão, o que permite esse comportamento, mas os diodos não são classificados para correntes contínuas. Em conclusão: é melhor incluir um resistor em série entre a bateria e o pino de entrada.

Mas agora sua medição depende da precisão da fonte de alimentação de 5V. Dependendo do controlador exato que você possui, existem várias tensões de referência internas disponíveis que são muito mais precisas que a tensão da fonte de alimentação. Se você adicionar um resistor extra ao terra (R2), poderá usar essa referência para medir com precisão a tensão de entrada. Isso é chamado de divisor de tensão (resistivo). Com a relação fornecida, a voltaga no pino de entrada será de 1V quando a tensão da bateria for de 3.7V:

Vmeasurement=R2×VBATTR1+R2

esquemático

simular este circuito - esquemático criado usando o CircuitLab

jippie
fonte
11
Portanto, em essência, é possível conectá-lo diretamente a uma bateria, mas NÃO é recomendado se o 5v variar. Mesmo que o 5v seja regulado e constante?
Ahmed Farid
2
Deve ser seguro se 5V for constante, mas as coisas dão errado o tempo todo: melhor prevenir do que remediar. Um ou dois resistores são muito mais baratos que um novo microcontrolador. A engenharia não é apenas fazer as coisas funcionarem, mas também fazer as coisas que continuam funcionando conforme necessário.
jippie
Outra pergunta, se eu puder: Uma única resistência (1K) em paralelo à bateria é boa o suficiente para impedir uma entrada de corrente alta? (Veja a minha segunda figura)
Ahmed Farid
Não, não faz nada além de consumir a bateria.
jippie
4

Outra opção é usar a referência de tensão de banda 1.1 1.1 interna do Arduino para determinar o valor do VCC sem o uso de peças externas adicionais, conforme detalhado nesses dois links:

http://jeelabs.org/2012/05/04/measuring-vcc-via-the-bandgap/

e

http://arduino.cc/forum/index.php?topic=88935.0

O único problema é que você precisa determinar um valor de calibração em relação ao intervalo de banda interno de 1.1V, pois ele pode ser desativado em até 10%.

Mas isso não exigiria peças adicionais e permitiria ao seu atmega determinar a tensão de sua fonte de energia.

Wing Tang Wong
fonte
3
Aqui está outro artigo que discute como fazer isso. O código que ele usa é um pouco diferente: provideyourown.com/2012/...
Thomasw
@ThomasW nice! Outro ótimo artigo sobre o uso do 1.1g bandgap.
Wing Tang Wong