मंगलवार, 28 मार्च 2017

Switch Bouncing and Debouncing in Hindi

(फोटो को बड़ा करने के लिए क्लिक करें)

यह एक्सपेरिमेंट इसके पहले वाले की तरह ही है  सारे कॉम्पोनंट और सर्किट पहलेवाले एक्सपेरिमेंट के ही हैं. लेकिन उस एक्सपेरिमेंट में एलइडी आम तौर पर जली हुई या बुझी हुई होती थी, और मोमेंटरी स्वीच दबानेपर उसकी स्थिती ऑन/ ऑफ तब तक बदलती थी जब तक स्वीच को दबा कर रखा जाता था.

इसकी बजाय अगर आम स्वीच की तरह एलइडीको ऑन/ ऑफ करना हो तो हमें उसके लिए सिर्फ प्रोग्राम में बदलाव करना पडेगा. यह प्रोग्राम आर्डूइनो के प्रोग्रामिंग सॉफ्टवेअर में

File - Examples - Digital - Debounce

इस जगह पर मिलेगा. लेकिन इसका नाम टॉगल की बजाय डीबाउंस क्यों रखा गया ? इसके लिए हमें यहाँ पर कौनसी चीज बाऊंस हो रही है यह जानना होगा

Components

  • Arduino Uno's board with USB cable
  • one breadboard small
  • one Tact Switch
  • one LED
  • Resistors 220 Ohms, 10 K Ohms, one each.
  • Jumper wires (Male-Male)
इस एक्सपेरिमेंट के लिए जरूरी सारी चीजें आपको आर्डूइनो उनो के किसी स्टार्टर किट में मिलेंगी. आपने अब तक कोई किट नही खरीदा है तो इस पन्ने के दाहिनी ओर दिखने वाले लिंक पर आप कोई किट खरीद सकते हैं.

Prerequisite

इस एक्सपेरिमेंट के लिए आपको आर्डूइनोके  प्रोग्रामिंग सॉफ्टवेअर की आवश्यकता होगी.  उसे अपने कॉम्प्युटर पर इंस्टॉल करना होगा. अगर आपने अबतक ऐसा नहीं किया है  तो इस लिंक से  आप डाउनलोड कर सकते हैं


Circuit

इस एक्सपेरिमेंट में हम जो सर्किट बनायेंगे उसका वायरिंग डायग्राम नीचे दिखाया गया है.

LED Toggle switch 

(फोटो को बड़ा करने के लिए क्लिक करें)

यहाँ हमने आर्डूइनो उनो के दो  डिजिटल पोर्ट इस्तेमाल किये हैं. पिन 13 और  2. हमने एक टॅक्ट / मोमेंटरी स्वीच का भी इस्तेमाल किया है. इस सर्किट के बारे में विस्तार से मैंने पिछले आर्टिकल में समझाया है. जरूरत पड़ने पर आप उसे पढ़ सकते हैं.

अब हम आर्डूइनो उनो के बोर्ड को युएसबी केबल से कम्प्युटर से जोड़ेंगे और आर्डूइनो का प्रोग्रामिंग सॉफ्टवेअर ओपन कर के उसमें नीचे वाला प्रोग्राम खोलेंगे

File - Examples - Digital - Debounce
इसे अपलोड करने के लिए अपलोड का आईकॉन क्लिक कीजिये या  Skecth - Upload इस मेनू पर क्लिक कीजिये.

प्रोग्राम अपलोड होने के बाद आप एलइडी को आम स्वीच की तरह बटन दबाकर ऑन/ ऑफ कर सकते हैं.

लेकिन इसमें  Debounce क्या है ? इसे समझने के लिए  कोई स्वीच कैसे बाउंस होता है इसे समझेंगे. इसके लिए हमें एक और प्रोग्राम इस्तेमाल करना पडेग. इस प्रोग्राम को मैंने  इस लिंक पर  अपलोड किया है वहां पर अप उसे पढ़ सकते हैं.

उसके साथ ही यह फाईल Toggle.ino आप डाउनलोड भी कर सकते हैं. यह प्रोग्राम आप आर्डूइनो उनो के बोर्ड पर सीधे अपलोड भी कर सकते हैं.

