प्रशन:
- क्या ADC का वोल्टेज में रूपांतरण +5 V पिन के वास्तविक वोल्टेज पर निर्भर करता है?
- यदि हाँ, तो बोर्ड से उस वोल्टेज को प्राप्त करने की स्वीकृत विधि क्या है?
पृष्ठभूमि / विवरण:
मेरे पास एक सर्किट है जिसमें मेरे पास एक अरुदिनो नैनो (क्लोन) है जो एक यूएसबी कनेक्टर (एक हब से) से चल रहा है। Arduino का काम एक बैटरी पर वोल्टेज को मापना है जो नैनो द्वारा स्विच / बंद एक दूसरे सर्किट को चलाएगा। संदर्भ के लिए यह एक बैटरी परीक्षक है।
एक नोकिया 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 test)
कुछ जांच के बाद मैंने पाया कि +5 V वास्तव में 4.75 V आउटपुट कर रहा था और इससे मेरा स्केच बदल गया
float v = (rawVIN*5.0)/1024.0;
सेवा
float v = (rawVIN*4.75)/1024.0;
और Arduino पर वोल्टेज पढ़ना अब सही था। मैंने ऐसा नहीं किया क्योंकि मैं समझता हूं कि मैंने क्या किया, मैंने ऐसा किया क्योंकि मेरे पास एक कूबड़ था जो मूल्य को सही में बदल सकता है।