LCD 1602 को Arduino से जोड़ना: विवरण, कार्य, निर्देश, सुविधाएँ, समस्याएं और समाधान

विषयसूची:

LCD 1602 को Arduino से जोड़ना: विवरण, कार्य, निर्देश, सुविधाएँ, समस्याएं और समाधान
LCD 1602 को Arduino से जोड़ना: विवरण, कार्य, निर्देश, सुविधाएँ, समस्याएं और समाधान
Anonim

हर रेडियो शौकिया, कुछ सरल DIY काम के बाद, सेंसर और बटन का उपयोग करके कुछ भव्य निर्माण करने के लक्ष्य पर आता है। आखिरकार, पोर्ट मॉनिटर की तुलना में डिस्प्ले पर डेटा प्रदर्शित करना बहुत अधिक दिलचस्प है। लेकिन फिर सवाल उठता है: कौन सा डिस्प्ले चुनना है? और सामान्य तौर पर, इसे कैसे कनेक्ट करें, कनेक्ट करने के लिए क्या आवश्यक है? इन सवालों के जवाबों पर इस लेख में चर्चा की जाएगी।

Arduino के कनेक्शन के लिए LCD 1602 डिस्प्ले
Arduino के कनेक्शन के लिए LCD 1602 डिस्प्ले

एलसीडी 1602

डिस्प्ले के बीच कई विकल्पों में से, मैं HD4478 कंट्रोलर पर आधारित LCD1602 डिस्प्ले को अलग करना चाहूंगा। यह डिस्प्ले दो रंगों में है: नीले रंग की पृष्ठभूमि पर सफेद अक्षर, पीले रंग की पृष्ठभूमि पर काले अक्षर। एलसीडी 1602 को Arduino से कनेक्ट करने से कोई समस्या नहीं होगी, क्योंकि एक अंतर्निहित लाइब्रेरी है, और आपको कुछ भी अतिरिक्त डाउनलोड करने की आवश्यकता नहीं है। डिस्प्ले न केवल कीमत में, बल्कि आकार में भी भिन्न होते हैं। अक्सर रेडियो शौकिया 16. का उपयोग करते हैंx 2, यानी 16 वर्णों की 2 पंक्तियाँ। लेकिन 20 x 4 भी होता है, जहाँ 20 वर्णों की 4 पंक्तियाँ होती हैं। एलसीडी 1602 डिस्प्ले को अर्दुनो से जोड़ने में आयाम और रंग कोई भूमिका नहीं निभाते हैं, वे उसी तरह से जुड़े हुए हैं। देखने का कोण 35 डिग्री है, प्रदर्शन प्रतिक्रिया समय 250 एमएस है। -20 से 70 डिग्री सेल्सियस के तापमान पर काम कर सकते हैं। काम करते समय, यह स्क्रीन के लिए 4 mA और बैकलाइट के लिए 120 mA का उपयोग करता है।

एलसीडी 1602 डिस्प्ले पिनआउट
एलसीडी 1602 डिस्प्ले पिनआउट

इसका उपयोग कहाँ किया जाता है?

इस डिस्प्ले की लोकप्रियता न केवल रेडियो के शौकीनों के बीच, बल्कि बड़े निर्माताओं के बीच भी है। उदाहरण के लिए, प्रिंटर, कॉफी मशीन भी LCD1602 का उपयोग करते हैं। यह इसकी कम कीमत के कारण है, चीनी साइटों पर इस डिस्प्ले की कीमत 200-300 रूबल है। यह वहां खरीदने लायक है, क्योंकि हमारे स्टोर में इस डिस्प्ले के लिए मार्जिन बहुत अधिक है।

Arduino से कनेक्ट करें

LCD 1602 को Arduino Nano और Uno से जोड़ना अलग नहीं है। आप डिस्प्ले के साथ दो मोड में काम कर सकते हैं: 4 बिट्स और 8. 8-बिट डिस्प्ले के साथ काम करते समय, निचले और उच्च बिट्स दोनों का उपयोग किया जाता है, और 4-बिट वाले के साथ, केवल निचले वाले। 8-बिट के साथ काम करने का कोई विशेष बिंदु नहीं है, क्योंकि कनेक्ट करने के लिए 4 और संपर्क जोड़े जाएंगे, जो उचित नहीं है, क्योंकि गति अधिक नहीं होगी, डिस्प्ले अपडेट की सीमा प्रति सेकंड 10 गुना है। सामान्य तौर पर, एलसीडी 1602 को Arduino से जोड़ने के लिए बहुत सारे तारों का उपयोग किया जाता है, जिससे कुछ असुविधा होती है, लेकिन विशेष ढालें हैं, लेकिन बाद में उस पर और अधिक। फोटो Arduino Uno के डिस्प्ले के कनेक्शन को दिखाता है:

प्रदर्शन को arduino से जोड़ना
प्रदर्शन को arduino से जोड़ना

कोड उदाहरण:


शामिल करें //आवश्यक पुस्तकालय जोड़ें लिक्विड क्रिस्टल एलसीडी (7, 6, 5, 4, 3, 2); // (आरएस, ई, डीबी 4, डीबी 5, डीबी 6, डीबी 7) शून्य सेटअप () {lcd.begin (16, 2); // स्क्रीन आयाम सेट करें LCD.setCursor(0, 0); // कर्सर को लाइन 1 की शुरुआत में सेट करें LCD.print ("हैलो, वर्ल्ड!"); // टेक्स्ट एलसीडी प्रदर्शित करें। सेट कर्सर (0, 1); // कर्सर को लाइन 2 की शुरुआत में सेट करें LCD.print("fb.ru"); // आउटपुट टेक्स्ट } शून्य लूप (){ }

कोड क्या करता है? सबसे पहले, डिस्प्ले के साथ काम करने के लिए पुस्तकालय जुड़ा हुआ है। जैसा कि ऊपर उल्लेख किया गया है, यह पुस्तकालय पहले से ही Arduino IDE में शामिल है और आपको इसे अतिरिक्त रूप से डाउनलोड और इंस्टॉल करने की आवश्यकता नहीं है। इसके बाद, पिन से जुड़े संपर्कों को परिभाषित किया गया है: आरएस, ई, डीबी 4, डीबी 5, डीबी 6, डीबी 7, क्रमशः। फिर स्क्रीन का आकार निर्धारित किया जाता है। चूंकि हम 16 वर्णों और 2 पंक्तियों वाले संस्करण के साथ काम कर रहे हैं, इसलिए हम ऐसे मान लिखते हैं। हम कर्सर को पहली पंक्ति की शुरुआत में सेट करते हैं और अपना पहला टेक्स्ट हैलो वर्ल्ड प्रदर्शित करते हैं। इसके बाद, कर्सर को दूसरी लाइन पर रखें और साइट का नाम प्रदर्शित करें। बस इतना ही! LCD 1602 को Arduino Uno से जोड़ने पर विचार किया गया।

I2C क्या है और इसकी आवश्यकता क्यों है?

जैसा कि ऊपर बताया गया है, डिस्प्ले को कनेक्ट करने में बहुत सारे पिन लगते हैं। उदाहरण के लिए, कई सेंसर और एक एलसीडी डिस्प्ले के साथ काम करते समय 1602 संपर्क बस पर्याप्त नहीं हो सकते हैं। अक्सर, रेडियो शौकिया ऊनो या नैनो संस्करणों का उपयोग करते हैं, जहां कई संपर्क नहीं होते हैं। तब लोग विशेष ढाल लेकर आए। उदाहरण के लिए, I2C। यह आपको केवल 4 पिन के साथ डिस्प्ले को जोड़ने की अनुमति देता है। यह दो गुना कम है। I2C मॉड्यूल दोनों अलग-अलग बेचा जाता है, जहां आपको इसे स्वयं मिलाप करने की आवश्यकता होती है, और पहले से ही मिलाप किया जाता हैएलसीडी डिस्प्ले 1602.

एलसीडी डिस्प्ले के लिए I2C मॉड्यूल 1602
एलसीडी डिस्प्ले के लिए I2C मॉड्यूल 1602

I2C मॉड्यूल के साथ कनेक्शन

अरुडिनो नैनो के साथ I2C के साथ LCD 1602 को जोड़ने से बहुत कम जगह लगती है, केवल 4 पिन: ग्राउंड, पावर और 2 डेटा आउटपुट। हम बिजली और जमीन को क्रमशः Arduino पर 5V और GND से जोड़ते हैं। शेष दो संपर्क: एससीएल और एसडीए किसी भी एनालॉग पिन से जुड़े हैं। फोटो में आप I2C मॉड्यूल के साथ LCD 1602 को arduino से जोड़ने का एक उदाहरण देख सकते हैं:

I2C मॉड्यूल का उपयोग करके कनेक्शन प्रदर्शित करें
I2C मॉड्यूल का उपयोग करके कनेक्शन प्रदर्शित करें

कार्यक्रम कोड

यदि मॉड्यूल के बिना डिस्प्ले के साथ काम करने के लिए केवल एक पुस्तकालय का उपयोग करना आवश्यक था, तो मॉड्यूल के साथ काम करने के लिए दो पुस्तकालयों की आवश्यकता होती है। उनमें से एक पहले से ही Arduino IDE - Wire में है। एक अन्य पुस्तकालय, लिक्विड क्रिस्टल I2C, को अलग से डाउनलोड करने और स्थापित करने की आवश्यकता है। Arduino में लाइब्रेरी स्थापित करने के लिए, डाउनलोड किए गए संग्रह की सामग्री को लाइब्रेरी रूट फ़ोल्डर में अपलोड किया जाना चाहिए। I2C का उपयोग कर कोड उदाहरण:


include include LiquidCrystal_I2C LCD(0x27, 16, 2); // डिस्प्ले शून्य सेटअप सेट करें () {lcd.init (); LCD.backlight (); // डिस्प्ले बैकलाइट को चालू करें LCD.print ("FB.ru"); LCD.setCursor (8, 1); LCD.print ("एलसीडी 1602"); } शून्य लूप () {// कर्सर को दूसरी पंक्ति और अशक्त वर्ण पर सेट करें। LCD.setCursor(0, 1); // arduino के LCD.print (मिलिस ()/1000) शुरू होने के बाद से सेकंड की संख्या का प्रिंट आउट लें; }

जैसा कि आप देख सकते हैं, कोड लगभग समान है।

मैं अपना खुद का प्रतीक कैसे जोड़ूं?

इन डिस्प्ले के साथ समस्या यह है कि कोई नहीं हैसिरिलिक और प्रतीकों के लिए समर्थन। उदाहरण के लिए, आपको कुछ चरित्र को डिस्प्ले में लोड करना होगा ताकि वह इसे प्रतिबिंबित कर सके। ऐसा करने के लिए, डिस्प्ले आपको अपने अधिकतम 7 वर्ण बनाने की अनुमति देता है। तालिका प्रस्तुत करें:

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

अगर 0 - वहाँ कुछ भी नहीं है, अगर 1 - यह एक छायांकित क्षेत्र है। ऊपर के उदाहरण में, आप "मुस्कुराते हुए स्माइली" चरित्र का निर्माण देख सकते हैं। Arduino में एक उदाहरण प्रोग्राम का उपयोग करते हुए, यह इस तरह दिखेगा:


शामिल करें शामिल करें // आवश्यक पुस्तकालय शामिल करें // मुस्कान प्रतीक बिटमास्क बाइट मुस्कान [8]={B00010, B00001, B11001, B00001, B11001, B00001, B00010,}; लिक्विड क्रिस्टल एलसीडी (7, 6, 5, 4, 3, 2); // (आरएस, ई, डीबी 4, डीबी 5, डीबी 6, डीबी 7) शून्य सेटअप () {lcd.begin (16, 2); // स्क्रीन आयाम सेट करें LCD.createChar(1, मुस्कान); // कैरेक्टर नंबर 1 LCD.setCursor(0, 0) बनाएं; // कर्सर को लाइन 1 की शुरुआत में सेट करें LCD.print("\1"); // स्माइली प्रदर्शित करें (चरित्र संख्या 1) - "\1" } शून्य लूप (){ }

जैसा कि आप देख सकते हैं, बनाया गया थाबिटमास्क तालिका के समान है। एक बार बन जाने के बाद, इसे डिस्प्ले के वेरिएबल के रूप में आउटपुट किया जा सकता है। याद रखें कि मेमोरी में केवल 7 कैरेक्टर स्टोर किए जा सकते हैं। सिद्धांत रूप में, यह पर्याप्त है। उदाहरण के लिए, यदि आप डिग्री चिन्ह दिखाना चाहते हैं।

एलसीडी 1602. में कस्टम वर्ण जोड़ना
एलसीडी 1602. में कस्टम वर्ण जोड़ना

समस्याएं जहां प्रदर्शन काम नहीं कर सकता

कई बार डिस्प्ले काम नहीं करता है। उदाहरण के लिए, यह चालू होता है, लेकिन वर्ण नहीं दिखाता है। या यह बिल्कुल चालू नहीं होता है। सबसे पहले, देखें कि आपने संपर्कों को सही तरीके से कनेक्ट किया है या नहीं। यदि आप बिना I2C के LCD 1202 को Arduino से कनेक्ट करते हैं, तो तारों में उलझना बहुत आसान है, जिससे डिस्प्ले गलत तरीके से काम कर सकता है। आपको यह भी सुनिश्चित करना चाहिए कि डिस्प्ले कंट्रास्ट बढ़ा हुआ है, क्योंकि न्यूनतम कंट्रास्ट पर यह भी दिखाई नहीं देता है कि LCD 1602 चालू है या नहीं। यदि यह मदद नहीं करता है, तो शायद समस्या संपर्कों के टांका लगाने में हो सकती है, यह I2C मॉड्यूल का उपयोग करते समय है। साथ ही, डिस्प्ले के काम न करने का एक सामान्य कारण I2C एड्रेस की गलत सेटिंग है। तथ्य यह है कि कई निर्माता हैं, और वे एक अलग पता सेट कर सकते हैं, आपको इसे यहां सही करने की आवश्यकता है:


LiquidCrystal_I2C LCD(0x27, 16, 2);

कोष्ठक में आप दो मान देख सकते हैं, 0x27 और 16, 2 (16, 2 प्रदर्शन आकार है, और 0x27 केवल I2C पता है)। इन मानों के बजाय, आप 0x37 या 0x3F डालने का प्रयास कर सकते हैं। खैर, एक और कारण केवल एक दोषपूर्ण एलसीडी 1602 है। यह देखते हुए कि Arduino के लिए लगभग सब कुछ चीन में बना है, आप 100% सुनिश्चित नहीं हो सकते हैं कि खरीदा गया हैउत्पाद ख़राब नहीं है।

एलसीडी 1602 पेशेवरों और विपक्ष

आइए LCD 1602 के फायदे और नुकसान पर एक नजर डालते हैं।

पेशेवर

  • कीमत। इस मॉड्यूल को चीनी स्टोर्स में बहुत ही किफायती मूल्य पर खरीदा जा सकता है। कीमत 200-300 रूबल है। कभी-कभी I2C मॉड्यूल के साथ भी बेचा जाता है।
  • जुड़ने में आसान। शायद कोई भी इन दिनों I2C के बिना LCD 1602 को कनेक्ट नहीं करता है। और इस मॉड्यूल के साथ, कनेक्शन केवल 4 पिन लेता है, तारों का कोई "जाल" नहीं होगा।
  • प्रोग्रामिंग। तैयार पुस्तकालयों के लिए धन्यवाद, इस मॉड्यूल के साथ काम करना आसान है, सभी कार्य पहले से ही पंजीकृत हैं। और अगर आपको अपना चरित्र जोड़ना है, तो इसमें केवल कुछ मिनट लगते हैं।

विपक्ष

हजारों रेडियो शौकीनों द्वारा उपयोग के दौरान, कोई बड़े नुकसान की पहचान नहीं की गई है, केवल शादी खरीदने के मामले हैं, क्योंकि चीनी प्रदर्शन विकल्प मुख्य रूप से उपयोग किए जाते हैं।

इस लेख में एलसीडी 1602 डिस्प्ले को Arduino से कैसे जोड़ा जाए, इस पर चर्चा की गई और इस डिस्प्ले के साथ काम करने के लिए नमूना कार्यक्रम भी प्रस्तुत किए गए। यह वास्तव में अपनी श्रेणी में सर्वश्रेष्ठ में से एक है, ऐसा नहीं है कि हजारों रेडियो शौकिया इसे अपनी परियोजनाओं के लिए चुनते हैं!

सिफारिश की: