टिलो के विशिष्ट सवालों के जवाब देने के लिए:
analogRead(5)और digitalRead(5)दो अलग-अलग स्थानों से पढ़ेंगे। पूर्व एनालॉग चैनल से पढ़ेगा 5या A5बाद वाला पिन 5 से पढ़ेगा जो डिजिटल पिन होता है। तो हाँ, यदि आप एक एनालॉग पिन पढ़ना चाहते हैं तो आपको digitalReadउपयोग करना चाहिए A5।
क्यों?
analogReadआंतरिक रूप से एक चैनल नंबर की आवश्यकता होती है, लेकिन यह आपको पिन नंबर भी दे देगा। यदि आप इसे एक पिन नंबर देते हैं तो यह इसे इसके संबंधित चैनल नंबर में बदल देगा। जहां तक मैं बता सकता हूं analogReadकि केवल एक फ़ंक्शन है जो आंतरिक रूप से एक चैनल नंबर का उपयोग करता है, एक चैनल नंबर की अनुमति देने के लिए केवल एक ही है, और इस अनजाने पिन-टू-चैनल रूपांतरण के साथ एकमात्र फ़ंक्शन है। इसे समझने के लिए आइए कुछ उदाहरणों के साथ शुरुआत करते हैं।
यदि आप analogReadपहले एनालॉग पिन पर उपयोग करना चाहते A0हैं तो आप कर सकते हैं analogRead(0)जो चैनल नंबर analogRead(A0)का उपयोग करता है या जो पिन नंबर का उपयोग करता है। यदि आप पिन नंबर संस्करण का उपयोग करने के लिए थे, analogReadतो पिन नंबर A0को उसके उचित चैनल नंबर में बदल देगा 0।
यदि आप digitalWriteपहले एनालॉग पिन पर उपयोग करना चाहते हैं तो आप केवलA0 कर सकते हैं । आंतरिक रूप से एनालॉग चैनलों का उपयोग नहीं करता है और आपको इसे चैनल नंबर पास नहीं करने देता है। ठीक है, यह आपको जाने देगा लेकिन आप गलत पिन का चयन करेंगे। वही लागू होता है और यहां तक कि ।digitalWrite(A0, x)digitalWritedigitalReadanalogWrite
पिन-टू-चैनल रूपांतरणों के बारे में क्या किया है analogRead? उस फ़ंक्शन का स्रोत hardware/arduino/avr/cores/arduino/wiring_analog.cआप देख सकते हैं कि यह बोर्ड प्रकार के आधार पर कुछ सरल घटाव करता है। A0/ A1/ A2/ आदि। स्थिरांक एनालॉग चैनलों के पिन नंबर का प्रतिनिधित्व करते हैं और हर जगह इस्तेमाल किया जा सकता है जो आपको एनालॉग इनपुट को संदर्भित करने की आवश्यकता है। इस कारण से वे आपके Arduino कोड में उपयोग करने के लिए सबसे अच्छा विकल्प हैं क्योंकि यह बहुत स्पष्ट है कि आप एक ही भौतिक पोर्ट का उपयोग कर रहे हैं तब भी जब आप विभिन्न कार्यों के लिए उपयोग कर रहे हैं। उन स्थिरांक की परिभाषाएं आपके बोर्ड पर निर्भर करती हैं।
उदाहरण के लिए, यहाँ Arduino Uno के लिए एनालॉग पिन डेफिनेशन कोड है hardware/arduino/avr/variants/standard/pins_arduino.h
static const uint8_t A0 = 14;
static const uint8_t A1 = 15;
static const uint8_t A2 = 16;
static const uint8_t A3 = 17;
static const uint8_t A4 = 18;
static const uint8_t A5 = 19;
static const uint8_t A6 = 20;
static const uint8_t A7 = 21;
तुलना के लिए यहाँ Arduino मेगा के लिए एनालॉग पिन परिभाषा कोड है:
static const uint8_t A0 = 54;
static const uint8_t A1 = 55;
static const uint8_t A2 = 56;
[...]
static const uint8_t A13 = 67;
static const uint8_t A14 = 68;
static const uint8_t A15 = 69;
एनालॉग पिन पर आगे ईई चर्चा: क्या मैं डिजिटल के रूप में अपनी परियोजना के लिए Arduino पर एनालॉग पिन का उपयोग कर सकता हूं?