คำถาม:
- การแปลงของ ADC นับเป็นแรงดันขึ้นอยู่กับแรงดันไฟฟ้าที่แท้จริงของขา +5 V หรือไม่?
- ถ้าใช่วิธีการรับแรงดันไฟฟ้าจากบอร์ดเป็นที่ยอมรับคืออะไร?
พื้นหลัง / รายละเอียด:
ฉันมีวงจรที่มี Arduino Nano (โคลน) ที่ทำงานจากตัวเชื่อมต่อ USB (จากฮับ) หน้าที่ของ Arduino คือการวัดแรงดันไฟฟ้าของแบตเตอรี่ซึ่งจะทำให้วงจรที่สองเปิด / ปิดโดยนาโน สำหรับการอ้างอิงมันเป็นเครื่องทดสอบแบตเตอรี่
มีหน้าจอ 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 V แต่นาโนรายงาน 4.35 V
- ฉันมีสายกราวด์ร่วมกันระหว่างแบตเตอรี่กับ Arduino
- เนื่องจากการเชื่อมต่อเพื่อทดสอบแรงดันไฟฟ้าสามารถลอยได้ฉันจึงมีตัวต้านทานแบบเลื่อนลงเพื่อหยุดความผันผวนที่รุนแรง (> 10 kΩ)
หลังจากการตรวจสอบฉันพบว่า +5 V กำลังส่งออก 4.75 V จริง ๆ แล้วเปลี่ยนร่างของฉันจาก
float v = (rawVIN*5.0)/1024.0;
ถึง
float v = (rawVIN*4.75)/1024.0;
และแรงดันไฟฟ้าที่อ่านบน Arduino นั้นถูกต้องแล้ว ฉันทำสิ่งนี้ไม่ใช่เพราะฉันเข้าใจสิ่งที่ฉันทำฉันทำเพราะฉันมีลางสังหรณ์มันอาจเปลี่ยนค่าเป็นสิ่งที่ถูกต้อง