मानव दुनिया और मशीन की दुनिया के बीच एक अच्छा संचार स्थापित करने के लिए, प्रदर्शन इकाइयां एक महत्वपूर्ण भूमिका निभाती हैं। और इसलिए वे एम्बेडेड सिस्टम का एक महत्वपूर्ण हिस्सा हैं। प्रदर्शन इकाइयाँ - बड़ा या छोटा, एक ही मूल सिद्धांत पर काम करते हैं। ग्राफिक डिस्प्ले और 3 डी डिस्पले जैसी जटिल डिस्प्ले इकाइयों के अलावा, किसी को 16x1 और 16x2 इकाइयों जैसे सरल डिस्प्ले के साथ काम करना चाहिए। 16x1 डिस्प्ले यूनिट में 16 अक्षर होंगे और एक लाइन में होंगे। 16x2 एलसीडी में कुल 16in 1 लाइन में 32 और दूसरी लाइन में 16 कैरेक्टर होंगे। यहाँ यह समझना चाहिए कि प्रत्येक वर्ण में 5x10 = 50 पिक्सेल होते हैं, इसलिए किसी एक चरित्र को प्रदर्शित करने के लिए सभी 50 पिक्सेल को एक साथ काम करना होगा। लेकिन हमें इसके बारे में चिंता करने की आवश्यकता नहीं है क्योंकि डिस्प्ले यूनिट में एक और नियंत्रक (एचडी 44780) है जो पिक्सल को नियंत्रित करने का काम करता है। (आप इसे एलसीडी यूनिट में देख सकते हैं,यह काली आंख है)।
इस ट्यूटोरियल में हम ARDUINO UNO के साथ 16x2 LCD इंटरफ़ेस करने जा रहे हैं । सामान्य विकास बोर्डों के विपरीत एक ARDUINO में एलसीडी को बदलना काफी आसान है। यहां हमें डेटा भेजने और प्राप्त करने के बारे में चिंता करने की आवश्यकता नहीं है। हमें बस पिन नंबरों को परिभाषित करना है और यह एलसीडी पर डेटा प्रदर्शित करने के लिए तैयार होगा।
अवयव आवश्यक
हार्डवेयर: ARDUINO UNO, बिजली की आपूर्ति (5v), JHD_162ALCD (16x2LCD), 100uF संधारित्र।
सॉफ्टवेयर: Arduino IDE (Arduino nightly)।
सर्किट आरेख और स्पष्टीकरण
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 या वीईई को ग्राउंड (शुरुआती के लिए अधिकतम विपरीत देता है)
AR4INO UNO के PIN0 को PIN4 या RS (पंजीकरण चयन)
पिन 5 या आरडब्ल्यू (पढ़ें / लिखें) को जमीन पर रखें (रीड मोड में एलसीडी लगाता है उपयोगकर्ता के लिए संचार को आसान बनाता है)
PIN6 या E (सक्षम) ARDUINO UNO के PIN1 के लिए
पिन 11 या एआर 4 के यूएनओ के पिन 8 को डीओ
PIN12 या D5 ARDUINO UNO का PIN9
PIN13 या D6 से AR10INO UNO का PIN10
PIN14 या D7 से PIN11 का ARDUINO UNO
ARDUINO IDE उपयोगकर्ता को 4 बिट मोड में एलसीडी का उपयोग करने की अनुमति देता है। इस प्रकार का संचार उपयोगकर्ता को ARDUINO पर पिन उपयोग को कम करने में सक्षम बनाता है, इसके विपरीत अन्य ARDUINO को 4 इसे मोड में उपयोग करने के लिए अलग से प्रोग्राम करने की आवश्यकता नहीं है क्योंकि डिफ़ॉल्ट रूप से ARDUINO 4 बिट मोड में संचार करने के लिए सेट है। सर्किट में आप देख सकते हैं कि हमने 4bit संचार (D4-D7) का उपयोग किया है।
इसलिए उपरोक्त तालिका से मात्र अवलोकन से हम एलसीडी के 6 पिन को कंट्रोलर से जोड़ रहे हैं जिसमें 4 पिन डेटा पिन और 2 पिन नियंत्रण के लिए हैं।
उपरोक्त आंकड़ा ARDUINO UNO से जुड़े 16x2 LCD के सर्किट आरेख को दर्शाता है ।
काम कर रहे
ARDUINO UNO को LCD इंटरफ़ेस करने के लिए, हमें कुछ चीजों को जानना होगा।
|
उपरोक्त तालिका के अनुसार, हमें केवल ARDUINO और LCD के बीच संचार स्थापित करने के लिए इन चार लाइनों को देखना होगा।
पहले हमें हेडर फ़ाइल को सक्षम करना होगा ('#include'
दूसरा हमें यह बताने की आवश्यकता है कि हम किस प्रकार के एलसीडी का उपयोग कर रहे हैं। चूंकि हमारे पास विभिन्न प्रकार के एलसीडी हैं (जैसे 20x4, 16x2, 16x1 आदि)। यहाँ हम UNO में 16x2 LCD इंटरफ़ेस करने जा रहे हैं, इसलिए हमें 'lcd.begin (16, 2);' मिलता है। 16x1 के लिए हमें 'lcd.begin (16, 1);' मिलता है।
इस निर्देश में हम बोर्ड को बताने जा रहे हैं कि हमने पिनों को कहां से जोड़ा है। जो पिन जुड़े हुए हैं उन्हें "RS, En, D4, D5, D6, D7" के रूप में दर्शाया जाना चाहिए। इन पिनों का सही ढंग से प्रतिनिधित्व किया जाना है। चूंकि हमने RS को PIN0 से जोड़ा है और इसलिए सर्किट आरेख में शो के रूप में, हम "लिक्विड क्रिस्टल एलसीडी (0, 1, 8, 9, 10, 11) के रूप में बोर्ड में पिन नंबर का प्रतिनिधित्व करते हैं।" एलसीडी में प्रदर्शित किए जाने वाले डेटा को "cd.print (" हैलो, दुनिया! ")" "लिखा जाना चाहिए। इस कमांड के साथ LCD 'हैलो, वर्ल्ड!' प्रदर्शित करता है।
जैसा कि आप देख सकते हैं कि हमें किसी और चीज के बारे में चिंता करने की आवश्यकता नहीं है, हमें बस आरंभ करना है और यूएनओ डेटा प्रदर्शित करने के लिए तैयार होगा। हमें BYTE द्वारा यहाँ डेटा भेजने के लिए एक प्रोग्राम लूप लिखना नहीं है।
एलसीडी और यूएनओ के बीच संचार का तरीका नीचे दिए गए सी कोड में चरणबद्ध तरीके से बताया गया है: