शनिवार, 4 फ़रवरी 2017

Arduino Uno - Fade in Hindi



आज हम आर्डूइनोके  सॉफ्टवेअर में दिया हुआ एक उदाहरण देखेंगे.  फेड नाम का यह प्रोग्राम आपको  File - Examples - Basics - Fade इस मेनू में दिखाई देगा.

इस एक्सपेरिमेंट में इस्तेमाल होनेवाली सभी चीजें आपको आर्डूइनो उनो के किसीभी स्टार्टर किट में मिलेंगी. आपने अगर आर्डूइनोका  किट अभी तक नहीं खरीदा है तो आप  अमॅझॉनके इस लिंक पर   से कोई भी किट खरीद सकते हो.


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


click to enlarge

एलइडी को ब्रेडबोर्ड पर बिठा लें. इस एक्सपेरिमेंट के लिए रेजिस्टर को एलइडीके  किसी भी पिन से जोडा जा  सकता हैं . मैंने इसे  एलइडीके निगेटिव्ह, कॅथोड याने उसके छोटे पिनसे जोड़ा है. और रेजिस्टरके दुसरे छोर पर काली वायर जोड़ दी है. काले वायरका दूसरा छोर आर्डूइनोके Gnd के पिनसे जोड़ा है.

एलइडीके पॉजिटिव्ह, अॅनोड याने उसके लम्बे पिनको मैंने पीली वायर जोड़ दी है. पीले वायर का दूसरा छोर मैंने आर्डूइनोचके  9 नंबर के पिन से जोड़ा है.

अब इसके बाद आर्डूइनोका बोर्ड  कंप्यूटरके यूएसबी पोर्टसे जोड़ लीजिये. और कंप्यूटर में आर्डूइनोका सॉफ्टवेअर शुरू कर दीजिये.

click to enlarge
अब Fade इस प्रोग्राम को खोलिए. इसके बाद ऊपर की ओर दिखने वाले आईकॉन में से अपलोडके आईकॉन पर क्लिक कीजिए  तब यह  प्रोग्राम आर्डूइनोके  बोर्ड पर अपलोड होगा


अपलोड पूरा होतेही एलइडी की रौशनी धीरे धीरे बढ़ती हुई और फिर घटती हुई दिखाई देने लगेगी. यह  fade इस  प्रोग्राम में लिखे हुए कोड से होता है.

मैंने इस प्रोग्राम का संक्षिप्त संस्करण नीचे दिया है. यह प्रोग्राम भी आर्डूइनो पर टेस्ट किया गया है. इससे हमें इसकी प्रोग्रामिंग समझने में मदद मिलेगी. इस प्रोग्राम को समझने से आपको fade का Examples में दिया हुआ कोड समझने में आसानी होगी.


click to enlarge

प्रोग्राम की शुरुआत में हम  x और a ये  दो (इंटिजर व्हेरिअेबल्स) चर पूर्णांक शब्द या अक्षर बनाते हैं . हम इन्हे परिवर्तनशील पूर्णांक कह सकते हैं. इनका इस्तेमाल प्रोग्राम में किसी एक ही संख्या को बार बार इस्तेमाल करने की जगह पर किया जाता है. इससे किसी ख़ास वस्तु के मूल्य को प्रोग्राम में कई जगह पर लिखने की बजाय एक ही जगह पर लिखा जा सकता है. इससे आपको उस वस्तु के मूल्य को बदलने की जरूरत होने पर उसे उसके अलग अलग स्थानों पर अलग से बदलने की जरूरत नहीं होती. इससे प्रोग्रामर का काम आसान होता है.

आर्डूइनोके fade इस प्रोग्राम में आपको ऐसे बहुतसे चर शब्द (variables) मिलेंगे. उनके कारण प्रोग्राम को समझने में दिक्कत न हो इसलिए मैंने उन्हें हटा कर x और a इन अक्षरों का इस्तेमाल किया है. लेकिन दोनों तरह से लिखने पर भी एक ही तरह का काम होता है.

आर्डूइनोके प्रोग्राम में  दो प्रमुख फंक्शन होते हैं. setup() और loop()

इसमें  setup() यह फंक्शन आर्डूइनो के बोर्ड पर अपलोड होने के बाद जब भी उसे कम्प्यूटर या बैटरी से जोड़ा जाएगा तब  वह एक बार कार्यान्वित (execute) होगा. उसके उपरांत loop() यह फंक्शन बार बार लगातार कार्यान्वित होता रहेगा जबतक उसमें जान है, यानी के जब तक उसे बिजली मिलती है.

setup() में हमें सिर्फ एक फंक्शन दिखाई देता है.
pinMode(9, OUTPUT)

यहाँ पर  pinMode() यह आर्डूइनो में अन्तर्निहित  (in-built) फंक्शन है. इस फंक्शन में केवल दो प्राचल   (parameters) दिए हुए हैं. पहला प्राचल आर्डूइनो का  पिन नंबर बताता है, तो दूसरा प्राचल इस पिन पर सिग्नल को प्राप्त करना है (input) या इस पिन से सिग्नल बाहर भेजना है  (output) यह बताने के लिए है.

 
फिर इसके बाद loop() फंक्शन में  analogWrite(9, x) यह फंक्शन इस्तेमाल किया गया है. यह भी आर्डूइनो में अंतर्भूत (in-built) फंक्शन है. यहाँ पर पहला प्राचल आर्डूइनो का  पिन नंबर बताने के लिए है, तो दूसरा प्राचल  PWM ( pulse width modulation) पल्स विड्थ मॉड्युलेशन के ड्यूटी सायकल का  मूल्य दर्शाता है.

( पल्स विड्थ मॉड्युलेशन याने विद्युत् तरंगोंकी चौड़ाई को नियंत्रीत करना. जब विद्युत् तरंग कम चौड़े होते हैं तब रोशनी धीमी होती है और जैसे जैसे इनकी चौड़ाई बढ़ती है वैसे वैसे रोशनी की प्रखरता बढ़ती है  )

आर्डूइनोके  बोर्ड पर यह चौड़ाई  उसके ड्यूटी सायकल के रूप में 0 से 255 इस सीमा में बढाई या घटाई जा सकती है. loop() यह फंक्शन एकबार कार्यान्वित होने के बाद  x का मूल्य हम  5 से बढाते हैं. और जिस मात्रा में विद्युत तरंगोंकी चौड़ाई बढ़ती जाती है वैसे वैसे एलइडी से मिलने वाली रोशनी बढ़ती जाती है.  यह संख्या 255 तक पहुँचने पर  एलइडी की रोशनी सर्वाधिक तीव्र होती है . उसके बाद हम यह संख्या हरेक चक्र (cycle) में  5 से कम करते जाते हैं. x का मूल्य 0 से नीचे जानेपर हम इसका मूल्य हरेक चक्र में  5 अंक से बढाते हैं. इस कारण हमें एलइडी धीरे धीरे रोशन होती हुई और फिर धीरे धीरे बुझती हुई दिखाई देती है.

यहाँ पर प्रोग्राम में  delay() इस  फंक्शन को loop() के हरेक चक्र में कुछ समय तक रुकने के लिए किया जाता है.  यहाँ पर 30 लिखा हुआ है . यह 30 मिली सेकंद है..

अगर आप चाहो तो  a इस चर  (variable) का मूल्य कम या जादा कर के देख सकते हैं. a का मूल्य कम करने पर एलइडी के जलने बुझने का क्रम धीमा हो जाता है और a का मूल्य बढ़ने पर इसकी गति बढ़ती है..
इसी तरह से  delay() का मूल्य कम करने पर एलइडी के जलने बुझने की गती बढ़ती है और इसका मूल्य बढाने पर इसकी गती कम होती है..