Pertanyaan:
- Apakah konversi jumlah ADC ke tegangan tergantung pada tegangan sebenarnya dari +5 V pin?
- Jika ya, apa metode yang diterima untuk mendapatkan tegangan dari papan?
Latar belakang / detail:
Saya memiliki sirkuit di mana saya memiliki Arduino Nano (klon) berjalan dari konektor USB (dari hub). Tugas Arduino adalah mengukur tegangan pada baterai yang akan mendorong sirkuit kedua dinyalakan / dimatikan oleh Nano. Untuk referensi itu adalah tester baterai.
Ada layar Nokia 5110 yang menampilkan tegangan dari sketsa yang sangat sederhana di bawah ini.
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);
}
- Saya mengukur tegangan baterai menggunakan DVM dan 4,13 V, namun Nano melaporkan 4,35 V.
- Saya memiliki kesamaan antara baterai dan Arduino.
- Karena koneksi untuk menguji tegangan dapat mengambang, saya memiliki resistor pulldown untuk menghentikan fluktuasi liar (> 10 kΩ)
Setelah beberapa penyelidikan saya menemukan bahwa +5 V sebenarnya menghasilkan 4,75 V dan mengubah sketsa saya dari
float v = (rawVIN*5.0)/1024.0;
untuk
float v = (rawVIN*4.75)/1024.0;
dan pembacaan tegangan pada Arduino sekarang benar. Saya melakukan ini bukan karena saya mengerti apa yang saya lakukan, saya melakukannya karena saya punya firasat itu dapat mengubah nilai menjadi yang benar.