Preguntas:
- ¿La conversión del recuento de ADC a voltaje depende del voltaje real del pin de +5 V?
- En caso afirmativo, ¿cuál es el método aceptado para obtener ese voltaje de la placa?
Fondo / Detalle:
Tengo un circuito en el que tengo un Arduino Nano (clon) que se ejecuta desde un conector USB (desde un concentrador). El trabajo del Arduino es medir el voltaje en una batería que conducirá un segundo circuito encendido / apagado por el Nano. Como referencia es un probador de batería.
Hay una pantalla Nokia 5110 que muestra el voltaje del boceto muy simple a continuación.
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);
}
- Medí el voltaje de la batería usando un DVM y es de 4.13 V, sin embargo, el Nano reporta 4.35 V.
- Tengo un terreno común entre la batería y Arduino.
- Debido a que la conexión para probar el voltaje puede flotar, tengo una resistencia pulldown para detener las fluctuaciones salvajes (> 10 kΩ)
Después de investigar un poco, descubrí que el +5 V en realidad estaba produciendo 4.75 V y cambié mi boceto de
float v = (rawVIN*5.0)/1024.0;
a
float v = (rawVIN*4.75)/1024.0;
y la lectura de voltaje en el Arduino ahora era correcta. Hice esto no porque entiendo lo que hice, lo hice porque tenía el presentimiento de que podría cambiar el valor al correcto.