इस ट्यूटोरियल में हम ATMEGA32A माइक्रोकंट्रोलर के साथ एक 4x4 (16 की) कीपैड को इंटरफेस करने जा रहे हैं। हम जानते हैं कि कीपैड इलेक्ट्रॉनिक्स परियोजनाओं में उपयोग किए जाने वाले सबसे महत्वपूर्ण इनपुट उपकरणों में से एक है। कीपैड एक इलेक्ट्रॉनिक सिस्टम को कमांड या निर्देश देने का सबसे आसान तरीका है।
अवयव आवश्यक
हार्डवेयर: ATMEGA32, बिजली की आपूर्ति (5v), AVR-ISP PROGRAMMER, JHD_162ALCD (16 * 2LCD), 100uF संधारित्र, 100nF संधारित्र, 10KΩ रोकनेवाला (8 टुकड़े)।
सॉफ्टवेयर: Atmel स्टूडियो 6.1 या Atmel स्टूडियो 6.2, progisp या फ़्लैश मैजिक।
सर्किट आरेख और कार्य स्पष्टीकरण
ATMEGA32 के सर्किट पोर्ट में डेटा पोर्ट एलसीडी से जुड़ा है। यहां किसी को फ्यूज बाइट्स को बदलकर PORTC ot ATMEGA में JTAG कम्युनिकेशन को डिसेबल करना याद रखना चाहिए, अगर कोई PORTC को सामान्य कम्युनिकेशन पोर्ट के रूप में इस्तेमाल करना चाहता है। 16x2 एलसीडी में बैक लाइट होने पर सभी में 16 पिन होते हैं, अगर बैक लाइट नहीं है तो 14 पिन होंगे। एक बिजली या पीछे की हल्की पिंस को छोड़ सकता है। अब 14 पिनों में 8 डेटा पिन (7-14 या D0-D7), 2 पावर सप्लाई पिन (1 & 2 या VSS & VDD या gnd & + 5v), कंट्रास्ट कंट्रोल के लिए 3 rd पिन (VEE- नियंत्रण हैं कि पात्रों को कितना मोटा होना चाहिए दिखाया गया है), और 3 नियंत्रण पिन (आरएस और आरडब्ल्यू और ई)।
सर्किट में, आप देख सकते हैं कि मैंने केवल दो नियंत्रण पिन लिए हैं, यह लचीलापन देता है, कंट्रास्ट बिट और READ / WRITE का अक्सर उपयोग नहीं किया जाता है, ताकि उन्हें जमीन पर छोटा किया जा सके। यह एलसीडी को कंट्रास्ट और रीड मोड में डालता है। हमें केवल वर्ण और डेटा भेजने के लिए सक्षम और आरएस पिन को नियंत्रित करने की आवश्यकता है।
एलसीडी के लिए जो कनेक्शन दिए गए हैं, वे नीचे दिए गए हैं:
PIN1 या VSS जमीन पर
PIN2 या VDD या VCC से + 5v पावर
पिन 3 या वीईई को ग्राउंड (शुरुआती के लिए अधिकतम विपरीत देता है)
पिन 4 या आरएस (रजिस्टर चयन) को यूसी के पीडी 6 में
पिन 5 या आरडब्ल्यू (पढ़ें / लिखें) को जमीन पर रखें (रीड मोड में एलसीडी लगाता है उपयोगकर्ता के लिए संचार को आसान बनाता है)
पिन 6 या uC के PD5 के लिए E (सक्षम करें)
पिन 7 या U0 से PBC का P0
PIN8 या U1 के PB1 को D1
PIN9 या U2 के PB2 को D2
पिन 10 या यूसी के पीबी 3 से 3 डी
PIN11 या U4 के PB4 को D4
PIN12 या U5 के PB5 को D5
PIN13 या U6 के PB6 को D6
पिन 14 या u7 के D7to PB7
सर्किट में आप देख सकते हैं कि हमने 8bit संचार (D0-D7) का उपयोग किया है लेकिन यह अनिवार्य नहीं है, हम 4bit संचार (D4-D7) का उपयोग कर सकते हैं लेकिन 4 बिट संचार कार्यक्रम थोड़ा जटिल हो जाता है। इसलिए उपरोक्त तालिका के मात्र अवलोकन से हम एलसीडी के 10 पिन को कंट्रोलर से जोड़ रहे हैं जिसमें 8 पिन डेटा पिन और 2 पिन नियंत्रण के लिए हैं।
अब हम कीपैड के बारे में बात करते हैं, कीपैड मल्टीप्लेक्स कीज़ के अलावा और कुछ नहीं है। बटन नियंत्रण प्रणाली के पिन उपयोग को कम करने के लिए एक बहुसंकेतित रूप में जुड़े हुए हैं।
विचार करें कि हमारे पास 4x4 कीपैड है, इस कीपैड में हमारे पास 16 बटन हैं, सामान्य मामलों में हमें 16 बटन को इंटरफ़ेस करने के लिए 16 नियंत्रक पिन की आवश्यकता होती है, लेकिन यह नियंत्रण प्रणाली के दृष्टिकोण से अच्छा नहीं है। इस पिन के उपयोग को मल्टीप्लेक्स फॉर्म में बटनों को जोड़कर कम किया जा सकता है।
उदाहरण के लिए विचार करें कि हमारे पास 16 बटन हैं और हम इसे कीपैड बनाने के लिए नियंत्रक से जोड़ना चाहते हैं, इन कुंजियों को व्यवस्थित किया गया है जैसा कि चित्र में दिखाया गया है:
ये बटन सामान्य कॉलम द्वारा जुड़े हुए हैं जैसा कि चित्र में दिखाया गया है:
जैसा कि चित्र में दिखाया गया है, हर चार बटन के गैर चिह्नित छोरों को स्तंभ बनाने के लिए खींचा जाता है, और इसलिए 16 कुंजी के लिए हमारे पास चार स्तंभ हैं।
यदि हम ऊपर दिए गए कॉलम कनेक्शन को भूल जाते हैं, और पंक्ति बनाने के लिए हर चार बटन के सामान्य चिह्नित सिरों को एक साथ जोड़ते हैं:
जैसा कि चित्र में दिखाया गया है, 16 कुंजी के लिए हमारे पास चार पंक्तियाँ होंगी जैसा कि चित्र में दिखाया गया है।
अब जब वे दोनों एक साथ देखे जाते हैं तो हमें नीचे के सर्किट जैसा कुछ मिलता है:
यहां हमने नियंत्रक के पिन उपयोग को कम करने के लिए 16 कुंजियों को एक बहुसंकेतन रूप में जोड़ा है। जब कनेक्ट किए गए 16 कुंजियों के पहले मामले की तुलना में हमें नियंत्रक पर 16pins की आवश्यकता थी, लेकिन अब बहुसंकेतन के बाद हमें 16 कुंजियों को जोड़ने के लिए नियंत्रक के बस 8 पिनों की आवश्यकता है।
आम तौर पर यह एक कीपैड के अंदर प्रस्तुत किया जाता है:
जैसा कि ऊपर की आकृति में दिखाया गया है, उपरोक्त कीपैड में 16 चाबियाँ हैं और इनमें से प्रत्येक कुंजी मल्टीप्लेक्स बटन कॉन्फ़िगरेशन में एक बटन का प्रतिनिधित्व करती है। और 8 पिन कनेक्शन भी हैं जैसा कि ऊपर के आंकड़े में दर्शाया गया है जो मल्टीप्लेक्स कनेक्शन का प्रतीक है।
अब काम करने के लिए:
यहां कीपैड में चार कॉलम और चार पंक्तियां हैं, बटन दबाए जाने की पहचान के लिए, हम क्रॉस संदर्भ विधि का उपयोग करने जा रहे हैं। यहाँ पहले हम या तो सभी कॉलम या सभी पंक्तियों को vcc से जोड़ने जा रहे हैं, इसलिए यदि पंक्तियाँ सामान्य vcc से जुड़ी हैं, तो हम कॉलम को कंट्रोलर के इनपुट के रूप में लेने जा रहे हैं।
अब यदि बटन एक को दबाया जाता है जैसा कि चित्र में दिखाया गया है:
उसके बाद सर्किट के माध्यम से एक करंट प्रवाहित होता है जैसा कि नीचे की आकृति में दिखाया गया है:
तो हम एक बटन प्रेस के लिए, C1 उच्च है। इस क्षण, हम पावर और इनपुट पोर्ट को स्थानांतरित करने जा रहे हैं, हम कॉलम को पावर देने और इनपुट के बीच पंक्तियाँ लेने जा रहे हैं, उसके अनुसार, नीचे दिए गए चित्र में दिखाया गया एक शक्ति प्रवाह होगा:
तो पंक्ति के लिए हमारे पास आर 1 उच्च है।
अब तक हमारे पास पहले मामले में C1 उच्च और दूसरे मामले में R1 उच्च है, इसलिए हमारे पास बटन की मैट्रिक्स स्थिति है इसलिए "नंबर" है।
यदि दूसरा बटन दबाया जाता है, तो हमारे पास कॉलम के रूप में C1 होगा लेकिन आम कॉलम में हमें मिलने वाला उच्च तर्क 'R2' होगा। इसलिए हमारे पास C1 और R2 होंगे, इसलिए हमारे पास दूसरे बटन की मैट्रिक्स स्थिति होगी।
इस तरह से हम प्रोग्राम लिखने जा रहे हैं, हम कीपैड के आठ पिन को कंट्रोलर के आठ पिन से जोड़ने जा रहे हैं। और स्टार्ट के लिए हम कीपैड की चार पंक्तियों को पावर करने के लिए कंट्रोलर के चार पिन को पावर करते हैं, इस समय अन्य चार पिन को इनपुट के रूप में लिया जाता है। जब बटन को इसी कॉलम पिन को दबाया जाता है और कंट्रोलर पिन को ऊपर खींचा जाता है, तो यह इनपुट और पावर को इनपुट में बदलने के लिए पहचाना जाएगा, इसलिए हमारे पास इनपुट के रूप में पंक्तियां होंगी।
इसके द्वारा हमें उपयोगकर्ता द्वारा दबाया गया बटन मिलता है। इस मैट्रिक्स पते को संबंधित संख्या के लिए निर्देशित किया जाता है, और यह संख्या एलसीडी पर दिखाई जाती है।
एवीआर माइक्रोकंट्रोलर के साथ कीपैड इंटरफेसिंग के कार्य को नीचे दिए गए सी कोड में कदम से समझाया गया है। आप यह भी देख सकते हैं: 8051 माइक्रोकंट्रोलर के साथ कीपैड इंटरफेसिंग।