विषयसूची:

सी-कोड में माइक्रोकंट्रोलर फैब्रिक टोन जेनरेटर: 8 कदम (चित्रों के साथ)
सी-कोड में माइक्रोकंट्रोलर फैब्रिक टोन जेनरेटर: 8 कदम (चित्रों के साथ)

वीडियो: सी-कोड में माइक्रोकंट्रोलर फैब्रिक टोन जेनरेटर: 8 कदम (चित्रों के साथ)

वीडियो: सी-कोड में माइक्रोकंट्रोलर फैब्रिक टोन जेनरेटर: 8 कदम (चित्रों के साथ)
वीडियो: How to know the wattage of the stabilizer | वोल्टेज के वाट निकालने का सही तरीका | stabilizer 2024, जुलाई
Anonim
सी-कोड में माइक्रोकंट्रोलर फैब्रिक टोन जेनरेटर
सी-कोड में माइक्रोकंट्रोलर फैब्रिक टोन जेनरेटर

पिछले साल अक्टूबर के अंत में अनुदेशक उपयोगकर्ता कार्मित्सु ने मेरे लंचबॉक्स सिंथेस को देखने के बाद मुझे एक संदेश भेजा। उनके संदेश से: मैं प्राथमिक विद्यालय में संगीत पढ़ाता हूँ। हम बहुत सारे रिकॉर्डर संगीत बजाते हैं। यानी बच्चे छोटी बांसुरी बजाते हैं…… मेरे पास कई विशेष जरूरत वाले बच्चे हैं जो इन काले पोस्टर बोर्डों का उपयोग उन मंडलियों के साथ कर सकते हैं जिन पर नोट का नाम है। ये छात्र नोट्स के नाम के साथ मंडलियों पर धक्का देते हैं उसी समय शेष छात्र एक गाना बजा रहे हैं….. अधिकांश विशेष जरूरतों वाले बच्चे इसे संगीत के साथ काफी अच्छी तरह से और समय पर कर सकते हैं। मैं जो देख रहा हूं वह एक बहुत ही सरल ध्वनि जनरेटर का निर्माण करना है ताकि ये बच्चे वही पिच खेल सकें जो छात्रों द्वारा उनके रिकॉर्डर पर खेला जा रहा है। मैं केवल कुछ पिचें होंगी। मैंने सोचा कि मैं उनके गोल घेरे के नीचे किसी तरह का छोटा बटन लगा सकता हूं ताकि जब वे उन पर धक्का दें तो एक छोटे स्पीकर से आवाज निकले, इतनी जोर से कि वे सुन सकें। एक माँ होने के नाते जो एक शिक्षिका है और जिसे स्कूल पसंद है, मैं कैसे विरोध कर सकती थी? सच कहूं तो मैं नहीं कर सका। यह काफी हद तक परियोजना का एक क्रॉनिकल है और अपना खुद का निर्माण करने के निर्देश हैं।

चरण 1: शुरुआत या मैं एनालॉग के लिए क्यों नहीं रह सका

शुरुआत या मैं एनालॉग के लिए क्यों नहीं रह सका
शुरुआत या मैं एनालॉग के लिए क्यों नहीं रह सका

