शनिवार, 15 अप्रैल 2017

Measuring analog output of Sound Sensor with Arduino

click to enlarge
पिछले आर्टिकल में हमने साउंड सेंसर का इस्तेमाल करके ताली बजाकर एलईडी को ऑन ऑफ़ किया. इसके लिए हमने एलईडी के DO - डिजिटल आउटपुट के पिन का इस्तेमाल किया. अब हम इस सेंसर के AO - एनालॉग आउटपुट वाले पिन का इस्तेमाल करेंगे. इसके इस्तेमाल से हम साउंड सेंसर के आउटपुट पर बारीकी से नियंत्रण रख सकते हैं.


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

इस सेंसर के पोटेंशियोमीटर के नॉब से हम एक पॉइंट सेट कर सकते हैं, लेकिन उस समय आपको यह भी महसूस हुआ होगा की आपको ताली बड़े जोर से बजानी पड़ रही है, या फिर सेंसर के बहुत करीब जा  कर ताली बजाने पर ही सेंसर प्रतिक्रया कर रहा है. ऐसे में आपको सेंसिटिविटी बढाने के लिए नॉब को हलकासा क्लोंक वाईज घुमाना पड सकता है, लेकिन तब हरे रंग की एलईडी जल उठती है, ऐसा होने पर हम इस सेंसर का इस्तेमाल सही ढंग से नहीं कर पाएंगे. और फिर आप उसे  एंटी क्लॉक वाइज घुमाते हो तो उसकी सेंसिटिविटी कम हो जाती है.

पिछले एक्सपेरिमेंट से इस एक्सपेरिमेंट केवल एक ही बात अलग है और वह यह की हम सेंसर के AO पिन को आर्दुइनो के A0 पिन से जोड़ेंगे. आर्दुइनो का A0 पिन एनालॉग इनपुट के लिए इस्तेमाल होता है.  सर्किट के बाकी सारे कनेक्शन वैसेही रहेंगे.

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

click to enlarge
इस प्रोग्राम के ino फाईल को आप इस लिंक से डाऊनलोड कर सकते हैं. \

इस प्रोग्राम में आपको Debug mode वाला हिस्सा कमेन्ट आउट किया हुआ दिखाई देगा. कम्प्यूटर के ऊपर सिरिअल मोनिटर पर रीडिंग देखने के लिए आपको इसका कमेन्ट वाला मार्किंग  /* और */ हटा देना होगा. इसके बाद प्रोग्राम को दोबारा सेव्ह कर लीजिये.

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


इसमें आपको जो रीडिंग दिखाई देगी वह साउंड सेंसर की मौजूदा रीडिंग दिखाती है. यह रीडिंग आपके कमरे में मौजूद ध्वनि की तीव्रता दर्शाती है. इस समय अगर आप अपने कमरे में सेंसर के पास जोर की आवाज करोगे तो आपको यह रीडिंग बड़ी हुई दिखाई देगी.  चूँकि यह लगातार रीडिंग दीखता रहता है,  बढी हुई रीडिंग को जांचने के लिए कमरे मैं सेंसर के पास कोई म्यूजिक चला कर देखिये.

अब इस रीडिंग को, याने बिना शोर शराबे के समय जो दीखता है उसे नोट कर लीजिये. इसके बाद Debug mode को पहले की तरह कमेन्ट वाला मार्किंग  /* और */ जोड़ दीजिये और आपने सेंसर की जो वैल्यू नोट की है उसमें 15 से लेकर  20 तक नंबर जोड़ कर उसे threshold की वैल्यू को प्रोग्राम में रिप्लेस कर दीजिये. अब
प्रोग्राम को सेव्ह कर लीजिये. और प्रोग्राम को दोबारा अपलोड कीजिये.

Debug mode को तभी इस्तेमाल करना चाहिए जब आपको सेंसर की वैल्यू को स्क्रीन पर देखना हो, वरना इसे कमेन्ट आउट कर के रखिये. वरना ये आपके अर्दुइनो को धीमा/ स्लो कर देगा, जिससे आपके एक्सपेरिमेंट के सही परिणाम आपको नहीं मिलेंगे.

अब ब्रेड बोर्ड पर लगी हुई एलईडी को देखिये. अगर वह ना जल रही हो तो ताली बजाकर देखिये उसमें रोशनी आती है या नहीं. और अगर बिना ताली बजाये ही एलईडी में रोशनी आती है तो threshold  में एक दो नंबर और जोड़ दीजिये. और ये बात यद् रखिये की आपने अर्दुइनो के प्रोग्राम में कोई भी चेंज किया तो हर बार उसे पाहे सेव कर लीजिये और उसे अपलोड कीजिये. अगर आप पप्रोग्राम को अपलोड करना भूल गए तो उसमें किये गए चेंजेस का अर्दुइनो को पताही नहीं चलेगा.

जैसे हम पोटेंशियो मीटर का नॉब घुमाकर सेंसिटिविटी एडजस्ट करते थे उसी तरह यहाँ पर हम सेंसर के करंट रीडिंग में 10 से 15 नंबर जोड़कर सेंसर की सेंसिटिविटी को कंट्रोल कर सकते है.  

साउंड सेंसर के एनालॉग आउटपुट के बहुतसे एक्सपेरिमेंट आपको इन्टरनेट पर मिल जायेंगे. अगर मुझे कोई अच्छा उदाहरण मिल जाये तो मैं आपको उसे जरूर बताऊंगा.