पुल-अप रेसिस्टर्स को समझना
ESP32 पुल-अप पिन की बारीकियों में गोता लगाने से पहले, एक सर्किट में पुल-अप रेसिस्टर्स की भूमिका को समझना महत्वपूर्ण है। जब एक डिजिटल इनपुट पिन तैरता हुआ छोड़ दिया जाता है (किसी वोल्टेज स्रोत से जुड़ा नहीं), तो यह यादृच्छिक मान पढ़ सकता है, जिससे इसके तर्क स्तर को निर्धारित करना मुश्किल हो जाता है।
इस समस्या से बचने के लिए, इनपुट पिन और एक वोल्टेज स्रोत (आमतौर पर Vcc) के बीच एक पुल-अप रेसिस्टर जुड़ा होता है ताकि यह सुनिश्चित हो सके कि इनपुट डिफ़ॉल्ट रूप से एक उच्च (तार्किक 1) स्थिति पढ़ता है। जब इनपुट कम (तार्किक 0) सिग्नल से जुड़ा होता है, तो रोकनेवाला इनपुट को नीचे की ओर खींचता है, जिससे इनपुट को निम्न स्थिति पढ़ने की अनुमति मिलती है।
ESP32 पर बिल्ट-इन पुल-अप पिन
ESP32 माइक्रोकंट्रोलर में 34 सामान्य-उद्देश्य इनपुट/आउटपुट (GPIO) पिन होते हैं, जिन्हें डिजिटल या एनालॉग पिन के रूप में कॉन्फ़िगर किया जा सकता है। इन 34 पिनों में से कुछ पिनों में बिल्ट-इन पुल-अप रेसिस्टर्स होते हैं जिन्हें सॉफ्टवेयर द्वारा सक्षम किया जा सकता है।
निम्न तालिका ESP32 पर पिन दिखाती है जिसमें अंतर्निहित पुल-अप प्रतिरोधक होते हैं:
पिन नंबर | पिन नाम | बिल्ट-इन पुल-अप रेसिस्टर |
0 | GPIO0 | हाँ |
2 | GPIO2 | हाँ |
4 | GPIO4 | हाँ |
5 | जीपीआईओ5 | हाँ |
12 | GPIO12 | हाँ |
13 | जीपीआईओ13 | हाँ |
14 | जीपीआईओ14 | हाँ |
पंद्रह | GPIO15 | हाँ |
25 | GPIO25 | हाँ |
26 | GPIO26 | हाँ |
27 | GPIO27 | हाँ |
32 | GPIO32 | हाँ |
33 | GPIO33 | हाँ |
3. 4 | GPIO34 | नहीं |
35 | GPIO35 | नहीं |
36 | GPIO36 | नहीं |
39 | GPIO39 | नहीं |
जैसा कि आप देख सकते हैं, ESP32 पर अधिकांश डिजिटल पिन में बिल्ट-इन पुल-अप रेसिस्टर्स होते हैं। हालाँकि, सभी पिनों में यह सुविधा नहीं होती है। पिन 34, 35, 36 और 39 में बिल्ट-इन पुल-अप रेसिस्टर्स नहीं हैं।
टिप्पणी: ESP32 में, एकीकृत पुल-अप और पुल-डाउन प्रतिरोध केवल उन पिनों में उपलब्ध हैं जो इनपुट और आउटपुट दोनों का समर्थन करते हैं। जीपीआईओ 34-39 , जो केवल-इनपुट तक ही सीमित हैं, इन प्रतिरोधों को अंतर्निर्मित नहीं किया गया है।
पूरी जांच करें ESP32 पिनआउट संदर्भ .
ESP32 पर पुल-अप रेसिस्टर्स को सक्षम करना
ESP32 पिन पर पुल-अप रेसिस्टर को सक्षम करने के लिए, आप इसका उपयोग कर सकते हैं gpio_set_pull_mode () ईएसपी-आईडीएफ ढांचे द्वारा प्रदान किया गया कार्य।
यह फ़ंक्शन दो तर्क लेता है:
- GPIO पिन नंबर
- पुल-अप मोड
पुल-अप मोड या तो हो सकता है GPIO_PULLUP_ENABLE या GPIO_PULLUP_DISABLE . यहाँ एक उदाहरण कोड है जो GPIO2 पर पुल-अप रोकनेवाला को सक्षम करता है:
#शामिल 'ड्राइवर/gpio.h'खालीपन सक्षम_पुल_अप ( ) {
gpio_set_pull_mode ( GPIO_NUM_2 , GPIO_PULLUP_ENABLE ) ;
}
पिनमोड ( 5 , INPUT_PULLUP ) ;
यह ध्यान रखना महत्वपूर्ण है कि एक पिन पर पुल-अप रोकनेवाला को सक्षम करने से इसका व्यवहार प्रभावित होगा जब पिन को आउटपुट के रूप में उपयोग किया जाता है। इस स्थिति में, पुल-अप रोकनेवाला एक कमजोर वर्तमान स्रोत के रूप में कार्य करेगा और आउटपुट वोल्टेज स्तर को प्रभावित कर सकता है।
वैकल्पिक रूप से, हम ESP32 का उपयोग करके आंतरिक पुल-अप को भी सक्षम कर सकते हैं पिनमोड () Arduino समारोह।
पिनमोड ( 5 , INPUT_PULLUP ) ;उपरोक्त कोड पिन पर आंतरिक पुल-अप रोकनेवाला को सक्षम करेगा 5 . इसी तरह, आप मोड निर्दिष्ट करके आंतरिक पुल-डाउन रोकनेवाला को सक्षम कर सकते हैं INPUT_PULLDOWN .
निष्कर्ष
पुल-अप रेसिस्टर्स डिजिटल सर्किट में आवश्यक घटक हैं, और ESP32 माइक्रोकंट्रोलर अपने अधिकांश डिजिटल पिनों पर बिल्ट-इन पुल-अप रेसिस्टर्स प्रदान करता है। इन प्रतिरोधों को सक्षम करने से स्थिर तर्क स्तर सुनिश्चित हो सकते हैं और फ़्लोटिंग इनपुट मुद्दों से बच सकते हैं। हालाँकि, यह ध्यान रखना महत्वपूर्ण है कि ESP32 पर सभी पिनों में बिल्ट-इन पुल-अप रेसिस्टर्स नहीं होते हैं, इसलिए यह जाँचना महत्वपूर्ण है ESP32 पिनआउट या सर्किट डिजाइन करने से पहले डेटाशीट। इसके अतिरिक्त, पुल-अप रोकनेवाला को सक्षम करने से आउटपुट के रूप में उपयोग किए जाने पर पिन का व्यवहार प्रभावित हो सकता है।