विषयसूची:
- चरण 1: सामग्री का बिल
- चरण 2: योजनाबद्ध और सर्किट
- चरण 3: कोड
- चरण 4: मूल्यों का सुधार
- चरण 5: आलोचना और समीक्षा के बाद परियोजना
- चरण 6: कुछ सोल्डरिंग कार्य के बाद
- चरण 7: सत्य का क्षण
- चरण 8: अंत
वीडियो: एक पिन 4×4 कीपैड: 10 कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:21
हर बार जब मैं एक कीपैड देखता हूं, तो यह बहुत सारे पिन के साथ आता है, यह आपके Arduino पिन का एक बड़ा अपशिष्ट है, तो क्या हम एक और केवल एक पिन के साथ कीपैड चला सकते हैं? उत्तर यहाँ है।
चरण 1: सामग्री का बिल
हार्डवेयर:
01 अरुडिनो यूएनओ
02 ब्रेडबोर्ड
I2C. के साथ 01 एलसीडी
16 पुश बटन
04 प्रतिरोधक 1.5 kΩ
04 प्रतिरोधक 620
04 प्रतिरोधक 220
०८ प्रतिरोधक १००
01 रोकनेवाला 1 kΩ
07 जम्पर तार
सॉफ्टवेयर:
Arduino IDE आपके पीसी पर स्थापित है
चरण 2: योजनाबद्ध और सर्किट
सभी का विचार यह है कि हमारे पास 4*4 मैट्रिक्स पुश बटन हैं जो जमीन से दायीं ओर से जुड़े हुए हैं और क्षैतिज रूप से अन्य लीड (बटन लीड) और 1.5 kΩ, 620Ω, 220Ω और 100Ω के प्रतिरोधों के सिरों से जुड़े हैं। 4 पंक्तियों को चार 100Ω प्रतिरोधों द्वारा जोड़ा गया है जैसा कि योजनाबद्ध दिखाया गया है।
हर बार जब आप एक बटन दबाते हैं तो आप सर्किट को बंद कर देते हैं और करंट एक अलग पथ और प्रतिरोधों की विभिन्न श्रृंखला से होकर जाता है, इसलिए पिन A0 प्रत्येक पुश बटन के लिए एक अलग एनालॉग रीड प्राप्त करता है। अब आपको केवल कोडिंग की आवश्यकता है।
चरण 3: कोड
#शामिल
#शामिल
लिक्विड क्रिस्टल_आई2सी एलसीडी (0x3f, 20, 4);
इंट बटन = A0;
इंट रीडवैल्यू;
व्यर्थ व्यवस्था()
{
सीरियल.बेगिन (९६००);
LCD.begin ();
पिनमोड (बटन, इनपुट);
एलसीडी प्रकाश();
LCD.print ("हैलो वर्ल्ड");
देरी (2000);
एलसीडी.क्लियर ();
LCD.print ("एक पिन 4*4 कीपैड");
देरी (2000); }
शून्य लूप ()
{
रीडवैल्यू = एनालॉगरेड (बटन);
Serial.println (रीडवैल्यू);
अगर (readvalue==852){lcd.clear();lcd.print("A");}
और {अगर (रीडवैल्यू == 763) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("बी");}
और {अगर (रीडवैल्यू == 685) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("सी");}
और {अगर (रीडवैल्यू == 965) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("डी");}
और { अगर (रीडवैल्यू == 565) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("9");}
और {अगर (रीडवैल्यू == 614) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("6");}
और {अगर (रीडवैल्यू == 360) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("3");}
और {अगर (रीडवैल्यू==335){एलसीडी.क्लियर ();एलसीडी.प्रिंट("#");}
और {अगर (रीडवैल्यू==396){lcd.clear();lcd.print("8");}
और {अगर (रीडवैल्यू==349){एलसीडी.क्लियर ();एलसीडी.प्रिंट("5");}
और { अगर (रीडवैल्यू == २३५) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("२");}
और {अगर (रीडवैल्यू == 279) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("0");}
और {अगर (रीडवैल्यू == 452) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("7");}
और {अगर (रीडवैल्यू == 271) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("4");}
और {अगर (रीडवैल्यू == 170) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("1");}
और {अगर (रीडवैल्यू == 92) {एलसीडी. क्लियर (); एलसीडी.प्रिंट ("*");} और {}}}}}}}}}}}}}}}}
चरण 4: मूल्यों का सुधार
जब आप सीरियल मॉनिटर खोलते हैं तो यह 1023 का मान दिखाएगा, यदि आप एक बटन दबाते हैं तो यह आपको एक और रीडिंग देगा, आपको उन मानों को लेना होगा और कोड में कुछ बदलाव करना होगा
चरण 5: आलोचना और समीक्षा के बाद परियोजना
इसमें कोई संदेह नहीं है कि हम सभी यहां अपने ज्ञान को सीखने और साझा करने के लिए हैं, समुदाय के कुछ लोगों द्वारा छोड़ी गई कुछ टिप्पणियों के लिए धन्यवाद जो बहुत मददगार थे, मैंने अपनी परियोजना में कुछ समायोजन और सुधार करने का फैसला किया:
हार्डवेयर:
मैंने ब्रेडबोर्ड में खराब कनेक्शन की समस्या से बचने के लिए पीसीबी में सभी घटकों को मिलाप करने का फैसला किया।
कोड:
एक मित्र ने मुझे एक सॉफ्टवेयर डिबगिंग का उपयोग करने की सलाह दी और यह सिर्फ एक लूप है (उदाहरण के लिए "लूप" के लिए) कार्यक्रम को पढ़ने के लिए कुछ समय लेने के लिए इसका मतलब है कि यह बहुत पढ़ता है (मेरी परीक्षा में 500) लेकिन लेता है केवल आखिरी वाला।
के लिए (i=1; i<= 500; i++) {// केवल ५००वां एनालॉग लें
मूल्य = एनालॉग रीड (बटन);} // यह कुछ समय लेने में मदद करता है ताकि खराब रीडिंग से बचा जा सके
उनके लिए धन्यवाद एक अन्य मित्र ने मुझे "रीडवैल्यू" की तुलना मूल्यों की एक सीमा के साथ करने की सलाह दी, क्योंकि "रीडवैल्यू" एक ही पुश बटन के लिए बहुत सारे मान लेता है। उदाहरण के लिए "ए" का एक पठन देता है: 849, 850, ८५१ ८५२, ८५३, ८५४, ८५५ तो यह ७ मानों की एक सीमा है: एक सीमा (८५२) और ३ मान बाएँ और दाएँ। हमें यहां क्या करना है "रीडवैल्यू" और "852" से "3" के बीच अंतर के पूर्ण मूल्य की तुलना करना है।
if(abs(readvalue-852)<=8){lcd.clear();lcd.print("A");}
चरण 6: कुछ सोल्डरिंग कार्य के बाद
चरण 7: सत्य का क्षण
जैसा कि आप देख सकते हैं कि प्रोग्राम कभी-कभी बटन को भ्रमित करता है लेकिन यह अभी भी काम करता है, सिद्धांत रूप में सर्किट में कुछ भी गलत नहीं है लेकिन कोड को अधिक अंशांकन की आवश्यकता है।
चरण 8: अंत
मुझे आशा है कि आपको यह परियोजना पसंद आएगी और आप इसे करने की कोशिश करेंगे, हो सकता है कि आप मुझसे बेहतर करेंगे।
मुझसे पूछें कि क्या आपके कोई प्रश्न हैं, टिप्पणी छोड़ें और, अगर आपको यह पसंद है तो मुझे वोट देना न भूलें।
सिफारिश की:
बिना सोल्डर पिन हैडर के Arduino नैनो के लिए ICSP कनेक्टर लेकिन पोगो पिन: 7 कदम
बिना सोल्डर पिन हैडर लेकिन पोगो पिन के Arduino नैनो के लिए ICSP कनेक्टर: बोर्ड पर बिना सोल्डर पिन हेडर के Arduino नैनो के लिए ICSP कनेक्टर बनाएं, लेकिन Pogo Pin.Parts3×2 पिन सॉकेट X1 - APitch 2.54mm ड्यूपॉन्ट लाइन वायर महिला पिन कनेक्टर हाउसिंग टर्मिनल x6 - BP75-E2 (1.3 मिमी शंक्वाकार सिर) स्प्रिंग टेस्ट जांच पोगो पिन
DIY Arduino पिन पॉइंटर मेटल डिटेक्टर: 3 कदम
DIY Arduino पिन पॉइंटर मेटल डिटेक्टर: एक पारंपरिक मेटल डिटेक्टर एक दफन वस्तु का पता लगा सकता है और आपको जमीन के नीचे की वस्तु का एक मोटा स्थान दे सकता है। . साथ ही, यह कर सकते हैं
वन पिन कीपैड रास्पबेरी पाई उपयोग गाइड: 9 चरण
वन पिन कीपैड रास्पबेरी पाई उपयोग गाइड: अस्वीकरण: यह एक खुले स्रोत उत्पाद के लिए एक उपयोग गाइड है: एक पिन कीपैड। यह एक DIY परियोजना नहीं है। यदि आप स्वयं बोर्ड बनाना चाहते हैं, तो ईगल फ़ाइलें ट्यूटोरियल के अंत में मिल सकती हैं। वन पिन कीपैड क्या है? एक पिन कीपैड
8051 के साथ कीपैड इंटरफेस और 7 सेगमेंट में कीपैड नंबर प्रदर्शित करना: 4 चरण (चित्रों के साथ)
8051 के साथ कीपैड इंटरफेस और 7 सेगमेंट में कीपैड नंबर प्रदर्शित करना: इस ट्यूटोरियल में मैं आपको बताने जा रहा हूं कि कैसे हम 8051 के साथ कीपैड को इंटरफेस कर सकते हैं और 7 सेगमेंट डिस्प्ले में कीपैड नंबर प्रदर्शित कर सकते हैं।
आईएसपी ६ पिन से ८ पिन सॉकेट: ४ कदम
ISP ६ पिन से ८ पिन सॉकेट: जिस कारण से मैंने मुख्य रूप से इस परियोजना का निर्माण किया था, वह ATTiny45 को प्रोग्राम करना था, जिसमें ८ पिन कनेक्शन है, जबकि मेरे USBtinyISP (लेडीडा से) में केवल १० पिन और ६ पिन कनेक्शन है। लगभग ३-४ सप्ताह तक इंटरनेट पर जासूसी करने के बाद मुझे कुछ भी नहीं मिला