Запитання:
- Чи залежить перетворення підрахунку АЦП у напругу від фактичної напруги контакту +5 В?
- Якщо так, то який прийнятий метод отримання цієї напруги з плати?
Довідка / деталі:
У мене є схема, в якій у мене є Arduino Nano (клон), що працює від USB-роз'єму (від концентратора). Завдання Arduino полягає в вимірюванні напруги на акумуляторі, який буде вести другий ланцюг, включений / вимкнений Nano. Для довідки це тестер акумуляторів.
Є екран Nokia 5110, який відображає напругу з дуже простого ескізу нижче.
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);
}
- Я вимірював напругу акумулятора за допомогою DVM, і це 4,13 В, але Nano повідомляє 4,35 В.
- У мене спільний контакт між акумулятором і Arduino.
- Оскільки з'єднання для перевірки напруги може плавати, у мене є резистор, що припиняється, щоб зупинити дикі коливання (> 10 кОм)
Після деякого розслідування я виявив, що +5 В насправді виводить 4,75 В і змінив свій ескіз
float v = (rawVIN*5.0)/1024.0;
до
float v = (rawVIN*4.75)/1024.0;
і показник напруги на Arduino тепер був правильним. Я зробив це не тому, що я розумію, що я зробив, я це зробив, бо мав уявлення, що це може змінити значення на правильне.