Pytania:
- Czy przeliczenie liczby ADC na napięcie zależy od rzeczywistego napięcia styku +5 V?
- Jeśli tak, jaka jest akceptowana metoda uzyskania tego napięcia z płyty?
Tło / szczegół:
Mam obwód, w którym mam Arduino Nano (klon) działający ze złącza USB (z koncentratora). Zadaniem Arduino jest pomiar napięcia na akumulatorze, który napędza drugi obwód włączany / wyłączany przez Nano. Dla porównania jest to tester baterii.
Istnieje ekran Nokia 5110, który wyświetla napięcie z bardzo prostego szkicu poniżej.
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);
}
- Zmierzyłem napięcie akumulatora za pomocą DVM i wynosi ono 4,13 V, ale Nano podaje 4,35 V.
- Mam wspólną płaszczyznę między baterią a Arduino.
- Ponieważ połączenie do testowania napięcia może się unosić, mam rozwijany rezystor, aby zatrzymać dzikie wahania (> 10 kΩ)
Po pewnym dochodzeniu odkryłem, że +5 V faktycznie wysyła 4,75 V i zmieniłem szkic
float v = (rawVIN*5.0)/1024.0;
do
float v = (rawVIN*4.75)/1024.0;
a odczyt napięcia na Arduino był teraz poprawny. Zrobiłem to nie dlatego, że rozumiem, co zrobiłem, zrobiłem to, ponieważ miałem przeczucie, że może to zmienić wartość na poprawną.