Questões:
- A conversão do ADC conta em tensão depende da tensão real do pino de +5 V?
- Se sim, qual é o método aceito para obter essa tensão da placa?
Histórico / Detalhe:
Eu tenho um circuito no qual tenho um Arduino Nano (clone) sendo executado a partir de um conector USB (de um hub). O trabalho do Arduino é medir a tensão em uma bateria que acionará um segundo circuito ligado / desligado pelo Nano. Para referência, é um testador de bateria.
Há uma tela do Nokia 5110 que exibe a tensão do desenho muito simples abaixo.
void setup() {
Serial.begin(9600);
display.begin();
// Init done
// You can change the contrast around to adapt the display
// for the best viewing!
display.setContrast(50);
// Text display tests
display.setTextSize(1);
display.setTextColor(BLACK);
}
void loop() {
display.clearDisplay(); // Clears the screen and buffer
display.setCursor(0,0);
display.print("Vin=");
int rawVIN = analogRead(VIN);
float floatVin = (rawVIN*4.75)/1023.0;
display.println(floatVin);
Serial.println(rawVIN);
display.display();
delay(1000);
}
- Eu medi a tensão da bateria usando um DVM e ele é de 4,13 V, mas o Nano informa 4,35 V.
- Eu tenho um terreno comum entre a bateria e o Arduino.
- Como a conexão para testar a tensão pode flutuar, eu tenho um resistor de pulldown para interromper flutuações violentas (> 10 kΩ)
Após alguma investigação, descobri que o +5 V estava realmente emitindo 4,75 V e mudei meu esboço de
float v = (rawVIN*5.0)/1024.0;
para
float v = (rawVIN*4.75)/1024.0;
e a leitura de tensão no Arduino agora estava correta. Fiz isso não porque entendi o que fiz, porque fiz um palpite de que poderia mudar o valor para o correto.