इस परियोजना में हम Arduino Uno का उपयोग करके एक टोन जनरेटर विकसित करेंगे । हमारे पास यूएनओ के साथ हस्तक्षेप करने वाले बटन होंगे और उनमें से प्रत्येक टोन की अलग-अलग तीव्रता उत्पन्न करता है। UNO द्वारा उत्पन्न टोन की आवृत्ति प्रत्येक आंतरिक पर समान होती है। यह ध्वनि की तीव्रता है जो प्रत्येक प्रेस के साथ बदलती है। Arduino Uno के साथ पियानो बनाने का यह सबसे आसान तरीका है । इस पियानो सर्किट को भी देखें।
टोन को 20 तक बढ़ाया जा सकता है। यह सबसे अच्छा टोन भिन्नता और बहुत चिकनी बदलाव देता है। पीडब्लूएम (पल्स चौड़ाई मॉडुलन) द्वारा टोन की तीव्रता को बदल दिया जाता है। PWM का एक उदाहरण नीचे दिए गए ग्राफ में दिखाया गया है।
PWM में, सिग्नल की आवृत्ति या सिग्नल की समयावधि (टोन + टॉफ) हमेशा स्थिर रहती है। केवल TURN ON और TURN OFF समय के अनुपात में परिवर्तन होता है। ऊपर दिए गए चित्र में दूसरे ग्राफ में उदाहरण के लिए, TURN ON समय 80% है और TURN OFF समय पूरी अवधि का 20% है।
तीसरे ग्राफ में, TURN ON समय 50% है और TURN OFF समय पूर्ण अवधि का 50% है। तो पहले मामले में हमारा शुल्क अनुपात 80% है और दूसरे मामले में हमारा 20% का कर्तव्य अनुपात है।
ड्यूटी अनुपात में इस बदलाव के साथ हमारे पास Vrms (रूट मतलब स्क्वायर वैल्यू ऑफ वोल्टेज) में एक बदलाव होता है, जब यह वोल्टेज बजर को दिया जाता है तो जब भी ड्यूटी अनुपात में बदलाव होता है तो यह एक अलग शोर करता है।
हम प्रत्येक बटन के लिए अलग-अलग ड्यूटी अनुपात के पीडब्लूएम सिग्नल प्रदान करने के लिए यूएनओ को प्रोग्राम करने जा रहे हैं। तो हमारे पास हाथ में एक टोन जनरेटर है जो प्रत्येक बटन प्रेस के साथ एक अलग टोन उत्पन्न करता है।
अवयव आवश्यक
हार्डवेयर: Arduino Uno, बिजली की आपूर्ति (5v), 1000 uF संधारित्र, 100 nF संधारित्र, बजर, बटन (8 टुकड़े)।
सॉफ्टवेयर: AURDINO रात या Atmel स्टूडियो 6.2
सर्किट आरेख और कार्य स्पष्टीकरण
टोन जनरेटर के लिए सर्किट नीचे आरेख में दिखाया गया है।
आपूर्ति के लिए शोर को फ़िल्टर करने के लिए वोल्टेज कैपेसिटर को टर्मिनलों में रखा जाता है जैसा कि आरेख में दिखाया गया है।
Arduino Uno का PWM PCB बोर्ड पर "~" के रूप में अंकित किसी भी पिन को प्राप्त कर सकता है। UNO में छह PWM चैनल हैं। हालाँकि हम PINS 0-4 में स्थापित PWM पिन का उपयोग नहीं कर सकते, क्योंकि बटन इंटरफ़ेस के लिए PINS को प्राथमिकता दी जाती है।
PINS 0-7 को इनपुट के रूप में चुनने का एक कारण है, क्योंकि PINS 0-7 माइक्रोकंट्रोलर के PORTD का प्रतिनिधित्व करता है। तो बाद के मामले में हम PORTD का पूरा BYTE ले सकते हैं।
अब एक अलग शुल्क अनुपात PWM प्राप्त करने के लिए, हम निम्नलिखित कमांड का उपयोग करने जा रहे हैं।
analogWrite (9, VALUE); |
उपरोक्त स्थिति से हम संबंधित पिन पर सीधे PWM सिग्नल प्राप्त कर सकते हैं। ब्रैकेट में पहला पैरामीटर PWM सिग्नल के पिन नंबर को चुनने के लिए है। दूसरा पैरामीटर ड्यूटी अनुपात लिखने के लिए है।
Arduino Uno का PWM मान 0 से 255 में बदला जा सकता है। "0" के साथ सबसे कम "255" के रूप में उच्चतम है। 255 के ड्यूटी अनुपात के साथ हमें पिन 9 पर 5 वी मिलेगा। यदि ड्यूटी अनुपात 125 के रूप में दिया जाता है तो हमें PIN9 पर 2.5V मिलेगा। हम UNO के PORTD में हस्तक्षेप किए गए 8 बटन के बीच 0-250 के कर्तव्य अनुपात को विभाजित करने जा रहे हैं। यहां मैं हर बटन के लिए 25 इंक्रीमेंट चुनता हूं, लेकिन यह आपकी पसंद का है।
इसके साथ हमारे पास एक पीडब्लूएम सिग्नल होगा जिसका शुल्क अनुपात प्रत्येक बटन के साथ बदलता है। यह बजर को दिया जा रहा है, हमारे पास टोन जनरेटर है। इस Arduino आधारित टोन जनरेटर का कार्य नीचे दिए गए सी कोड में कदम से समझाया गया है।