टारन फॉक्सवर्थ द्वारा
यदि आपने कभी Arduino से एक बटन जोड़ा है, तो आप इस डायग्राम से मिले होंगे:
पहले, यह भ्रमित करने वाला हो सकता है। मेरा पहला विचार: "मुझे रेसिस्टर की आवश्यकता क्यों है? मैं बस चाहता हूं कि यह मुझे बताए कि बटन दबाया गया है या नहीं।"
बहुत पढ़ने के बाद, कोई सरल व्याख्या नहीं मिली।
यहां क्या हो रहा है
डायग्राम 1
उस बटन में - जिसे स्विच भी कहते हैं - तार "H" के आकार में होते हैं। लेकिन बीच जुड़ा नहीं होता - या सर्किट जुड़ा नहीं होता - जब तक हम बटन नहीं दबाते।
वास्तव में में, हम Arduino से 0 पढ़ना चाहते हैं जब कुछ भी जुड़ा नहीं है और 1 जब बटन दबाया जाता है।
Arduino पर, इसे जनरल पर्पस इनपुट आउटपुट (GPIO) कहा जाता है।
तो, हम ऐसा कुछ कर सकते हैं:
डायग्राम 2
हम पॉजिटिव (5v, 3.3V, या VCC) को सर्किट के बाईं ओर जोड़ते हैं।
अब, जब बटन दबाया जाता है, तो GPIO 1 पढ़ेगा, और सब ठीक है।
डायग्राम 3
ठीक है, नहीं। आइए डायग्राम 2 को फिर से देखें:
डायग्राम 2
हम चाहते थे कि जब कुछ भी जुड़ा न हो तो 0 हो, लेकिन आप इसकी गारंटी कैसे दे सकते हैं? वर्तमान में, GPIO को 0 होने की गारंटी देने का कोई तरीका नहीं है।
हवा में इलेक्ट्रोमैग्नेटिक फ्रीक्वेंसी भी हैं जो आपके GPIO को 0 या 1 की ओर खींच सकती हैं। यह दोनों के बीच उतार-चढ़ाव भी कर सकता है! इस तरह, हम यह सुनिश्चित नहीं कर सकते कि यह 0 है (मैं पहेलियों में बहुत बुरा हूं)। इसे लॉजिकल 0 के रूप में भी जाना जाता है।
लॉजिकल 0 प्राप्त करने का एक तरीका है पिन को ग्राउंड से बांधना:
याय! तो, अब यह एक गारंटीड लॉजिकल जीरो है। बटन दबाते समय, यह अब 1 होने वाला है। सही?
ठीक है, नहीं।
आपने अभी एक शॉर्ट सर्किट बना दिया। ?
यहीं रेसिस्टर काम आता है। शॉर्ट सर्किट से बचने के लिए, हमें अपने सर्किट में प्रतिरोध जोड़ने की आवश्यकता है। रेसिस्टर चीजों को नियंत्रण में रखता है।
बिजली कम से कम प्रतिरोध का रास्ता अपनाएगी। आपका GPIO अब बटन दबाए जाने पर 1 रजिस्टर करेगा। जैसे:
डायग्राम
वू हू! अब हम किसी चीज के साथ काम कर रहे हैं।
अब आइए विपरीत देखें: पुल-अप रेसिस्टर्स। यह वही चीज है लेकिन उल्टा। जब बटन नहीं दबाया जाता, तो GPIO 1 रजिस्टर करेगा। जब आप बटन दबाते हैं, तो GPIO 0 होगा।
दबाए न होने पर, हमारे पास GPIO पॉजिटिव (VCC) से जुड़ा होता है। तो, जो भी करंट वहां है वह पुल-अप हो जाएगा ताकि GPIO लॉजिकल 1 रजिस्टर करे।
डायग्राम
यह ध्यान रखना महत्वपूर्ण है कि बिजली हमेशा ग्राउंड जाना चाहती है। तो, जब हम बटन दबाते हैं, तो जो करंट बह रहा है वह ग्राउंड की ओर बहेगा। इस प्रकार, जो करंट GPIO की ओर जा रहा होता वह उसके साथ चला जाता है, जिससे GPIO लॉजिकल 0 पर रह जाता है।
डायग्राम
? अंत।
मैंने यह क्यों लिखा?
मैं सितंबर 2016 में Losant में शामिल हुआ बिना किसी हार्डवेयर अनुभव के। हर हार्डवेयर स्टार्टर किट आपको इस अवधारणा की व्याख्या के बिना एक बटन देती है। उम्मीद है, यह आपका बल्ब भी जला देगा। ?
यह केवल सतह को खरोंचता है। यदि आप गहराई से जाना चाहते हैं, तो इन संसाधनों को देखें:
पुल-अप रेसिस्टर्स - learn.sparkfun.com
_एक और बात बताना है कि पुल-अप के लिए प्रतिरोध जितना बड़ा होगा, पिन उतना धीमा प्रतिक्रिया देगा..._learn.sparkfun.com
मुझे फीडबैक पसंद है। तो, कृपया मुझे बताएं कि क्या इसमें सुधार किया जा सकता है। अगर मैंने पूरी तरह से गेंद को छोड़ दिया है, तो मुझे बताएं! मैं इसे दूसरों के लिए बेहतर बनाना पसंद करूंगा।