विषयसूची:

Arduino पहेली बॉक्स: 7 कदम
Arduino पहेली बॉक्स: 7 कदम

वीडियो: Arduino पहेली बॉक्स: 7 कदम

वीडियो: Arduino पहेली बॉक्स: 7 कदम
वीडियो: Arduino 7 Segment Display Tutorial | Arduino UNO/NANO 7 Segment Arduino Programming | Hindi 🔥🔥 2024, नवंबर
Anonim
Arduino पहेली बॉक्स
Arduino पहेली बॉक्स

इस परियोजना के लिए हम एक पहेली बॉक्स बनाने जा रहे हैं जो संगीत के साथ काम करता है। इसका मूल सार यह है कि जब आप एक बटन दबाते हैं तो यह एक धुन जारी करता है और Arduino गणना करता है कि कौन से बटन दबाए जाते हैं ताकि यह जान सके कि सही क्या है और गलत उत्तर क्या है।

आपूर्ति

1 एक्स अरुडिनो यूनो

1 x 1k ओम रोकनेवाला

5 x 220 ओम प्रतिरोधक

१ एक्स पीजो बजर

5 एक्स पुशबटन 6x6 मिमी

1 एक्स सेट जम्पर तार

1 एक्स परफ / स्ट्रिप बोर्ड

1 एक्स सोल्डरसेट

1 एक्स काज

1 एक्स क्लैंप

दराज/लकड़ी की 1 x छोटी छाती

1x गर्म गोंद बंदूक + गोंद की छड़ें

1 एक्स 9वी बैटरी + धारक

थोड़ा सा वर्ब्ला

रंग

चरण 1:

छवि
छवि

शुरुआत करने के लिए आपको अपने पिन को अपने ब्रेडबोर्ड में दबाना होगा। अब एनालॉग 2 को तार के साथ बोर्ड के कोने से कनेक्ट करें। हम इससे दो रेसिस्टर्स को एक लाइन में जोड़ने जा रहे हैं। पहला 10k ओम अवरोधक है। इस रोकनेवाला के दूसरे छोर पर हम तार को एनालॉग ग्राउंड से जोड़ते हैं। दूसरा रोकनेवाला एक 220 ओम अवरोधक है जिसे हम पहले बटन से जोड़ते हैं। बटन के दूसरे खुले हिस्से को दूसरे बटन से जोड़ने के लिए उसी मान के दूसरे प्रतिरोधक का उपयोग करें। इस तरह के बटनों को आखिरी तक जोड़ते रहें। आखिरी में आप एक तार को पकड़ते हैं और इसे बटन के संबंधित बंद हिस्से से जोड़ते हैं और इसे अगले एक से जोड़ते हैं। अब आप उस प्रक्रिया को दोहराते हैं जो आपने प्रतिरोधों के साथ की थी जिसे केवल सादे तारों के साथ ही जानते हैं। अपने Arduino पर पहले बटन को एनालॉग 3, 3V पोर्ट से कनेक्ट करें। कुल मिलाकर आपको एक तरह का क्रॉस पैटर्न मिलेगा जैसा कि नीचे दिखाया गया है।

चरण 2:

अगला आप बजर को ब्रेडबोर्ड में प्लग करें और एक तरफ डिजिटल ग्राउंड और दूसरे को 12 पोर्ट पर सुरक्षित करें। निम्नलिखित कोड को पहले से ही अपने Arduino में अपलोड करना स्मार्ट है ताकि आप परीक्षण कर सकें कि सब कुछ सही तरीके से काम कर रहा है या नहीं। यदि ऐसा है तो आप घटकों को एक साथ मिलाना शुरू कर सकते हैं। इसे ब्रेडबोर्ड से बाहर निकालकर और तारों और कनेक्शनों को सीधे एक साथ मिला कर करें। यदि आपको लगता है कि आपको बटनों के बीच अधिक लंबाई की आवश्यकता है तो आप प्रतिरोधों के बीच कुछ अतिरिक्त तार जोड़ सकते हैं। इस बिंदु पर अब ब्रेडबोर्ड की आवश्यकता नहीं है।

चरण 3:

छवि
छवि

सब कुछ टांका लगाने के बाद बॉक्स को खुद बनाने का समय आ गया है। मैंने अपने लिए आधार के रूप में दराज के सस्ते सेट का इस्तेमाल किया। मैंने बस आधी लंबाई में काट दिया और पीछे और जिस तरफ से मैंने काटा, उसे हटा दिया। अब आपके पास c के आकार के दो टुकड़े होने चाहिए। ढक्कन के रूप में उपयोग करने के लिए उनमें से एक के एक तरफ काट लें। अब बचे हुए टुकड़ों में से एक को घुमाएं ताकि वे ढक्कन रहित बॉक्स की तरह एक साथ फिट हो जाएं और उन्हें एक साथ चिपका दें। एक बार गोंद ठीक से सेट हो गया है, बटन के लिए बॉक्स के प्रत्येक तरफ एक छोटा छेद और ढक्कन में बजर के लिए एक बड़ा छेद ड्रिल करें।

चरण 4:

छवि
छवि
छवि
छवि

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

चरण 5:

अंत में आप गोंद या पेंच, क्लैंप और बॉक्स पर टिका और दोनों को जोड़ने वाला ढक्कन।

चरण 6:

अब जब आपका बॉक्स पूरा हो गया है तो आपको बस इतना करना है कि उसके अंदर Arduino और बैटरी डालें और ढक्कन बंद कर दें।

चरण 7: कोड

// यह एक ज़ेल्डा थीम वाली पहेली/संगीत बॉक्स के लिए कोड है।

// यह आपके कोड को अन्य टैब में नोटों की सूची से जोड़ता है

#शामिल "पिच। एच"

// यह चर सुनिश्चित करेगा कि Arduino बटन के लंबे प्रेस को सिर्फ एक प्रेस के रूप में देखता है

इंट वही = 0;

// यहां से यह आपके इनपुट को पढ़ेगा

इंट के = 2;

// यह आपका आउटपुट पिन है

इंट स्पीकर = 12;

// नीचे अंत की धुनें हैं

इंट ज़ेल्डा = {नोट_बी४, नोट_डी५, नोट_ए४, नोट_जी४, नोट_ए४, नोट_बी४, नोट_डी५, नोट_ए४, नोट_जी४, नोट_ए४, नोट_बी४, नोट_डी५, नोट_ए५, नोट_जी५, नोट_डी५, नोट_सी५, नोट_बी४, नोट_ए५};

इंट ज़ेल्डाटाइम = {२, ४, २, ४, ४, २, २, २, ४, ४, २, ४, २, २, २, ४, ४, २};

इंट एपोना = {नोट_डी५, नोट_बी४, नोट_ए४, नोट_डी५, नोट_बी४, नोट_ए४, नोट_डी५, नोट_बी४, नोट_ए४, नोट_बी४, नोट_ए४};

इंट एपोनाटाइम = {४, ४, १.५, ४, ४, १.५, ४, ४, २, २, १};

इंट सरिया = {NOTE_F4, Note_A4, Note_B4, Note_F4, Note_A4, Note_B4, Note_F4, Note_A4, Note_B4, Note_E5, Note_D5, Note_B4, Note_C5, Note_B4, Note_G4, Note_E4, Note_D4, Note_E4, Note_G4, Note_E4};

int SariaTime = {8, 8, 4, 8, 8, 4, 8, 8, 8, 8, 4, 8, 8, 8, 8, 3, 8, 8, 8, 2, 1};

// एक नोट की सामान्य अवधि

इंट बीटटाइम = ३००;

// जिस काउंटर पर हम नज़र रखने जा रहे हैं, क्या हम समाधान में हैं

इंट टेलर = 0;

व्यर्थ व्यवस्था() {

सीरियल.बेगिन (९६००);

पिनमोड (2, इनपुट);

पिनमोड (1, इनपुट);

}

शून्य लूप () {

// पिन से इनपुट पढ़ता है

के = एनालॉगरीड(2);

इंट पी = एनालॉग रीड (1);

// यदि कोई बटन नहीं दबाया गया है तो कोई स्वर नहीं होना चाहिए

अगर (टेलर == 0) {

नोटोन(12);

}

// यदि पढ़ा गया डेटा मापदंडों से मेल खाता है, तो कोड के वर्णित बिट को चलाएं

अगर (के> 320 और& के <350) {

रेच्स ();

}

//""

और अगर (के २९०) {

लिंक ();

}

//""

और अगर (के > २६० && के <२८०) {

बोवेन ();

}

//""

और अगर (के> २४० && के <२६०) {

ओन्डर ();

}

//""

और अगर (के > २२० && के <२४०) {

ए();

}

// यदि ऐसा नहीं होता है (जब कोई बटन नहीं दबाया जाता है), तो इस कोड को चलाएँ

अन्यथा {

// उसी को रीसेट करें ताकि अगली बार बटन दबाए जाने पर इसका उपयोग किया जा सके

वही = 0;

// यदि काउंटर एक निश्चित संख्या तक है, तो कोड के वर्णित बिट को चलाएं

अगर (टेलर == 166) {

ज़ेल्डा ();

}

//""

और अगर (टेलर == 386) {

सरिया ();

}

//""

और अगर (टेलर == 266) {

एपोना ();

}

//""

और अगर (टेलर == 999) {

// त्रुटि को चिह्नित करने के लिए इस स्वर को चलाएं

टोन (स्पीकर, नोट_सी3, बीटटाइम);

// काउंटर को 0. पर रीसेट करें

टेलर = 0;

}

}

// इनपुट और आउटपुट के बीच देरी

देरी (100);

// सीरियल मॉनिटर में आपके इनपुट के मूल्यों को प्रिंट करता है

सीरियल.प्रिंट्लन (के);

}

// यह पहला राग है

शून्य ज़ेल्डा () {

// यह एक काउंटर सेट करता है जो माधुर्य बजाते समय खुद को अपडेट करता है ताकि वह इसे पढ़ सके और जब इसे करना चाहिए तो रुक जाए

for (int i = 0; i < sizeof(Zelda); i++) {

// कहता है कि एक नोट कितने समय तक चलना चाहिए

इंट जेडटाइम = 1000 / ज़ेल्डाटाइम ;

// स्वर उत्पन्न करता है

टोन (स्पीकर, ज़ेल्डा , ZTime);

// सही देरी बनाता है

इंट पॉज = जेडटाइम * 1.30;

देरी (रोकें);

// रीसेट काउंटर

टेलर = 0;

// सीरियल मॉनिटर में आपके इनपुट के मूल्यों को प्रिंट करता है

सीरियल.प्रिंट्लन (टेलर);

}

}

//""

शून्य एपोना () {

के लिए (int i = 0; i < sizeof(epona); i++) {

इंट ईटाइम = १००० / एपोनाटाइम ;

टोन (स्पीकर, एपोना , ईटाइम);

इंट पॉज़ = ईटाइम * 1.30;

देरी (रोकें);

टेलर = 0;

सीरियल.प्रिंट्लन (टेलर);

}

}

//""

शून्य सरिया () {

के लिए (int i = 0; i < sizeof(Saria); i++) {

int STime = १००० / SariaTime ;

टोन (स्पीकर, सरिया , STime);

इंट पॉज़ = समय * १.३०;

देरी (रोकें);

टेलर = 0;

सीरियल.प्रिंट्लन (टेलर);

}

}

शून्य आरई

एचटीएस () {

// अगर यह पहले से दबाया नहीं गया था

अगर (वही == 0) {

// यदि काउंटर में वर्तमान में इनमें से कोई एक मान है, तो इसे इसमें जोड़ें

अगर (टेलर == 0 || टेलर == 132 || टेलर == 165 || टेलर == 232 || टेलर == 265 || टेलर == 331 || टेलर == 374) {

टेलर = टेलर + 1;

}

// अन्यथा इसे 999 पर सेट करें ताकि आप ते त्रुटि शोर सुन सकें

अन्यथा {

टेलर = 999;

}

// एक के समान सेट करें ताकि Arduino एक से अधिक प्रेस के रूप में लंबे समय तक प्रेस को नहीं पढ़ सके

वही = 1;

}

// टोन खेलें

अन्यथा {

टोन (स्पीकर, नोट_ए 4, बीटटाइम);

}

// सीरियल मॉनिटर में आपके इनपुट के मूल्यों को प्रिंट करता है

सीरियल.प्रिंट्लन (टेलर); }

//""

शून्य लिंक () {

अगर (वही == 0) {

अगर (टेलर == 133 || टेलर == 254 || टेलर == 244 || टेलर == 332 || टेलर == 375 || टेलर == 221) {

टेलर = टेलर + 11;

}

और अगर (टेलर == 0) {

टेलर = १११;

}

अन्यथा {

टेलर = 999;

}

वही = 1;

} अन्यथा{

टोन (स्पीकर, नोट_बी4, बीटटाइम);

} सीरियल.प्रिंट्लन (टेलर);

}

//""

शून्य बोवेन () {

अगर (वही == 0) { अगर (टेलर == 111 || टेलर == 144 || टेलर == 233) {

टेलर = टेलर + 21;

}

और अगर (टेलर == 0) {

टेलर = २२१;

}

अन्यथा {

टेलर = 999;

}

वही = 1;

}

अन्यथा {

टोन (स्पीकर, नोट_डी5, बीटटाइम);

सीरियल.प्रिंट्लन (टेलर);

}

}

//""

शून्य पर () {

अगर (वही == 0) {

अगर (टेलर == 343) {

टेलर = टेलर + 31;

}

और अगर (टेलर == 0) {

टेलर = ३३१;

} अन्यथा {

टेलर = 999;

} वही = 1;

} अन्यथा {

टोन (स्पीकर, नोट_एफ 4, बीटटाइम);

सीरियल.प्रिंट्लन (टेलर);

}

}

//""

शून्य ए () {

अगर (वही == 0) {

अगर (टेलर == 0) {

टेलर = ४६१;

}

अन्यथा {

टेलर = 999;

}

वही = 1;

}

टोन (स्पीकर, नोट_डी 4, बीटटाइम);

सीरियल.प्रिंट्लन (टेलर);

}

सिफारिश की: