विषयसूची:

१६०२ एलसीडी कीपैड शील्ड मॉड्यूल I2C बैकपैक के साथ: ६ कदम
१६०२ एलसीडी कीपैड शील्ड मॉड्यूल I2C बैकपैक के साथ: ६ कदम

वीडियो: १६०२ एलसीडी कीपैड शील्ड मॉड्यूल I2C बैकपैक के साथ: ६ कदम

वीडियो: १६०२ एलसीडी कीपैड शील्ड मॉड्यूल I2C बैकपैक के साथ: ६ कदम
वीडियो: How to Use I2C LCD with Arduino | Very Easy Arduino LCD I2C Tutorial | Arduino 16x2 LCD I2C Tutorial 2024, नवंबर
Anonim
1602 एलसीडी कीपैड शील्ड मॉड्यूल I2C बैकपैक के साथ
1602 एलसीडी कीपैड शील्ड मॉड्यूल I2C बैकपैक के साथ

एक बड़े प्रोजेक्ट के हिस्से के रूप में, मैं कुछ साधारण मेनू के नेविगेशन के लिए एक एलसीडी डिस्प्ले और एक कीपैड रखना चाहता था। मैं अन्य कार्यों के लिए Arduino पर बहुत सारे I/O पोर्ट का उपयोग करूंगा, इसलिए मुझे LCD के लिए I2C इंटरफ़ेस चाहिए था। इसलिए मैंने कुछ हार्डवेयर खरीदे, जिसमें DFRobot से 1602 LCD कीपैड शील्ड मॉड्यूल और LCD के लिए एक अनाम I2C सीरियल मॉड्यूल शामिल था। मैं इन्हें एक Arduino नैनो के साथ उपयोग करना चाहता हूं। फिर मैंने पाया कि इन घटकों को एक साथ काम करने के लिए कुछ चुनौतियाँ हैं - लेकिन यह संभव है। इसलिए मैं अपना अनुभव साझा करना चाहता हूं और शायद कुछ अन्य लोगों की मदद करना चाहता हूं।

यह तस्वीर काम कर रहे ब्रेडबोर्ड की है, जो एलसीडी पर संदेश प्रदर्शित कर सकती है और कुंजी प्रेस की पहचान कर सकती है। LCD को I2C इंटरफ़ेस के माध्यम से नियंत्रित किया जाता है, जिसमें LCD बैकलाइट भी शामिल है। पिन A0 पर Arduino द्वारा कुंजी प्रेस प्राप्त की जाती हैं (यह A4 और A5 को छोड़कर जो I2C इंटरफ़ेस के लिए बंधे हुए हैं, को छोड़कर कोई भी एनालॉग पिन हो सकता है)।

चरण 1: भागों का विवरण - एलसीडी कीपैड शील्ड मॉड्यूल

पार्ट्स विवरण - एलसीडी कीपैड शील्ड मॉड्यूल
पार्ट्स विवरण - एलसीडी कीपैड शील्ड मॉड्यूल

एलसीडी कीपैड शील्ड मॉड्यूल में आमतौर पर इस्तेमाल किया जाने वाला 1602 एलसीडी होता है जो एक सर्किट बोर्ड के ऊपर लगा होता है जिसमें चाबियां होती हैं, और जो एलसीडी कनेक्शन का एक सबसेट लेता है और उन्हें सर्किट बोर्ड के नीचे हेडर पिन के लिए उपलब्ध कराता है। मैं समझता हूं कि इस बोर्ड का उद्देश्य Arduino Uno या इसी तरह के शीर्ष पर लगाया जाना है और उस वातावरण में काम करने के लिए सही पिन लेआउट प्रदान करता है। मैंने इस मॉड्यूल को eBay पर चीन के एक विक्रेता से खरीदा है। बोर्ड के निचले हिस्से (कीपैड) पर हेडर पिन ज्यादातर लेबल होते हैं लेकिन ऊपरी तरफ पिन, जो कि एलसीडी इंटरफेस है, लेबल नहीं होते हैं। हालाँकि एलसीडी पर पिनों को ही लेबल किया जाता है।

चरण 2: भागों का विवरण - I2C सीरियल मॉड्यूल

भाग विवरण - I2C सीरियल मॉड्यूल
भाग विवरण - I2C सीरियल मॉड्यूल

सीरियल मॉड्यूल में I2C के लिए सामान्य 4-पिन हेडर है, और बिना लेबल वाले हेडर पिन का एक सेट है जिसे मैं समझता हूं कि सीधे एलसीडी मॉड्यूल के नीचे प्लग करने का इरादा है। एलसीडी पर लेबल का अध्ययन करके, मैं सीरियल मॉड्यूल पर पिन के कार्यों की पहचान करने में सक्षम था।

यह मॉड्यूल IC PCF8574T पर आधारित है जो I2C प्रोटोकॉल को समाप्त करता है, इसमें एड्रेस कंट्रोल (20 से 27) के लिए 3 पिन हैं और इसमें 8 डिजिटल इनपुट / आउटपुट पिन P0 से P7 हैं। PCF8574T की डेटा शीट के अनुसार, प्रत्येक I/O पिन में एक FET होता है जो इसे LOW स्थिति के लिए जमीन पर खींचता है, और कम से कम 20ma डूब सकता है। उच्च अवस्था में, इसमें एक क्षणिक सक्रिय पुल-अप और फिर लगभग 0.1 mA का निरंतर पुल-अप करंट होता है।

इस मॉड्यूल पर, P3 को छोड़कर सभी डिजिटल I/O पिन को केवल हेडर पिन (फोटो में दाईं ओर) में लाया जाता है। P3 के मामले में, यह एक ट्रांजिस्टर के आधार से जुड़ा होता है (लेबल "एलईडी" के नीचे शीर्ष दाएं क्षेत्र में फोटो में दिखाई देता है)। उस ट्रांजिस्टर का एमिटर वीएसएस (ग्राउंड) से जुड़ा होता है और कलेक्टर हेडर पिन 16 से जुड़ा होता है, जहां इसका इस्तेमाल एलसीडी बैकलाइट को नियंत्रित करने के लिए किया जा सकता है। ट्रांजिस्टर की वजह से, तर्क स्थिति सॉफ्टवेयर लाइब्रेरी में ग्रहण की गई स्थिति के सापेक्ष उलट जाती है। यानी, P3 पिन कम होने पर LCD बैकलाइट चालू हो जाती है, और P3 पिन उच्च होने पर बंद हो जाती है।

ट्रांजिस्टर पर लेबल L6 कहता है जो मेरे शोध के अनुसार संभवतः इसे MMBC1623L6 बनाता है जिसका न्यूनतम वर्तमान लाभ 200 है। बेस करंट के 0.1 mA के साथ, यह अपने कलेक्टर (मॉड्यूल पिन 16) पर कम स्थिति बनाए रखने में सक्षम होना चाहिए। कम से कम 20mA कलेक्टर करंट के साथ।

इसके अलावा इस मॉड्यूल में +5 और ग्राउंड के बीच जुड़ा एक 10K पोटेंशियोमीटर है, जिसका वेरिएबल लेड पिन 3 (फोटो में नीचे से तीसरा) पर लाया जाता है। एलसीडी से सीधे कनेक्ट होने पर, यह पॉट एलसीडी के कंट्रास्ट को नियंत्रित करेगा। हालाँकि, वह फ़ंक्शन LCD शील्ड पर एक अलग समान पॉट द्वारा प्रदान किया जाता है, इसलिए सीरियल मॉड्यूल पर इस पॉट का कोई फ़ंक्शन नहीं है।

मुझे PCF8574T के INT पिन से कोई कनेक्शन नहीं मिला।

अद्यतन २२ अगस्त २०१९

जैसा कि ऊपर बताया गया है, PCF8574 में 3 एड्रेस कंट्रोल पिन हैं। ऐसा लगता है कि इन्हें बैकपैक बोर्ड पर पैड पर लाया जाता है जहां उन्हें ए0, ए 1 और ए 2 लेबल किया जाता है। उन्हें फोटो में देखा जा सकता है। मैंने इसका परीक्षण नहीं किया है, लेकिन यह लगभग निश्चित लगता है कि इनमें से एक या अधिक पिनों को आसन्न पैड से जोड़कर, I2C पते को 20 से 27 की सीमा पर नियंत्रित किया जा सकता है। इसके अलावा, एक दूसरा लगभग समान उपकरण है, PCF8574A जिसमें PCF8574 के समान कार्यक्षमता है, लेकिन पता सीमा 0x38 से 0x3F तक है।

आपके डिवाइस द्वारा वास्तव में उपयोग किए जाने वाले पते को I2CScanner से जांचा जा सकता है। विभिन्न स्रोतों से कई सरल I2C स्कैनर उपलब्ध हैं। यह https://github.com/farmerkeith/I2CScanner पर भी पाए गए कुछ उपकरणों की पहचान करता है।

चरण 3: कनेक्शन

सम्बन्ध
सम्बन्ध

चैतन्यएम17 का धन्यवाद जिन्होंने नीचे वर्णित कनेक्शनों को दर्शाने वाले फ्रिट्ज़िंग आरेख प्रदान किया।

शक्ति:

एलसीडी मॉड्यूल के निचले हिस्से में "5.0V" लेबल वाला एक पिन होता है। दाईं ओर, उसके बगल में दो बिना लेबल वाले पिन हैं जो दोनों जमीन पर हैं।

सीरियल मॉड्यूल को बाएं हाथ के अंत में I2C इंटरफ़ेस के साथ पकड़े हुए, निचले किनारे पर 16 पिन हैं। इनमें से पहला ग्राउंड है, और दूसरा +5v है। एक अन्य विकल्प शक्ति के लिए I2C इंटरफ़ेस पर निचले दो पिनों का उपयोग करना है, लेकिन मुझे ऊपर बताए अनुसार पिन का उपयोग करना अधिक सुविधाजनक लगा।

I2C इंटरफ़ेस। सीरियल मॉड्यूल पर, शीर्ष पिन SCL (घड़ी) है और यह Arduino A5 पर जाता है। दूसरा पिन डाउन एसडीए (डेटा) है और यह Arduino A4 में जाता है।

एलसीडी प्रिंट इंटरफ़ेस। सीरियल मॉड्यूल और एलसीडी कीपैड शील्ड के बीच 6 कनेक्शन हैं, ये सभी बिना लेबल वाले पिन के बीच हैं। मैं एलसीडी मॉड्यूल पर दाएं से बाएं गिनकर उनकी पहचान करूंगा, पहला पिन 1 के रूप में। 8 के 2 ब्लॉक हैं, इसलिए वे 1 से 16 तक जाते हैं। मैं उन्हें I2C सीरियल मॉड्यूल पर बाएं से गिनती करके पहचानता हूं ठीक है, इनमें से 16 भी हैं। इसके अलावा मैं प्रत्येक तार को एक लेबल देता हूं, जो कि Arduino पर समतुल्य पिन है जो सामान्य रूप से सीरियल मॉड्यूल के बिना सीधे कनेक्शन के मामले में उस फ़ंक्शन से जुड़ा होता है।

तो 6 डेटा कनेक्शन हैं:

Arduino समकक्ष // सीरियल मॉड्यूल पिन // एलसीडी कीपैड मॉड्यूल पिन

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

एलसीडी बैकलाइट नियंत्रण: यह एक और कनेक्शन का उपयोग करता है:

Arduino समकक्ष // सीरियल मॉड्यूल पिन // एलसीडी कीपैड मॉड्यूल पिन

डी10 //16 // 11

कीपैड इंटरफ़ेस: यह Arduino पर A0 को पिन करने के लिए "A0" लेबल वाले निचले हिस्से पर LCD मॉड्यूल पिन से एकल तार का उपयोग करता है। कम से कम यह बहुत आसान था!

चरण 4: RST कुंजी को अन्य 5 कुंजियों के समान प्रयोग करने योग्य बनाना

RST को सीधे Arduino Nano के RESTART इनपुट से जोड़ा जा सकता है।

हालाँकि यदि आप चाहते हैं कि RST कुंजी अन्य चीजों के लिए सॉफ़्टवेयर में प्रयोग करने योग्य हो, तो यह RST पिन और A0 पिन के बीच LCD कीपैड शील्ड के निचले हिस्से में एक 15K रेसिस्टर को जोड़कर किया जा सकता है।

यह इस प्रकार काम करता है: +5V और दाएँ कुंजी के बीच एक 2K रोकनेवाला है। फिर अन्य कुंजियों में से प्रत्येक के लिए उत्तरोत्तर बड़े प्रतिरोधों की एक श्रृंखला (UP कुंजी के लिए 330R, डाउन कुंजी के लिए 620R, LEFT कुंजी के लिए 1K, और SELECT कुंजी के लिए 3K3। सभी कुंजियाँ (RST कुंजी सहित) कनेक्ट होती हैं जमीन। जब एक 10 बिट ए/डी कनवर्टर से जुड़ा होता है (जैसा कि Arduino नैनो A0 के लिए) वे लगभग निम्नलिखित मान प्रदान करते हैं:

राइट = 0; ऊपर = १००; नीचे = २६०; वाम = ४१०; चुनें = 640।

RST के 15 k रेसिस्टर के साथ, यह लगभग 850 डिलीवर करता है।

सॉफ्टवेयर इन मूल्यों के बीच मध्य बिंदुओं के आसपास के मूल्यों का उपयोग करेगा ताकि यह तय किया जा सके कि किस कुंजी को दबाया गया है।

चरण 5: सॉफ्टवेयर

उपयोगी सॉफ्टवेयर निस्संदेह पाठक के लिए एक अभ्यास है। हालाँकि आपको आरंभ करने के लिए, आप मेरे परीक्षण सॉफ़्टवेयर पर एक नज़र डाल सकते हैं। मैंने NewLiquidCrystal लाइब्रेरी का उपयोग किया, जिसमें I2C इंटरफ़ेस के लिए समर्थन शामिल है। पुस्तकालयों को सही ढंग से स्थापित करने के बाद, यह सब बस काम करता है।

मुख्य बिंदु बैकलाइट ऑफ और ऑन कमांड की ध्रुवीयता को उलटना था (I2C मॉड्यूल पर ट्रांजिस्टर के कारण जैसा कि पार्ट्स विवरण अनुभाग में बताया गया है)।

अद्यतन २२ अगस्त २०१९

यदि आपको एलसीडी डिस्प्ले के काम न करने की समस्या है, तो कृपया I2C स्कैनर का उपयोग करके अपने सीरियल बैकपैक के I2C पते की जांच करें। एक उपयुक्त स्कैनर संलग्न है। फिर यदि आवश्यक हो तो कथन में पहले पैरामीटर को समायोजित करें

लिक्विड क्रिस्टल_आई2सी एलसीडी (0x27, 2, 1, 0, 4, 5, 6, 7);

चरण 6: समीक्षा और चर्चा

जैसा कि आप देख सकते हैं कि मुझे मुख्य कार्य काम कर रहे हैं।

मेरा अगला इरादा इसे किसी अन्य प्रोजेक्ट के हिस्से के रूप में प्रोजेक्ट बॉक्स में रखना है। हालाँकि इस रास्ते पर चलने के बाद मुझे पता चला कि एक और कठिनाई है जिसका मैंने अनुमान नहीं लगाया था।

कठिनाई यह है कि यह एलसीडी कीपैड मॉड्यूल एक बॉक्स में स्थापित करने के लिए स्थापित नहीं है। किसी भी प्रकार का डिब्बा। 6 चाबियों के बटन एलसीडी स्क्रीन के स्तर से काफी नीचे हैं, ताकि यदि मॉड्यूल एक बॉक्स में (जैसे ढक्कन में) एलसीडी सर्किट बोर्ड के शीर्ष के साथ ढक्कन के नीचे फ्लश के साथ लगाया जाता है, तो सबसे ऊपर चाबियों के ढक्कन के शीर्ष से लगभग 7 मिमी नीचे हैं।

संभावित समाधान हैं:

ए) इसके साथ रखो। ढक्कन में पहुंच छेद ड्रिल करें और बटन दबाने के लिए एक उपकरण (जैसे उपयुक्त व्यास की एक कट डाउन बुनाई सुई) का उपयोग करें।

बी) मॉड्यूल सर्किट बोर्ड से एलसीडी निकालें और कीपैड पर सर्जरी करें ताकि दो घटकों को प्रोजेक्ट बॉक्स के ढक्कन पर स्वतंत्र रूप से तय किया जा सके (मुझे लगता है कि बटन बहुत कम होने की समस्या अभी भी हो सकती है)

ग) मौजूदा बटनों को हटा दें और उन्हें लम्बे बटनों से बदलें। नए बटन लगभग 13 मिमी ऊंचे होने चाहिए ताकि उन्हें प्रोजेक्ट बॉक्स के ढक्कन के माध्यम से संचालित किया जा सके)। प्रतिस्थापन बटन स्विच 13 मिमी सहित ऊंचाई की एक श्रृंखला में आसानी से उपलब्ध हैं।

डी) एलसीडी कीपैड शील्ड मॉड्यूल को त्यागें और अलग एलसीडी और कीपैड इकाइयों (यानी स्टार्ट ओवर) का उपयोग करें। कीपैड इकाइयों की एक विस्तृत श्रृंखला उपलब्ध है, हालांकि मैंने इस मॉड्यूल के समान 6-कुंजी लेआउट वाला एक नहीं देखा है (यानी चुनें, बाएं, ऊपर, नीचे, दाएं, पुनरारंभ करें)। यह एक बड़ा मुद्दा नहीं हो सकता है, लेकिन इस मॉड्यूल के साथ शुरू करने का एक कारण यह था कि मुझे लगा कि यह मुख्य लेआउट वही है जो मैं चाहता था।

मैं समाधान c) के साथ जाने की योजना बना रहा हूं, और देखें कि मैं कैसे जाता हूं।

जानकारी का एक और अंश जो रुचि का हो सकता है:

बैकलाइट ऑन के साथ, इस परियोजना की वर्तमान खपत है: Arduino Nano 21.5 ma; सीरियल मॉड्यूल 3.6 एमए; एलसीडी मॉड्यूल 27.5 एमए; कुल 52 एमए।

बैकलाइट बंद के साथ, इस परियोजना की वर्तमान खपत है: Arduino Nano 21.5 ma; सीरियल मॉड्यूल 4.6 मा; एलसीडी मॉड्यूल 9.8 एमए; कुल 36 एमए।

सिफारिश की: