विषयसूची:

1 डॉलर से कम में 3-वायर HD44780 LCD: 5 कदम
1 डॉलर से कम में 3-वायर HD44780 LCD: 5 कदम

वीडियो: 1 डॉलर से कम में 3-वायर HD44780 LCD: 5 कदम

वीडियो: 1 डॉलर से कम में 3-वायर HD44780 LCD: 5 कदम
वीडियो: Interfacing LCD with arduino in hindi | arduino series for beginners part #3 2024, नवंबर
Anonim
1 डॉलर से कम में 3-वायर HD44780 LCD
1 डॉलर से कम में 3-वायर HD44780 LCD

इस निर्देश में हम सीखेंगे कि कैसे हम HD44780 चिपसेट पर आधारित LCD को SPI बस से जोड़ सकते हैं और इसे $1 से कम में केवल 3 तारों के साथ चला सकते हैं। हालाँकि मैं इस ट्यूटोरियल में HD44780 अल्फ़ान्यूमेरिक डिस्प्ले पर ध्यान केंद्रित करूँगा, वही सिद्धांत किसी भी अन्य LCD के लिए बहुत समान काम करेगा जो 8 बिट समानांतर डेटा बस का उपयोग करता है, और इसे 16 बिट डेटा बसों के साथ डिस्प्ले के अनुरूप आसानी से अनुकूलित किया जा सकता है।. HD44780 (और संगत) आधारित अल्फ़ान्यूमेरिक डिस्प्ले आमतौर पर 16x2 (16 वर्णों वाली 2 पंक्तियों) और 20x4 कॉन्फ़िगरेशन में उपलब्ध होते हैं, लेकिन कई और रूपों में पाए जा सकते हैं। सबसे 'जटिल' डिस्प्ले 40x4 डिस्प्ले होगा, इस तरह का डिस्प्ले खास है क्योंकि इसमें 2 HD44780 कंट्रोलर हैं, एक ऊपरी दो पंक्तियों के लिए और एक नीचे की दो पंक्तियों के लिए। कुछ ग्राफिक एलसीडी में दो कंट्रोलर भी होते हैं। HD44780 LCD महान हैं, वे बहुत सस्ते, पठनीय और काम करने में काफी आसान हैं। लेकिन उनमें कुछ कमियां भी हैं, ये डिस्प्ले Arduino से कनेक्ट होने पर बहुत सारे I/O पिन लेते हैं। साधारण परियोजनाओं में यह चिंता का विषय नहीं है, लेकिन जब परियोजनाएं बड़ी हो जाती हैं, बहुत सारे आईओ के साथ, या जहां एनालॉग रीड या पीडब्लूएम जैसी चीजों के लिए कुछ पिन की आवश्यकता होती है, तथ्य यह है कि इन एलसीडी को न्यूनतम 6 पिन की आवश्यकता होती है संकट। लेकिन हम इस समस्या को सस्ते और दिलचस्प तरीके से हल कर सकते हैं।

चरण 1: अवयव प्राप्त करना

मैंने इस परियोजना में उपयोग किए गए अधिकांश घटकों के लिए TaydaElectronics का उपयोग किया। आप इन भागों को eBay पर भी प्राप्त कर सकते हैं, लेकिन उपयोग में आसानी के लिए, मैं आपको Tayda. Shopping List2 - 74HC595 पैकेज DIP161 - जेनेरिक पुरुष हेडर - 2 पिन से जोड़ूंगा। इसकी आवश्यकता नहीं है, मैंने इसे बैकलाइट को स्थायी रूप से अक्षम करने के तरीके के रूप में उपयोग किया है। 3 - सिरेमिक कैपेसिटर - कैपेसिटेंस 0.1μF; वोल्टेज 50V1 - इलेक्ट्रोलाइटिक कैपेसिटर - कैपेसिटेंस 10μF; वोल्टेज 35V1 - सिरेमिक संधारित्र - समाई 220pF; वोल्टेज 50V1 - NPN-ट्रांजिस्टर - भाग # PN2222A*1 - 1k रेसिस्टर1 - ट्रिमर पोटेंशियोमीटर - अधिकतम प्रतिरोध 5kΩ1 - 470 रेसिस्टर* NPN ट्रांजिस्टर के साथ बैकलाइट तब तक बंद रहेगी जब तक कि इसे सॉफ़्टवेयर द्वारा चालू नहीं किया जाता है। यदि आप डिफ़ॉल्ट रूप से बैकलाइट चालू रखना चाहते हैं, तो PNP प्रकार के ट्रांजिस्टर का उपयोग करें। हालाँकि, प्रदान किए गए पुस्तकालय के कोड में परिवर्तन करना होगा। इस सूची के लिए कुल योग $0.744 है। पिन हेडर की भी आवश्यकता नहीं है, इसलिए आप वहीं 15 सेंट बचा सकते हैं और उप-योग $0.6 होगा।

चरण 2: अपने हार्डवेयर को जानें #1

अपने हार्डवेयर को जानें #1
अपने हार्डवेयर को जानें #1

यहाँ एक HD44780 LCD में से एक मानक पिन है, यह भी कुछ ग्राफिक LCD के समान ही है। HD44780 दो मोड में काम कर सकता है: 1. 4-बिट मोड, जहां LCD को भेजे गए प्रत्येक बाइट में 2 4-बिट भाग होते हैं। 2. 8-बिट मोड, जिस पर हम फोकस करेंगे। एलसीडी में कुल 16 पिन होते हैं, 3 कंट्रोल पिन और 8 डेटा पिन: आरएस - नियंत्रित करता है कि हम एलसीडी को कमांड या डेटा भेजना चाहते हैं या नहीं। जहां 'उच्च' का अर्थ है डेटा (एक वर्ण) और 'निम्न' का अर्थ है एक कमांड बाइट। आर/डब्ल्यू - एचडी 44780 नियंत्रक आपको इसकी रैम से पढ़ने की अनुमति देता है। जब यह पिन 'हाई' होता है तो हम इसके डेटा पिन से डेटा पढ़ सकते हैं। जब यह 'लो' होता है तो हम LCD को डेटा लिख सकते हैं। हालांकि एलसीडी से पढ़ने का विकल्प कुछ मामलों में उपयोगी हो सकता है, हम इस ट्यूटोरियल में इस पर नहीं जाएंगे, और हम यह सुनिश्चित करने के लिए बस इस पिन को ग्राउंड करेंगे कि यह हमेशा राइट मोड में है। ई - ई 'सक्षम' पिन है, इस पिन को अपनी रैम में डेटा लिखने के लिए 'उच्च' फिर 'निम्न' टॉगल किया जाता है और अंततः इसे स्क्रीन पर प्रदर्शित किया जाता है। DB0-7 - ये डेटा पिन हैं। 4-बिट मोड में हम केवल 4 हाई बिट्स DB4-DB7 का उपयोग करते हैं, और 8 बिट मोड में उन सभी का उपयोग किया जाता है।VSS - यह ग्राउंड पिन है।VCC - यह पावर पिन, LCD 5V बिजली की आपूर्ति को चलाता है।, हम इसे Arduino के +5v पिन से आसानी से पावर फीड कर सकते हैं। Vo - यह वह पिन है जो आपको डिस्प्ले के लिए कंट्रास्ट लेवल सेट करने की अनुमति देता है, इसके लिए एक पोटेंशियोमीटर की आवश्यकता होती है, आमतौर पर 5K ओम पॉट का उपयोग किया जाता है। LED+ - यह है बैकलाइट के लिए शक्ति स्रोत। कुछ LCD बैकलाइट के साथ नहीं आते हैं, और उनमें केवल 14 पिन होते हैं। ज्यादातर मामलों में इस पिन को +5v कनेक्शन की भी आवश्यकता होती है।एलईडी- - यह बैकलाइट के लिए आधार है।** डिस्प्ले डेटाशीट की जांच करना या बैकलाइट रेसिस्टर की जांच के लिए इसके पीसीबी का निरीक्षण करना महत्वपूर्ण है, अधिकांश एलसीडी में उन्हें बनाया जाएगा -इन, इस मामले में आपको केवल एलईडी + पर बिजली लागू करनी है और एलईडी को जमीन पर लागू करना है। लेकिन अगर आपके एलसीडी में बैकलाइट के लिए बिल्ट-इन रेसिस्टर नहीं है, तो यह महत्वपूर्ण है कि आप एक को जोड़ें, अन्यथा बैकलाइट बहुत अधिक बिजली की खपत करेगा और यह अंततः जल जाएगा। ज्यादातर मामलों में जिस तरह से इस एलसीडी को Arduino के लिए वायर्ड किया जाता है, वह इसे 4-बिट मोड में उपयोग करके और R/W पिन को ग्राउंडिंग करता है। इस तरह हम पिन RS, E और DB4-DB7 का उपयोग करते हैं। 4-बिट मोड में चलने का एक और छोटा नुकसान यह है कि स्क्रीन पर डेटा लिखने में उतना समय लगता है जितना कि 8-बिट कॉन्फ़िगरेशन में लगता है। एलसीडी में 37 माइक्रोसेकंड का 'सेटलिंग' समय होता है, इसका मतलब है कि आपको एलसीडी को अगला कमांड या डेटा-बाइट भेजने से पहले 37 माइक्रोसेकंड इंतजार करना होगा। चूंकि 4-बिट मोड में हमें प्रत्येक बाइट के लिए दो बार डेटा भेजना होता है, इसलिए एक बाइट को लिखने में लगने वाला कुल समय 74 माइक्रोसेकंड तक चला जाता है। यह अभी भी काफी तेज़ है, लेकिन मैं चाहता था कि मेरा डिज़ाइन सर्वोत्तम संभव परिणाम उत्पन्न करे। उपयोग की गई पिनों की संख्या के साथ हमारी समस्या का समाधान एक सीरियल से समानांतर कनवर्टर में निहित है …

चरण 3: अपने हार्डवेयर को जानें #2

अपने हार्डवेयर को जानें #2
अपने हार्डवेयर को जानें #2

हम जो करेंगे वह एक एडेप्टर का निर्माण करेगा जो Arduino से निकलने वाले एक सीरियल प्रकार के संचार को लेता है और डेटा को एक समानांतर आउटपुट में परिवर्तित करता है जिसे हमारे LCD को फीड किया जा सकता है। 74HC595 चिप आता है। यह शिफ्ट रजिस्टर को संचालित करने के लिए बहुत सस्ता और सरल है। संक्षेप में यह जो करता है वह एक घड़ी और डेटा सिग्नल लेता है जिसका उपयोग वह आंतरिक 8 बिट बफर को 8 अंतिम बिट्स के साथ भरने के लिए करता है जिसे 'क्लॉक इन' किया गया था। एक बार जब 'लच' (ST_CP) पिन को 'उच्च' लाया जाता है तो यह इन बिट्स को अपने 8 आउटपुट में ले जाता है। 595 में एक बहुत अच्छी सुविधा है, इसमें एक सीरियल डेटा आउट पिन (Q7') है, इस पिन का उपयोग श्रृंखला 2 या अधिक 595 को एक साथ करने के लिए सीरियल से समानांतर एडेप्टर बनाने के लिए किया जा सकता है जो 16 या अधिक बिट चौड़े हैं। इस परियोजना के लिए हमें इनमें से 2 चिप्स की आवश्यकता होगी। योजनाबद्ध को 4-बिट मोड में एकल 595 के साथ काम करने के लिए भी संशोधित किया जा सकता है, लेकिन यह इस ट्यूटोरियल द्वारा कवर नहीं किया जाएगा।

चरण 4: यह सब ऊपर तारों

वायरिंग इट ऑल अप
वायरिंग इट ऑल अप

अब जब हम जानते हैं कि हमारा हार्डवेयर कैसे काम करता है तो हम इसे पूरी तरह से तार-तार कर सकते हैं। योजनाबद्ध में हम एक 16 बिट समानांतर आउटपुट बनाने के लिए 2 595 चिप्स डेज़ी को एक साथ जंजीर में देखते हैं। निचला चिप वास्तव में मुख्य है, और ऊपरी एक डेज़ी से जुड़ा हुआ है। हम यहां जो देखते हैं वह यह है कि निचला 595 एलसीडी के डेटा पिन को 8-बिट कॉन्फ़िगरेशन में चला रहा है, शीर्ष चिप ट्रांजिस्टर को चालू या बंद करके आरएस सिग्नल और बैकलाइट को नियंत्रित करता है। अपने हार्डवेयर को जानें #1 पृष्ठ पर LCD बैकलाइट के बारे में *नोट याद रखें, यदि आपके LCD में बैकलाइट रेसिस्टर नहीं है, तो अपने सर्किट में एक जोड़ना न भूलें। मेरे मामले में एलसीडी मैं पहले से ही एक अवरोधक के साथ आया हूं, इसलिए मैंने इस कदम को छोड़ दिया। इसके विपरीत 5K ओम पॉट के माध्यम से लगाया जाता है, एक पिन GND में जाता है दूसरा VCC में जाता है और वाइपर LCD पर Vo पिन में जाता है। एलसीडी और 595 की वीसीसी लाइनों पर उपयोग किए जाने वाले कैपेसिटर कैपेसिटर को डिकूपिंग कर रहे हैं, वे हस्तक्षेप से छुटकारा पाने के लिए हैं। यदि आप ब्रेडबोर्ड पर काम कर रहे हैं तो वे जरूरी नहीं हैं, लेकिन इसका उपयोग तब किया जाना चाहिए जब आप इस सर्किट का अपना संस्करण "लैब स्थितियों" के बाहर उपयोग करने के लिए बनाते हैं। R5 और C9 उसी विशिष्ट क्रम में RC विलंब बनाते हैं, जो यह सुनिश्चित करता है कि 595 के आउटपुट में डेटा को LCD पर सक्षम पिन 'उच्च' सेट करने और डेटा को पढ़ने से पहले स्थिर होने का समय है। नीचे 595 का Q7' शीर्ष पर 595 के सीरियल डेटा इनपुट में जाता है, यह 595s की डेज़ी श्रृंखला बनाता है और इस प्रकार 16 बिट इंटरफ़ेस। Arduino तक वायरिंग करना आसान है। हम Arduino के SPI पिन का उपयोग करके 3-तार कॉन्फ़िगरेशन का उपयोग करते हैं। यह बहुत तेजी से डेटा ट्रांसफर की अनुमति देता है, एलसीडी को 2 बाइट भेजने में आमतौर पर लगभग 8 माइक्रोसेकंड लगते हैं। यह बहुत तेज़ है, और यह वास्तव में डेटा को संसाधित करने के लिए LCD के समय की तुलना में बहुत तेज़ है, इस प्रकार प्रत्येक लेखन के बीच 30 माइक्रोसेकंड की देरी की आवश्यकता होती है। SPI का उपयोग करने का एक बहुत बड़ा लाभ यह है कि D11 और D13 पिन अन्य SPI उपकरणों के साथ साझा किए जाते हैं। इसका मतलब यह है कि यदि आपके पास पहले से ही एक अन्य घटक है जो एसपीआई का उपयोग करता है, जैसे कि एक्सेलेरोमीटर, तो यह समाधान सक्षम सिग्नल के लिए केवल एक अतिरिक्त पिन का उपयोग करेगा। अगले पेज पर हम रिजल्ट देखेंगे। मैंने एक परफ़ॉर्मर पर एक बैकपैक बनाया है और यह अब तक मेरे लिए बहुत अच्छा काम कर रहा है।

चरण 5: परिणाम + पुस्तकालय

परिणाम + पुस्तकालय
परिणाम + पुस्तकालय
परिणाम + पुस्तकालय
परिणाम + पुस्तकालय
परिणाम + पुस्तकालय
परिणाम + पुस्तकालय
परिणाम + पुस्तकालय
परिणाम + पुस्तकालय

"एक तस्वीर एक हजार शब्दों के लायक है", मैं इस कथन से सहमत हूं, इसलिए इस परियोजना के अंतिम परिणाम की कुछ छवियां यहां दी गई हैं। ये पूर्ण उत्पाद की छवियां हैं, फ़्रिट्ज़िंग पीसीबी दृश्य वह परफ़ॉर्म लेआउट है जिसका उपयोग मैंने अपना बैकपैक बनाने के लिए किया था। यदि आप अपना खुद का निर्माण करना चाहते हैं तो आपको यह उपयोगी लग सकता है। मुझे यह इतना पसंद आया कि मैंने डिप्ट्रेस का उपयोग करके एक पीसीबी डिजाइन किया और 10 पीसीबी के बैच का आदेश दिया। मुझे अपने लिए २ या ३ इकाइयों की आवश्यकता होगी, लेकिन जब मैं उन्हें प्राप्त करूंगा तो बाकी को प्रतीकात्मक मूल्य पर उपलब्ध करा दूंगा। तो अगर किसी को दिलचस्पी है तो कृपया मुझे बताएं। * संपादित करें: पीसीबी यहां हैं, और वे काम करते हैं। यहां इस परियोजना के लिए वास्तविक पीसीबी सहित पूर्ण चित्र गैलरी है। https://imgur.com/a/mUkpw#0 बेशक मैं सबसे महत्वपूर्ण बात नहीं भूली, इस सर्किट का उपयोग करने के लिए एक पुस्तकालय। यह Arduino IDE के साथ शामिल लिक्विड क्रिस्टल लाइब्रेरी के साथ संगत है, इसलिए आप आसानी से अपने स्केच के शीर्ष पर घोषणाओं को बदल सकते हैं और अपने स्केच में कुछ और बदलने की आवश्यकता नहीं है। एक उदाहरण स्केच भी है जो दर्शाता है कि पुस्तकालय में प्रत्येक कार्य कैसे काम करता है, इसलिए इसे देखें।

सिफारिश की: