हम सभी पासा से परिचित हैं और अक्सर पासा का उपयोग करके LUDO या SANP SIDI (स्नेक एंड लैडर) खेल खेलते हैं। पासा एक स्क्वायर प्रकार का ठोस बॉक्स होता है, जिसमें इसके सभी किनारों पर 6 अलग-अलग संख्याएँ होती हैं। हम गेम खेलते समय एक यादृच्छिक संख्या प्राप्त करने के लिए एक सतह पर पासा फेंकते हैं। इस परियोजना में हमने arduino uno बोर्ड का उपयोग करके इसे एक डिजिटल पासा के साथ दोहराने की कोशिश की है । पासा फेंकने के स्थान पर, हमें 0 से 6 के बीच एक यादृच्छिक संख्या प्राप्त करने के लिए एक बटन दबाना होगा।
आवश्यक घटक
- Arduino UNO
- सात खंड प्रदर्शन (आम एनोड)
- पुश बटन
- तारों को जोड़ना
- ब्रेड बोर्ड
- 1 k रोकनेवाला
- बिजली की आपूर्ति
सर्किट आरेख और स्पष्टीकरण
जैसा कि ऊपर डिजिटल पासा सर्किट में दिखाया गया है, पूरी प्रक्रिया को नियंत्रित करने के लिए आर्डिनो का उपयोग किया जाता है। सर्किट में दो पुश बटन का उपयोग किया जाता है - एक पासा शुरू करने के लिए और दूसरा पासा रीसेट करने के लिए। Arduino इन दो बटन को पढ़ता है और ऑपरेशन करता है। एक सात खंड प्रदर्शन पासा परिणाम प्रदर्शित करने के लिए प्रयोग किया जाता है।
Arduino लगातार रैंड () फ़ंक्शन को निष्पादित कर रहा है और एक अस्थायी चर में इसके मूल्य को संग्रहीत करता है। जब पासा बटन को परिकलित मूल्य परिकलित किया जाता है और उचित विधि का उपयोग करके सात खंडों पर प्रदर्शित किया जाता है (लेख का प्रोग्रामिंग हिस्सा देखें)।
यहाँ इस पासा सर्किट में, एक आम एनोड सात खंड का प्रदर्शन पासा संख्याओं को प्रदर्शित करने के लिए किया जाता है, जो सीधे आर्डिनो डिजिटल पिन नंबर 6, 5, 4, 3, 2, 1, 0. से जुड़ा हुआ है। सात खंडों का सामान्य एनोड पिन है। +5 वोल्ट 220 ओम अवरोधक के साथ जुड़ा हुआ है। दो पुश बटन भी संबंधित हैं पासा बटन और रीसेट बटन जो जमीन के संबंध में डिजिटल पिन 14 (ए 0) और 15 (ए 1) से जुड़े हैं।
कोड स्पष्टीकरण
इस परियोजना का प्रोग्रामिंग हिस्सा सात खंड प्रदर्शन पर यादृच्छिक डिजिटल पासा संख्या प्रदर्शित करने के लिए एक बहुत ही महत्वपूर्ण भूमिका निभाता है। Arduino में सात सेगमेंट डिस्प्ले के लिए कोई लाइब्रेरी नहीं है। इसलिए हमने किसी भी पुस्तकालय का उपयोग किए बिना पूरे कोड का निर्माण किया।
सबसे पहले हम सात खंड प्रदर्शन के लिए डिजिटल पिन का चयन करते हैं।
int pin = {6,5,4,3,2,1,0};
इसके बाद हम 6 अंकों का एक पासा बनाते हैं जिसका नाम है 1, 2, 3, 4, 5 और 6।
char digit = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
अब हमने आउटपुट के रूप में आर्डिनो पिन का उपयोग करने की दिशा दी।
शून्य सेटअप () {के लिए (int i = 0; मैं <7; i ++) पिनकोड (पिन, OUTPUT); पिनमोड (पासा, INPUT); पिनमोड (रीसेट, INPUT); digitalWrite (पासा, उच्च); digitalWrite (रीसेट, हाई);
हम डिफ़ॉल्ट रूप से सात खंड प्रदर्शन पर शून्य प्रदर्शित करने के लिए एक कोड भेजते हैं।
int अस्थायी = 0x40; for (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (पिन, अस्थायी 1); temp = temp >> 1; }
अब हम एक यादृच्छिक संख्या प्राप्त करने के लिए रैंड () फ़ंक्शन चलाते हैं।
int temp = rand ();
और जब हम पासा बटन प्रोग्राम को दबाते हैं तो पहले इस रैंडम नंबर को मैप करते हैं और फिर बिट वार ऑपरेटर का उपयोग करके नंबर को सात सेगमेंट डिस्प्ले में भेजते हैं।
if (digitalRead (dice) == 0) {int k = temp% 6; अस्थायी = अंक; रुको(); for (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (पिन, अस्थायी 1); temp = temp >> 1; } देरी (200); }
और रीसेट बटन के लिए भी ऐसा ही है।
इस कार्यक्रम में हम एक बार में एक सा भेजते हैं। यहां हम एक लूप के लिए आवेदन कर रहे हैं, जो प्रत्येक खंड में एक-एक करके डेटा भेजने के लिए 7 बार चलता है।