Arduino: Mede a tensão externa


10

Eu tenho um "problema" ao tentar medir a tensão externa de uma célula moeda. Simplifiquei meu circuito, mas basicamente tenho um relógio em tempo real DS1307 alimentado pela saída 5v do Arduino e uma célula de moeda conectada ao vBat para manter o relógio vivo enquanto o Arduino está desligado. Minha idéia era medir o nível da bateria com o Arduino, conectando o positivo a uma entrada analógica e lendo o nível de tensão. Então, pensei, como a tensão máxima é 3v, posso usar o 3v3 como AREF e definir a referência analógica para externa e, em seguida, ler resultados precisos. O resultado é bem legal e as leituras do Arduino são as mesmas da leitura da tensão da bateria do meu multímetro. O problema surge quando eu desconecto a fonte de energia do Arduino (uma conexão USB). Para minha surpresa, o Arduino não desliga (alguns leds ficam ligados),

Por que isso está acontecendo? Como o Arduino está recebendo corrente do pino analógico? Este pequeno circuito é uma aberração eletrônica?

insira a descrição da imagem aqui

Respostas:


10

A maioria, se não todos, os pinos de entrada nos controladores AVR são protegidos internamente por diodos de aperto. Esses diodos impedem que uma tensão de entrada possa ser maior que a tensão de alimentação.

Por que esses diodos internos existem:

É importante perceber que, quando um pino de entrada se eleva acima da tensão de alimentação e esses diodos não estavam lá, o chip pode agir como um SCR, trava, curto a bateria e o próprio chip provavelmente seria danificado por sobrecorrente / superaquecimento .

Por que o seu Arduino funciona com a bateria Dê uma olhada no diagrama de circuito abaixo. Quando o Vcc é desconectado da fonte de energia normal, há um caminho da bateria, via D1, para o Vcc. A voltagem da bateria é alta o suficiente para o controlador operar.

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Como resolver

A solução é simples, adicione um resistor de alto valor em série entre a bateria e a entrada do controlador. A maioria dos AVRs possui uma corrente de vazamento de entrada máxima especificada (I IL ) de 1μA, portanto, você deseja garantir que a queda de tensão seja aceitável com essa corrente, digamos 100kΩ.

Mas cuidado!

Você precisa perceber que a entrada pode extrair essa corrente da célula de botão e diminuir o tempo de vida útil.


Eu tentaria 10Mohm e veria o que o ADC lê e usaria isso como sua referência para uma bateria carregada. Essa é uma medida complicada se você deseja evitar uma drenagem indesejada.
Andy aka

Isso poderia funcionar, embora seja especificado como corrente de entrada e não como impedância de entrada. A resposta pode ser não linear, mas não necessariamente inútil. Pode ser necessário algum tipo de calibração e talvez a referência de intervalo de banda de 1V1 possa ser usada (em vez da referência externa de 3V3) quando a tensão medida cair abaixo de 1,1V.
Jipie # 22/13

Boa resposta!! Eu estava pensando se um divisor de resistor com 100kΩ e 50kΩ funcionaria. Neste caso, estou supondo uma tensão máxima da bateria de 3,2 volts. Isso fornece uma tensão de queda de 1,067v, que pode ser compatível com a referência analógica interna de 1v1. Isso pode funcionar? ou descarregará a bateria muito cedo?
Alvarolb 22/05

2
Não conheço a capacidade da sua bateria. Deve ser especificado em mAh. Uma indicação grosseira de sua vida útil seria . Uma célula de moeda pode não durar muito, mas você deve verificar a folha de dados para ter certeza. T=mAh3V×1000100kΩ+50kΩ=mAh × (100kΩ+50kΩ)3V×1000
Jipie # 22/13

11
Esses diodos estão presentes na maioria dos microcontroladores em geral - não apenas no AVR. Eles não são inéditos em outros tipos de ICs também.
Adam Lawrence
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.