अब अगर आप स्वीच दबायेंगे तो एलइडी जल उठेगी और दोबारा दबाने पर बुझ जाएगी. हमने इसका प्रोग्राम इस तरह टॉगल करने के लिए बनाया है.

लेकिन इसमें शुरुआत के कुछ मिली सेकण्ड तक स्विच के कॉंटॅक्ट में जो बाउन्सिंग होती है उससे मायक्रो प्रोसेसर को लगातार हाय / लो सिग्नल मिलता है और मायक्रो प्रोसेसर इसे कार्यान्वित भी करता है. इससे एक मिली सेकण्ड में कई बार एलइडी जलेगी / बुझेगी लेकिन यह इतनी तेजीसे होता है की हम उसे नहीं देख पाते, लेकिन जब स्विच स्थिर होता है तब अपलोड किये हुए प्रोग्राम के हिसाब से  उसे टॉगल होना चाहिए. मगर ऐसा ही हर बार होगा यह जरूरी नहीं, बाउन्सिंग के कारण हमें अप्रत्याशित परिणाम देखने को मिल जायेंगे.


Bouncing and Debouncing





इस स्वीच के उपरी बटन के नीचे  (3) धातू की एक छोटी  गोलाकार टिकिया होती है . इस स्वीच का बटन (2) जब हम दबाते है तब यह गोलाकार प्लेट नीचे वाले पिनों के उपरी हिस्से  (5) से जुडती है और सर्किट पूरा होकर उसमें से बिजली बहने लगती है और बटन पर से ऊँगली हटाने पर कॉंटॅक्ट ख़त्म होता है. इसको (SPST - single pole single throw) कहा जता है, और यह स्विच Normally Open होता है.


जब भी धातु के दो टुकड़े एक दुसरे से टकराते हैं तब उनमें कंपन होगा. यहाँ पर भी उपरी प्लेट कम्पने लगेगी. यह कंपन बहुत ही कम जगह में और कम समय के लिए होता है. लेकिन उतनी कम जगह में और कम समय के लिए बटन लगातार चालू बंद होने लगता है. 

यह प्लेट एक मिली सेकण्ड यानी सेकण्ड के एक हजारवें हिस्से में कई बार थरथराती है. यह थरथराना कुछ मिली सेकण्ड तक चल सकता है. इस थरथराने के कारण होनेवाले अप्रत्याशित परिणामों से बचने के लिए प्रोग्रामिंग का सहारा लिया जा सकता है. इसे सॉफ्टवेअर डीबाउन्सिंग कहते हैं. क्यों की हमारे सर्किट में एक प्रोग्रामेबल मायक्रो प्रोसेसर है हम इसका इस्तेमाल कर सकते हैं. अगर आपके सर्किट में कोई मायक्रो प्रोसेसर न हो तो आपको  डीबाउन्सिंग के लिए कपॅसिटर और रेजिस्टर आदि का इस्तेमाल करना होगा. इसे हार्डवेअर डीबाउन्सिंग कहते  हैं.

इसलिए हम प्रोग्राम बटन दबाने पर में 50 मिली सेकण्ड तक वेट करते हैं और फिर अगला कोड कार्यान्वित करते हैं. 

ऊपर दिया हुआ कोड टॉगल ऑन/ ऑफ के लिए है, इसमें डीबाउन्सिंग नहीं है.  अब जो नीचे दिया हुआ कोड है इस में डीबाउंसिंग का कोड जोड़ा गया है. यह नया कोड आप  इस  लिंक पर  पढ़ सकते हैं.

और इस कोड को आप  toggle_with_debounce.ino डाउनलोड करके उसे सीधे आर्डूइनो उनो के बोर्ड पर  अपलोड कर सकते हैं.

Summary

इस आर्टिकल में हमने मोमेंटरी स्वीच को टॉगल ऑन/ ऑफ स्वीच की तरह प्रोग्रामिंग की सहायता से कैसे इस्तेमाल किया जा सकता है यह देखा. और साथ ही किसी स्वीच में कॉंटॅक्ट बाउंस का परिणाम सर्किट में कैसे होता है और उससे प्रोग्रामिंग की सहायता से कैसे बचा जा सकता है यह देखा.