- सामग्री की आवश्यकता:
- सर्किट आरेख:
- एडीसी मान से डीबी की गणना करने के लिए प्रतिगमन विधि का उपयोग करना:
- Arbino dB में ध्वनि स्तर को मापने के लिए कार्यक्रम:
- Arduino ध्वनि स्तर मीटर का कार्य:
- फिल्टर सर्किट के साथ एम्पलीफायर:
उच्च जनसंख्या घनत्व के कारण शोर प्रदूषण वास्तव में महत्व प्राप्त करने लगा है। एक सामान्य मानव कान 0dB से 140dB तक ध्वनि स्तर सुन सकता है जिसमें 120dB से 140dB तक ध्वनि स्तर शोर माना जाता है। लाउडनेस या ध्वनि स्तर को आमतौर पर डेसीबल (डीबी) में मापा जाता है, हमारे पास कुछ उपकरण हैं जो डीबी में ध्वनि संकेतों को माप सकते हैं लेकिन ये मीटर थोड़े महंगे हैं और दुख की बात यह है कि हमारे पास डेसीबल में ध्वनि स्तर को मापने के लिए आउट ऑफ बॉक्स सेंसर मॉड्यूल नहीं है। और एक छोटे से Arduino प्रोजेक्ट के लिए महंगे माइक्रोफोन खरीदने के लिए किफायती नहीं है जो एक छोटे कक्षा या लिविंग रूम में ध्वनि स्तर को मापना चाहिए ।
तो इस परियोजना में हम Arduino के साथ एक सामान्य इलेक्ट्रेट कंडेनसर माइक्रोफोन का उपयोग करेंगे और वास्तविक मूल्य के जितना संभव हो सके dB में ध्वनि या ध्वनि प्रदूषण स्तर को मापने का प्रयास करेंगे। हम ध्वनि संकेतों को बढ़ाने के लिए एक सामान्य एम्पलीफायर सर्किट का उपयोग करेंगे और इसे Arduino को खिलाएंगे जिसमें हम dB में ध्वनि संकेतों की गणना करने के लिए प्रतिगमन विधि का उपयोग करेंगे। यह देखने के लिए कि क्या प्राप्त मान सही हैं, हम "साउंड मीटर" एंड्रॉइड एप्लिकेशन का उपयोग कर सकते हैं, यदि आपके पास बेहतर मीटर है तो आप कैलिब्रेशन के लिए उपयोग कर सकते हैं। ध्यान दें कि इस परियोजना का उद्देश्य डीबी को सही तरीके से मापना नहीं है और यह वास्तविक मूल्य के जितना संभव हो उतना ही मान देगा।
सामग्री की आवश्यकता:
- Arduino UNO
- माइक्रोफ़ोन
- LM386
- 10K चर पॉट
- प्रतिरोध और कैपेसिटर
सर्किट आरेख:
इस Arduino ध्वनि स्तर मीटर के लिए सर्किट एक बहुत ही सरल है जिसमें हमने LM386 ऑडियो एम्पलीफायर सर्किट का उपयोग एक कंडेनसर माइक्रोफोन से संकेतों को बढ़ाने और इसे Arduino के एनालॉग पोर्ट में आपूर्ति करने के लिए किया है। हम पहले से ही कम वोल्टेज ऑडियो एम्पलीफायर सर्किट का निर्माण करने के लिए इस LM386 आईसी का उपयोग कर चुके हैं और सर्किट कमोबेश यही रहता है।
इस विशेष ऑप-एम्प का लाभ पिन 1 और 8 के एक रेज़िस्टर या कैपेसिटर का उपयोग करके 20 से 200 तक सेट किया जा सकता है। यदि उन्हें खाली छोड़ दिया जाता है, तो लाभ डिफ़ॉल्ट रूप से 20 के रूप में सेट किया जाएगा। हमारी परियोजना के लिए हम इस सर्किट द्वारा अधिकतम संभव लाभ प्राप्त करते हैं, इसलिए हम 1 और 8 पिन के बीच मूल्य 10uF के संधारित्र का उपयोग करते हैं, ध्यान दें कि यह पिन ध्रुवीयता संवेदनशील है और संधारित्र का ऋणात्मक पिन पिन से जुड़ा होना चाहिए। पूरा एम्पलीफायर सर्किट Arduino से 5V पिन द्वारा संचालित होता है।
कैपेसिटर C2 का उपयोग माइक्रोफोन से डीसी शोर को फ़िल्टर करने के लिए किया जाता है। मूल रूप से जब माइक्रोफ़ोन सेंस ध्वनि करता है तो ध्वनि तरंगों को एसी सिग्नल में बदल दिया जाएगा। इस एसी सिग्नल में कुछ डीसी शोर हो सकता है जो इसे संधारित्र द्वारा फ़िल्टर किया जाएगा। इसी तरह, प्रवर्धन के बाद भी एक संधारित्र सी 3 का उपयोग किसी भी डीसी शोर को फ़िल्टर करने के लिए किया जाता है जिसे प्रवर्धन के दौरान जोड़ा जा सकता है।
एडीसी मान से डीबी की गणना करने के लिए प्रतिगमन विधि का उपयोग करना:
एक बार जब हम अपने सर्किट के साथ तैयार हो जाते हैं तो हम Arduino को कंप्यूटर से जोड़ सकते हैं और Arduino से "एनालॉग रीड सीरियल" उदाहरण कार्यक्रम को अपलोड कर सकते हैं ताकि यह जांचा जा सके कि क्या हम अपने माइक्रोफोन से ADC मान प्राप्त कर रहे हैं। अब हमें इस ADC मानों को dB में बदलना है।
तापमान या आर्द्रता को मापने जैसे अन्य मूल्यों के विपरीत, डीबी को मापना एक सीधा काम नहीं है। क्योंकि ADB के मान के साथ dB का मान रैखिक नहीं है । ऐसे कुछ तरीके हैं, जिन पर आप पहुँच सकते हैं, लेकिन मैंने जो भी संभव कोशिश की, मुझे अच्छे परिणाम नहीं मिले। आप इस Arduino फोरम के माध्यम से यहां पढ़ सकते हैं यदि आप इसे आजमाना चाहते हैं।
मेरे आवेदन के लिए, मुझे डीबी मानों को मापने के दौरान बहुत सटीकता की आवश्यकता नहीं थी और इसलिए डीबी मूल्यों के साथ एडीसी मूल्यों को सीधे कैलिब्रेट करने के एक आसान तरीके का उपयोग करने का निर्णय लिया। इस पद्धति के लिए, हमें एक SPL मीटर की आवश्यकता होगी (एक SPL मीटर एक ऐसा उपकरण है जो dB मानों को पढ़ सकता है और इसे प्रदर्शित कर सकता है), लेकिन दुख की बात है कि मेरे पास एक नहीं था और यकीन है कि हम में से अधिकांश नहीं करेंगे। तो हम "साउंड मीटर" नामक एंड्रॉइड एप्लिकेशन का उपयोग कर सकते हैं, जिसे मुफ्त में प्ले स्टोर से डाउनलोड किया जा सकता है। इस तरह के कई एप्लिकेशन हैं और आप अपनी पसंद का कुछ भी डाउनलोड कर सकते हैं। ये एप्लिकेशन शोर स्तर का पता लगाने और इसे हमारे मोबाइल पर प्रदर्शित करने के लिए फोन के इनबिल्ट माइक्रोफोन का उपयोग करते हैं। वे बहुत सटीक नहीं हैं, लेकिन निश्चित रूप से हमारे कार्य के लिए काम करेंगे। तो चलिए शुरू करते हैं एंड्रॉइड एप्लिकेशन को इंस्टॉल करके, मेरा जब खोला गया तो नीचे कुछ इस तरह से देखा गया
जैसा कि मैंने पहले कहा था कि डीबी और एनालॉग मूल्यों के बीच संबंध रैखिक नहीं होगा, इसलिए हमें अलग-अलग अंतराल पर इन दो मूल्यों की तुलना करने की आवश्यकता है। बस अपने मोबाइल फोन पर प्रदर्शित विभिन्न डीबी के लिए स्क्रीन पर प्रदर्शित होने वाले एडीसी के मूल्य पर ध्यान दें। मैंने लगभग 10 रीडिंग लीं और वे नीचे इस तरह दिखते थे, आप थोड़ा भिन्न हो सकते हैं
एक एक्सेल पृष्ठ खोलें और इन मानों को टाइप करें, अब हम उपरोक्त संख्या के लिए प्रतिगमन मानों को खोजने के लिए एक्सेल का उपयोग करेंगे। इससे पहले कि चलो एक ग्राफ तैयार करें और जांचें कि वे दोनों किस तरह से संबंधित हैं, मेरा नीचे इस तरह दिखता था।
जैसा कि हम देख सकते हैं कि dB का मान ADC के साथ रैखिक रूप से संबंधित नहीं है, जिसका अर्थ है कि आप सभी ADC मानों के लिए इसका समान dB मान प्राप्त करने के लिए एक सामान्य गुणक नहीं रख सकते हैं। ऐसे मामले में हम "रैखिक प्रतिगमन" विधि का उपयोग कर सकते हैं । मूल रूप से, यह इस अनियमित नीली रेखा को निकटतम संभव सीधी रेखा (काली रेखा) में परिवर्तित करेगा और हमें उस सीधी रेखा का समीकरण देगा। इस समीकरण का उपयोग एडीसी के प्रत्येक मूल्य के लिए डीबी के बराबर मूल्य को खोजने के लिए किया जा सकता है जो कि Arduino मापता है।
एक्सेल में हमारे पास डेटा विश्लेषण के लिए एक प्लग-इन है जो स्वचालित रूप से आपके मूल्यों के सेट के लिए प्रतिगमन की गणना करेगा और इसके डेटा को प्रकाशित करेगा। मैं इस परियोजना के दायरे से बाहर होने के बाद इसे एक्सेल के साथ कैसे किया जा सकता हूं, इसके बारे में Google के लिए भी आसान है और इसे सीखें। एक बार जब आप मूल्य के लिए प्रतिगमन की गणना करते हैं, तो एक्सेल नीचे दिखाए गए जैसे कुछ मान देगा। हम केवल उन संख्याओं में रुचि रखते हैं जो नीचे हाइलाइट किए गए हैं।
एक बार जब आप इन नंबरों को प्राप्त करते हैं, तो आप नीचे दिए गए समीकरण बनाने में सक्षम होंगे जैसे
एडीसी = (11.003 * डीबी) - 83.2073
जिससे आप dB को प्राप्त कर सकते हैं
dB = (ADC + 83.2073) / 11.003
अंशांकन भिन्न हो सकता है क्योंकि आप अपने खुद के समीकरण ड्राइव करने के लिए हो सकता है। हालांकि, इस मूल्य को सुरक्षित रखें क्योंकि हमें Arduino की प्रोग्रामिंग करते समय इसकी आवश्यकता होगी।
Arbino dB में ध्वनि स्तर को मापने के लिए कार्यक्रम:
डीबी को मापने का पूरा कार्यक्रम नीचे दिया गया है, कुछ महत्वपूर्ण लाइनें नीचे दी गई हैं
इन दो लाइनों के ऊपर, हम पिन A0 के ADC मान को पढ़ते हैं और इसे समीकरण के उपयोग से dB में परिवर्तित करते हैं जो हमने अभी प्राप्त किया है। यह डीबी मूल्य हम सही डीबी मूल्य के लिए सटीक नहीं हो सकता है, लेकिन मोबाइल एप्लिकेशन पर प्रदर्शित मूल्यों के बहुत करीब रहता है।
adc = analogRead (MIC); // एम्पलीफायर डीबी = (एडीसी + 83.2073) / 11.003 से एडीसी मान पढ़ें; // प्रतिगमन मूल्यों का उपयोग करते हुए ADC मान को dB में बदलें
यह जांचने के लिए कि क्या प्रोग्राम ठीक से काम कर रहा है, हमने भी डिजिटल पिन 3 में एक एलईडी जोड़ा है जो 1 सेकंड के लिए उच्च जाने के लिए बनाया गया है जब Arduino 60dB से ऊपर का जोर शोर मापता है।
if (dB> 60) {digitalWrite (3, उच्च); // एलईडी चालू करें (उच्च वोल्टेज स्तर है) देरी (1000); // एक दूसरे digitalWrite (3, LOW) की प्रतीक्षा करें; }
Arduino ध्वनि स्तर मीटर का कार्य:
एक बार जब आप कोड और हार्डवेयर के साथ तैयार हो जाते हैं, तो बस कोड अपलोड करें और अपने सीरियल मॉनिटर को अपने Arduino द्वारा मापा डीबी मानों को देखने के लिए खोलें। मैं अपने कमरे में इस कोड का परीक्षण कर रहा था, जहां बाहर के ट्रैफ़िक को छोड़कर ज़्यादा शोर नहीं था और मुझे अपने सीरियल मॉनिटर पर नीचे दिए गए मान मिले और Android एप्लिकेशन ने भी इसके करीब कुछ प्रदर्शित किया
इस पृष्ठ के अंत में दिए गए वीडियो पर परियोजना का पूरा काम किया जा सकता है । आप कमरे में ध्वनि का पता लगाने के लिए परियोजना का उपयोग कर सकते हैं और जांच कर सकते हैं कि क्या कोई गतिविधि है या प्रत्येक कक्षा में शोर उत्पन्न होता है या ऐसा कुछ। अगर मैंने 60dB से ऊपर की ध्वनि रिकॉर्ड की है तो मैंने 2 सेकंड के लिए उच्च स्तर पर जाने के लिए एक एलईडी बनाई है।
काम अजीब तरह से संतोषजनक है, लेकिन निश्चित रूप से परियोजनाओं और अन्य बुनियादी प्रोटोटाइप के लिए इस्तेमाल किया जा सकता है। कुछ और खुदाई के साथ मैंने पाया कि समस्या वास्तव में हार्डवेयर के साथ थी, जो अभी भी मुझे शोर दे रही थी। इसलिए मैंने अन्य सर्किट की कोशिश की, जो स्पार्क फन माइक्रोफोन बोर्डों में उपयोग किया जाता है जिसमें कम-पास और उच्च-पास फिल्टर होते हैं। मैंने आपके लिए नीचे दिए गए सर्किट को आजमाया है।
फिल्टर सर्किट के साथ एम्पलीफायर:
यहां हमने इस ध्वनि स्तर माप सर्किट में शोर को कम करने के लिए एम्पलीफायर के साथ कम पास और उच्च पास फिल्टर का उपयोग किया है ताकि सटीकता बढ़ाई जा सके।
इस उपरोक्त सर्किट में, हमने माइक्रोफोन से संकेतों को बढ़ाने के लिए लोकप्रिय LM358 एम्पलीफायर का उपयोग किया है। एम्पलीफायर के साथ हमने दो फिल्टर का भी उपयोग किया है, उच्च-पास फिल्टर आर 5, सी 2 द्वारा गठित है और कम-पास फिल्टर का उपयोग सी 1 और आर 2 द्वारा किया जाता है । ये फ़िल्टर केवल 8Hz से 10KHz तक आवृत्ति की अनुमति देने के लिए डिज़ाइन किए गए हैं, क्योंकि कम पास-फ़िल्टर 8Hz से नीचे कुछ भी फ़िल्टर करेगा और उच्च पास फ़िल्टर 15KHz से ऊपर कुछ भी फ़िल्टर करेगा। यह फ़्रीक्वेंसी रेंज सेलेक्ट है क्योंकि मेरा कंडेनसर माइक्रोफोन केवल 10Hz से 15KHZ तक काम करता है जैसा कि नीचे डेटशीट में दिखाया गया है।
यदि आपकी आवृत्ति की मांग में परिवर्तन होता है, तो आप अपनी आवश्यक आवृत्ति के लिए रोकनेवाला और संधारित्र के मूल्य की गणना करने के लिए नीचे दिए गए सूत्रों का उपयोग कर सकते हैं।
फ़्रीक्वेंसी (F) = 1 / (2πRC)
इसके अलावा, ध्यान दें कि यहां इस्तेमाल किया गया रोकनेवाला का मूल्य एम्पलीफायर के लाभ को भी प्रभावित करेगा। इस सर्किट में उपयोग किए जाने वाले प्रतिरोध और संधारित्र के मूल्य की गणना नीचे दिखाई गई है। फ़्रीक्वेंसी के मूल्यों को संशोधित करने और प्रतिगमन मूल्यों की गणना के लिए आप यहाँ से एक्सेल शीट डाउनलोड कर सकते हैं।
पूर्व सर्किट ने मेरी अपेक्षाओं के लिए संतोषजनक काम किया, इसलिए मैंने कभी भी इसकी कोशिश नहीं की। यदि आप इस सर्किट को आज़माने के लिए होते हैं तो मुझे बताएं कि क्या यह टिप्पणियों के माध्यम से पिछले एक से बेहतर है।