अच्छी बातें अगले पेज से शुरू होती हैं। यदि आप जानना चाहते हैं कि मेरे द्वारा किए गए भागों का उपयोग करके मैंने कैसे समाप्त किया, तो पढ़ें। सत्य टाइमर: परियोजना को कुछ विचार देने के बाद मैंने तुरंत अपने op-amps वन मिम्स III पुस्तक से पीजो टोन जनरेटर के बारे में सोचा। जाने का एक अच्छा तरीका लग रहा था, यह सिर्फ एक पीजो, एक 741 आईसी और कुछ निष्क्रिय घटक हैं। कोई बड़ी बात नहीं है ना? वैसे इसमें 2 समस्याएं हैं, 1) जब आप स्विच को दबाते हैं, तो पिच को बदलना संभव है 2) इसे ट्यून करना असंभव है। पहले को कुछ बहस तकनीक से दूर किया जा सकता था, हालांकि मुझे नहीं पता था कि एक और काउंटर जोड़ने के बिना इसे कैसे किया जाए। यह पीजो का उपयोग करने में भी एक समस्या हो सकती है। जब आप एक निश्चित पिच पर हिट करने की कोशिश करने लगे तो दूसरा मुद्दा बोझिल हो गया। 555 के बारे में क्या? डेटाशीट प्रतिरोधों और कैपेसिटर के आधार पर एक समय विलंब फ़ंक्शन दिखाता है। जो तब तक बहुत अच्छा है जब तक आप वास्तविक दुनिया के हिस्सों के वास्तविक मूल्यों में टाइप करना शुरू नहीं करते हैं, तब आप पाएंगे कि 440Hz पिच को मारना थोड़ा मुश्किल होने लगता है। आप इसे ट्यून करने के लिए ट्रिम पॉट्स का उपयोग कर सकते हैं, लेकिन समय के साथ वे हिलने लगते हैं। उपकरण को लगातार ट्यूनिंग, लागत और भागों की मात्रा में तेजी से वृद्धि के शीर्ष पर संकलित, और जब मेरी पत्नी ने बटन को धक्का दिया तो पिच परिवर्तन कर रहा था, इस परियोजना के लिए 555 को मार डाला। ओप-एम्प: कोई बात नहीं, लोग इसके साथ सिन्थ बना रहे हैं मेरे जन्म से पहले से op-amps। कुछ भागों और विशिष्ट नोट्स के साथ, वास्तव में सरल बनाना कितना कठिन हो सकता है? जितना मैंने सोचा था उससे कहीं ज्यादा कठिन। इस परियोजना के लिए अधिकांश डिज़ाइन बहुत जटिल हैं। सिंथ डिजाइनर सही तरंग/टोन के लिए बाहर हैं। यह सीधे तौर पर एक ऐसी परियोजना के साथ संघर्ष करता है जिसे स्कूल या शिक्षकों के बजट के लिए काफी सस्ता माना जाता है। कीबोर्ड बनाना काफी आसान है, यह केवल प्रतिरोधों और शक्ति का एक गुच्छा है या डायोड और शक्ति का एक गुच्छा है। यह सर्किट डिजाइन का बाकी हिस्सा है, और कस्टम पीसीबी की लागत जो शुरुआती इलेक्ट्रॉनिक्स स्तर पर किसी के लिए हाथ से निकलने लगती है। परियोजना पुनर्परिभाषा: इससे पहले कि मैं वास्तव में जा रहा था, परियोजना को फिर से परिभाषित किया गया। मुझे कुछ ऐसा चाहिए था जो एक बटन के प्रेस के साथ, समय पर स्पीकर पिन को चालू कर सके। मैं एक पीसीबी डिजाइन और खरीदना नहीं चाहता था। इसे संभव के रूप में कुछ घटकों का उपयोग करना था, और एक शुरुआती किट के रूप में इकट्ठा किया जाना था। यह पूरे समय मुझे चेहरे पर घूर रहा था। दुह !! माइक्रोकंट्रोलर! माइक्रोकंट्रोलर: तो एक मॉडर्न डिवाइसेस बेयर बोन्स अरुडिनो किट और एक एविल मैड साइंटिस्ट सिंपल टारगेट बोर्ड दोनों को खरीदने के बाद और उन्हें महीनों तक अपने डेस्क पर बैठने देने के बाद, मेरे पास सही परिचयात्मक परियोजना थी। मैंने दोनों को एक साथ रखने में लगने वाले समय को देखना शुरू कर दिया, कोड के लिए सीखने की अवस्था, लागत, अतिरिक्त भागों की जरूरत है और इसे वह करना चाहिए जो मैं चाहता हूं और लक्ष्य बोर्ड पर बस गया। लागत बहुत अच्छी थी, $15 प्लस $20 Arduino के लिए FTDI केबल, $12 प्लस $22 USBtinyISP प्रोग्रामर। मैं पहले से ही जानता था कि छोटे कॉलेज से सी ++ मैं खड़ा हो सकता था और लगा कि माइक्रोकंट्रोलर के लिए सी इतना बुरा नहीं होगा, जबकि यह सुनिश्चित करने के लिए कि मैं अपनी किट को ठीक से एक साथ रखता हूं, मुझे कोई Arduino अनुभव नहीं था। दोनों को लगाया जा सकता था। यह काफी टॉस अप था, इसलिए मैंने दोनों के कम हिस्सों, लक्ष्य बोर्ड पर फैसला किया।

चरण 2: आपको क्या चाहिए रेव 1

आपको क्या चाहिए रेव 1
आपको क्या चाहिए रेव 1

पार्ट्स की लागतUSBtinyISP AVR प्रोग्रामर किट (USB SpokePOV डोंगल)v2.0 $22.00https://www.adafruit.com/index.php?main_page=product_info&cPath=16&products_id=46Evil Mad Scientist लैब ATmegaXX8 मिनी देव किट $12हेडर, 6-पिन डीआईपी, 5-पीके $ 2.75 5) $3.49(4pack) https://www.radioshack.com/product/index.jsp?productId=2062539"AAA" बैटरी होल्डर $1.79https://www.radioshack.com/product/index.jsp?productId=2102735SPST सबमिनी स्लाइड स्विच (पावर स्विच के लिए वैकल्पिक) $2.69(2-पैक)https://www.radioshack.com/product/index.jsp?productId=2062490LED और रेसिस्टर (वैकल्पिक, यदि आप पावर लाइट चाहते हैं) $ मुक्त होना चाहिए अगर वे चारों ओर झूठ बोल रहे हैं वायर $ भी चांदी के सोल्डर के आसपास झूठ बोलना चाहिए (यदि यह बच्चों के पास कहीं भी जा रहा है तो आपको शायद लीड का उपयोग नहीं करना चाहिए, माता-पिता उस तरह की चीज़ों के बारे में बहुत अजीब हो जाते हैं;)) शराब रगड़ना (फिर से मूव फ्लक्स) यदि आप चाहते हैं कि कुछ स्थान पैसे बचाएं, तो आपको रेडियोशैक से पुर्जे प्राप्त करने की आवश्यकता नहीं है। मैंने ऐसा इसलिए किया क्योंकि वे करीब और अनुमानित हैं।

चरण 3: विधानसभा रेव 1

विधानसभा रेव १
विधानसभा रेव १
विधानसभा रेव १
विधानसभा रेव १

दिखाए गए अनुसार अपने हिस्से एक साथ रखें। सोल्डरिंग से किसी भी फ्लक्स से छुटकारा पाने के लिए जब आप कर रहे हों तो रबिंग अल्कोहल और फ्लक्स ब्रश का उपयोग करना सुनिश्चित करें। जो लोग इसे पसंद करते हैं उनके लिए योजनाबद्ध नीचे है। D1 और R1 आप जो चाहें हो सकते हैं, यह सिर्फ एक पावर लाइट है। C1 केवल शक्ति को थोड़ा और सुसंगत बनाने में मदद करने के लिए है। मैंने 10uF का इस्तेमाल किया। यह योजनाबद्ध बाद के संस्करणों के लिए समान है, बस कपड़े स्विच के लिए पुश बटन को स्वैप करें। पिछले संशोधन में मैंने PC4 और PC5 या पिन 27 और 28 में स्विच जोड़े।

चरण 4: आपको क्या चाहिए रेव 2

आपको क्या चाहिए रेव 2
आपको क्या चाहिए रेव 2

तो मूल रूप से आप हाथ से बने कपड़े के लिए रेडियो झोंपड़ी बटनों की अदला-बदली कर रहे हैं। आपको जरूरत है: कपड़े के कई रंग, या एक रंग यदि आप हर नोट को एक ही रंग चाहते हैं। इसे सस्ते में पाने के लिए आपके सबसे नज़दीकी फ़ैब्रिक स्टोर का क्विल्टिंग सेक्शन सबसे अच्छी जगह है। क्विल्टिंग क्वार्टर $1.50 हैं और आप एक में से एक टन स्विच प्राप्त कर सकते हैं। प्रवाहकीय कपड़े, मेरा सुझाव है कि लेसईएमएफ से फ्लेक्ट्रॉन कपड़े कपड़े के तार को जोड़ने के लिए 12 "x54" टुकड़े आईलेट्स के लिए $ 20 है। आप उन्हें ज्यादातर कपड़े की दुकानों पर सस्ते में प्राप्त कर सकते हैं। JoAnn के पास उपकरण है और $२ के लिए २५ आपको इसके लिए एक हथौड़े की आवश्यकता होगी। वायर, मैंने २२AWG का उपयोग किया, मैं सुझाव देता हूं कि यदि आपके पास है तो छोटा है। रंगीन और प्रवाहकीय कपड़े को एक साथ चिपकाने के लिए फ्यूज़ करना। स्टोर पर पूछें और आप शायद इसे यार्ड से खरीद सकते हैं। यह शायद ठीक काम करेगा, हालांकि मेरा सुझाव है कि आप किसी से बल्लेबाजी करने के लिए कहें, मैंने पहले वास्तव में ढीली चीजें इस्तेमाल कीं, फिर कुछ कड़े बुनाई पर स्विच किया। मेरा सुझाव है कि आप कुछ अलग कोशिश करें जब तक कि आपको सबसे अच्छा काम न मिल जाए। हीट सिकुड़ ट्यूबिंग, इसने पूरी चीज को और अधिक प्रबंधनीय बना दिया। जैसे ही वे एक-दूसरे से गुजरते हैं, हीट सिकुड़ते तार एक साथ रहते हैं और वे बहुत बेहतर रहेंगे।

चरण 5: असेंबली रेव 2

विधानसभा रेव 2
विधानसभा रेव 2
विधानसभा रेव 2
विधानसभा रेव 2
विधानसभा रेव 2
विधानसभा रेव 2

बहु-रंगीन कपड़े को एक-दूसरे के ऊपर रखें और एक वर्ग काट लें, यह बिल्कुल सही नहीं है। किसी भी सिलवटों को बाहर निकालने के लिए कपड़े को आयरन करें, उन्हें फिर से एक-दूसरे के ऊपर परत करें और सुनिश्चित करें कि सभी किनारे मेल खाते हैं। किसी भी किनारे को काटें जो नहीं करता है। ऊपर और नीचे के गोल को काटें, बाएँ और दाएँ पक्ष को सीधा छोड़ दें। आप सिलाई के बाद स्विच को उल्टा करने जा रहे हैं ताकि गोल पक्षों को बहुत गोल न करें और जब आप काम कर लें तो स्विच को आसानी से धक्का देने के लिए फ्लैट पक्षों पर पर्याप्त ऊंचाई छोड़ दें। पहले और आखिरी स्विच के फ्लैट साइड को राउंड आउट करें। अपनी सिलाई मशीन पर जाएं और दो राउंड एक साथ रखें ताकि अच्छी साइड एक दूसरे के सामने हो और फ्लैट भागों पर एक सीवन सीवे। एक बार बटन के शीर्ष हैं प्रवाहकीय कपड़े से सिलना, वर्गों को काटना और एक तरफ फ्यूज करना। तार को लंबाई में काटें और एक सिरे को पट्टी करें। एक सुराख़ के चारों ओर तार मिलाप। (सोल्डर सुराख़ से नहीं चिपकेगा) एक कोने में कपड़े में एक छोटा सा टुकड़ा काटें और कपड़े और तार को जोड़ने के लिए सुराख़ को हथौड़े से मारें। फ़्यूज़िंग से बैकिंग हटा दें और कंडक्टिव फ़ैब्रिक को रंगीन फ़ैब्रिक के पीछे फ़्यूज़ करें। सभी स्विच के लिए दोहराएं। चीजों को आसान बनाने के लिए, जब भी एक तार अगले स्विच के लिए तार से गुजरता है, तो आप सिकोड़ ट्यूब तारों को एक साथ गर्म कर सकते हैं। कपड़े का एक टुकड़ा प्राप्त करें या स्विच सेट की लंबाई बनाएं और प्रवाहकीय कपड़े की एक पट्टी को इसकी लंबाई काट लें। रंगीन स्विच के विपरीत, यह एक लंबा टुकड़ा है। यह वही होगा जो कनेक्शन बनाने के लिए बटन स्पर्श करते हैं। एक छोटा सा चीरा काटें और उस पर एक सुराख़ के साथ एक तार लगाएँ, जैसे रंगीन स्विच टॉप। इसे नीचे के कपड़े के पीछे फ्यूज करें। ऊपर और नीचे एक साथ प्रवाहकीय कपड़े के साथ सीना, एक यार्ड स्टिक का उपयोग करके सेट को सिलने के बाद उल्टा कर दें। बल्लेबाजी में कुछ छोटे छेद काटें, मैंने प्राप्त करने के लिए एक चॉपस्टिक का उपयोग किया एक सर्कल तो बस चॉपस्टिक को हटा दें और काट लें। उन्हें आकार देने के लिए काटें और स्विच में डालें। यह वही है जो प्रवाहकीय कपड़े को अलग रखता है। जब आप स्विच को बाद में बदल रहे हों तो बल्लेबाजी करना आसान हो सकता है। जब मैं इसे डाल रहा था तो मैंने जो सामान इस्तेमाल किया वह बहुत खराब हो गया और मुझे अलग बल्लेबाजी करनी पड़ी। अंत में तारों को लक्ष्य बोर्ड तक लगाओ और तुम सब तैयार हो। नीचे की लंबी पट्टी जमीन होगी।

चरण 6: आपको क्या चाहिए रेव 3

आपको क्या चाहिए रेव 3
आपको क्या चाहिए रेव 3

रेव 3 में मैंने स्विच को वायरिंग से स्वतंत्र बनाया। इससे एक टन समय की बचत हुई। मुझे तैयार परिणाम का रूप भी बहुत अधिक पसंद है।तो, ये रहे नए हिस्से जो आपको चाहिए: स्नैप्स, बस उन्हें जोआन से मिला। वे एक इंस्टॉल टूल के साथ आए थे जो $ 7 के लिए खराब नहीं था, मैं इसके बजाय सरौता टूल में से एक का सुझाव दूंगा क्योंकि मुझे बीच में स्नैप्स को स्थापित करने के लिए अपना टूल अलग करना था। सीना एक अच्छा विकल्प होगा, हालांकि उन्हें पालन करने में अधिक समय लगता है। प्रवाहकीय धागा, स्पार्क फन में सामान होता है जो आपकी सिलाई मशीन में जा सकता है। मुझे अपनी मशीन में वास्तव में धीमी गति से जाना था या धागा टूट जाएगा। आपकी माइलेज भिन्न हो सकती है

चरण 7: विधानसभा रेव 3

विधानसभा रेव 3
विधानसभा रेव 3
विधानसभा रेव 3
विधानसभा रेव 3
विधानसभा रेव 3
विधानसभा रेव 3
विधानसभा रेव 3
विधानसभा रेव 3

निर्माण तक के समय के मामले में यह संशोधन पिछले की तुलना में बहुत बेहतर था। इसके अलावा, हटाने योग्य स्विच होने से मेरी विवेक एक से अधिक बार बचा है। आधार बनाकर शुरू करें। यह सिर्फ एक क्विल्टिंग क्वार्टर आधा में मुड़ा हुआ है। शीर्ष पर बल्लेबाजी की एक परत रखो और इसे उलटने के लिए एक छेद छोड़कर सिलाई करें। छेद के माध्यम से चीज़ को धक्का दें और आपके पास मूल रूप से एक तकिया प्रकार की चीज़ है। मैंने इसे रजाई बना दिया ताकि इसके साथ काम करना आसान हो। सादे धागे का प्रयोग करें और पागल हो जाएं। मैंने इस पर हीरे जड़े थे, लेकिन शायद अगली बार मैं पीछे एक अजगर रखूँगा, या कुछ अच्छा।अब, स्विच पर। मुझे यह डिज़ाइन पसंद है क्योंकि आप मूल रूप से समय से पहले इनमें से एक टन बना सकते हैं और जो आप चाहते हैं उसका उपयोग कर सकते हैं। कार्डबोर्ड, कागज, या कपड़े के एक स्क्रैप टुकड़े का उपयोग करके शुरू करें और उसमें से एक नाशपाती के आकार को काट लें। प्रत्येक स्विच के लिए ऊपर और नीचे काटने के लिए इसे एक गाइड के रूप में उपयोग करें। मैंने प्रत्येक तल के लिए एक रंग और शीर्ष के लिए एक अलग रंग काटा, लेकिन आप रचनात्मक हो सकते हैं और जो चाहें कर सकते हैं। अपने गाइड को लॉलीपॉप आकार में काटें जो आसानी से स्विच के अंदर फिट हो जाए। "छड़ी" को लंबा करें ताकि यह "नाशपाती" के किनारे पर लपेट सके। फ़्यूज़िंग और कंडक्टिव फ़ैब्रिक से आकृति को काटें और कंडक्टिव फ़ैब्रिक के एक तरफ फ़्यूज़ करें। फ़्यूज़िंग सामग्री से बैकिंग निकालें और इसे फ़ैब्रिक के शीर्ष पर फ़्यूज़ करें जो कि नीचे होगा और कपड़े के नीचे जो शीर्ष पर होगा। शीर्ष के चारों ओर अतिरिक्त बिट लपेटें। अपनी सिलाई मशीन पर जाएं और ऊपर और नीचे के कपड़े के बीच छेद के साथ बल्लेबाजी करें। प्रवाहकीय कपड़े के बाहर सीना और स्विच के "छड़ी" भाग को छोड़ दें। मैंने पाया कि शॉर्ट बनाने के लिए शीर्ष प्रवाहकीय कपड़े को नीचे से सिलना संभव है। प्रवाहकीय कपड़े के माध्यम से सिलाई नहीं करना बेहतर है। स्नैप संलग्न करें और स्विच किया जाता है। मुझे सभी बॉटम/जीएनडी कनेक्शन के लिए मेल स्नैप और सभी टॉप के लिए फीमेल स्नैप का उपयोग करना आसान लगा। यह सभी स्विच को विनिमेय बनाता है। सर्किट: राउंड काटने की बात यह है कि आपके पास बहुत सारे अतिरिक्त बिट्स हैं। मैंने अपने स्क्रैप ले लिए, फ्यूज़िंग के बड़े टुकड़ों को प्रवाहकीय कपड़े के बड़े टुकड़ों में मिला दिया और उन छोटे आयतों को काटने के लिए इस्तेमाल किया जिन्हें मैंने पैड के रूप में इस्तेमाल किया था। मोटे तौर पर अपने स्विच बिछाएं और पैड को आधार से जोड़ दें ताकि उन्हें एक लाइन सिलने के लिए पर्याप्त जगह मिले और एक स्नैप हो। मैंने जिस सिलाई मशीन का इस्तेमाल किया वह स्नैप के करीब वास्तविक होने के लिए दयालु नहीं था, इसलिए इसे ध्यान में रखें और खुद को कुछ जगह दें। चूँकि मुझे प्रवाहकीय धागा मिला था जो मेरी सिलाई मशीन में जा सकता था, इसलिए मैंने पैड से पैड और पीठ तक एक लाइन सिल दी। मुझे धीमी गति से जाना था या धागा टूट जाएगा, लेकिन यह हाथ से सिलाई की तुलना में एक टन तेज था। इसके अलावा बोबिन और सुई पर प्रवाहकीय धागे के साथ, मुझे वास्तव में एक अच्छा ठोस कनेक्शन मिला। सामान पागलों की तरह फड़फड़ाता है, लेकिन थोड़ा शिल्प गोंद या एल्मर्स इसे ठीक करता है। लाइनों को एक-दूसरे से अच्छी तरह दूर रखने की कोशिश करें और आपको कोई समस्या नहीं होनी चाहिए। अंतिम असेंबली: अपने सभी स्विच पर स्नैप करें, बोर्ड कनेक्ट करें, कोड लोड करें और आपका काम हो गया। मैंने बोर्ड से पैड तक जाने के लिए तार का इस्तेमाल किया और फिर तार को हाथ से आधार तक सिल दिया। अगले संस्करण के लिए, मैं बोर्ड को एक प्लास्टिक बॉक्स में स्नैप के साथ आधार से जोड़ने के लिए माउंट करूंगा ताकि बेकार उंगलियां इसे अलग न करें।

चरण 8: कोड

कोड
कोड

यदि आपने पहले कभी चिप को प्रोग्राम नहीं किया है, तो यह कुछ कठिन काम है। यह मदद नहीं करता है कि उपकरण परतदार हैं और अधिकांश समय आपको एक ही ऑपरेशन को कई बार करना पड़ता है। जो कुछ हो रहा है उसे समझने के लिए मैंने जो दो सर्वोत्तम संसाधन प्राप्त किए हैं, वह है USBtinyISP का पृष्ठ, https://www.ladyada.net/make/usbtinyisp/ और शोर टॉय प्रोग्रामिंग में क्रैश कोर्स, http:/ /blog.makezine.com/archive/2008/05/noise_toy_crashcourse_in.html ये आपको आरंभ करने में सक्षम होने चाहिए।

इस कोडिंग के लिए बहुत सारे लोग Arduino को पसंद करते हैं और इसका उपयोग करने में कुछ भी गलत नहीं है, सिवाय इसके कि मुझे लगता है कि यह सामान्य रूप से सरल प्रोग्राम में बहुत अधिक ब्लोट जोड़ता है। साथ ही, मैं C को जानता था और Arduino को नहीं जानता। शायद एक दिन, अगर समय हो।:) कोड: {{{ #include // SPK को चालू करने के लिए पिन का उपयोग करें /// Typedefs /////////// typedef unsigned char u8; int main(void) { u8 btnState0; यू8 बीटीएनस्टेट1; यू8 बीटीएनस्टेट2; यू8 बीटीएनस्टेट3; यू8 बीटीएनस्टेट4; यू8 बीटीएनस्टेट5; यू8 बीटीएनस्टेट6; डीडीआरबी = (1 << डीडीबी 6); // आउटपुट PORTD के लिए SPK सेट करें =(1 << PD0) | (१ << पीडी१) | (१ << पीडी२) | (१ << पीडी३) | (१ << पीडी४); // सेट बटन हाई PORTC = (1 << PC4) | (१ << पीसी६); TCCR2B = (1 << CS21); // टाइमर सेट करें जबकि (1) {btnState0 = ~ PINC और (1 << PC5); btnState1 = ~ PINC और (1 << PC4); btnState2 = ~PIND और (1 << PD0); btnState3 = ~PIND और (1 << PD1); btnState4 = ~PIND और (1 << PD2); btnState5 = ~PIND और (1 << PD3); btnState6 = ~PIND और (1 << PD4); अगर (btnState0) { अगर (TCNT2 >= 190) { PORTB ^= (1 << PD6); // फ्लिप एसपीके पिन टीसीएनटी 2 = 0; } } अगर (btnState1) { अगर (TCNT2 >= 179) { PORTB ^= (1 << PD6); // फ्लिप एसपीके पिन टीसीएनटी 2 = 0; } } अगर (btnState2) { अगर (TCNT2 >= 159) { PORTB ^= (1 << PD6); // फ्लिप एसपीके पिन टीसीएनटी 2 = 0; } } अगर (btnState3) { अगर (TCNT2 >= 142) { PORTB ^= (1 << PD6); // फ्लिप एसपीके पिन टीसीएनटी 2 = 0; } } अगर (btnState4) { अगर (TCNT2 >= 126) { PORTB ^= (1 << PD6); // फ्लिप एसपीके पिन टीसीएनटी 2 = 0; } } अगर (btnState5) { अगर (TCNT2 >= 119) { PORTB ^= (1 << PD6); // फ्लिप एसपीके पिन टीसीएनटी 2 = 0; } } अगर (btnState6) { अगर (TCNT2 >= 106) { PORTB ^= (1 << PD6); // फ्लिप एसपीके पिन टीसीएनटी 2 = 0; } } } }}} पिचें कहाँ से आती हैं? थोड़ा गणित चाहिए था। atmega 168 पर टाइमर घड़ी 1MHz पर चलती है। यह ऑडियो के लिए बहुत तेज़ है इसलिए हमें प्रीस्केलर/8 का उपयोग करना होगा। फिर चूंकि हमें 1 चक्र बनाने के लिए आउटपुट पिन को उच्च और निम्न फ्लिप करने की आवश्यकता है, हमें सही पिच के साथ आने के लिए उत्तर को 2 से विभाजित करने की आवश्यकता है। सूत्र इस तरह दिखता है, कोड डालने के लिए पिच = (1000000/8)/(लक्ष्य आवृत्ति * 2) ए (440) के लिए यह हमारे उद्देश्यों के लिए 125000/880 = 142.045 या 142 होगा, क्योंकि मान एक पूर्णांक होना चाहिए. नोटों की लक्षित आवृत्तियों को लगभग कहीं भी ऑनलाइन पाया जा सकता है और आम तौर पर सभी समान होते हैं। मैं अभी भी ifs के एक समूह का उपयोग करने के बजाय एक केस स्टेटमेंट जोड़ना चाहता हूं और स्पीकर के वॉल्यूम और पिच को बेहतर ढंग से नियंत्रित करने के लिए PWM का उपयोग करता हूं, लेकिन अभी के लिए, यह काम करता है।

सिफारिश की: