विषयसूची:

रोटरी एनकोडर का उपयोग करते हुए Nokia 5110 Lcd पर Arduino मेनू: 6 चरण (चित्रों के साथ)
रोटरी एनकोडर का उपयोग करते हुए Nokia 5110 Lcd पर Arduino मेनू: 6 चरण (चित्रों के साथ)

वीडियो: रोटरी एनकोडर का उपयोग करते हुए Nokia 5110 Lcd पर Arduino मेनू: 6 चरण (चित्रों के साथ)

वीडियो: रोटरी एनकोडर का उपयोग करते हुए Nokia 5110 Lcd पर Arduino मेनू: 6 चरण (चित्रों के साथ)
वीडियो: अपने इलेक्ट्रॉनिक परियोजना आइडिया लॉन्च करें पीसीबीवे ने मेरा अर्डिनो इंटरवलोमीटर शील्ड बनाया 2024, नवंबर
Anonim
Image
Image
एक रोटरी एनकोडर का उपयोग करके Nokia 5110 Lcd पर Arduino मेनू
एक रोटरी एनकोडर का उपयोग करके Nokia 5110 Lcd पर Arduino मेनू

प्रिय दोस्तों एक और ट्यूटोरियल में आपका स्वागत है! इस वीडियो में हम सीखेंगे कि लोकप्रिय नोकिया 5110 एलसीडी डिस्प्ले के लिए अपना खुद का मेनू कैसे बनाया जाए, ताकि हमारी परियोजनाओं को अधिक उपयोगकर्ता के अनुकूल और अधिक सक्षम बनाया जा सके। आएँ शुरू करें!

यह वह परियोजना है जिसे हम बनाने जा रहे हैं। डिस्प्ले में एक साधारण मेनू दिखाई देता है, और रोटरी एन्कोडर की सहायता से मैं ऊपर या नीचे नेविगेट कर सकता हूं और रोटरी एन्कोडर बटन दबाकर मेनू आइटम का चयन कर सकता हूं। जब रोटरी एनकोडर का मध्य बटन दबाया जाता है, तो एक और स्क्रीन दिखाई देती है और हम एक चर के मान को बदल सकते हैं। यदि हम रोटरी एनकोडर बटन को एक बार फिर दबाते हैं, तो हम मुख्य मेनू स्क्रीन पर वापस जाते हैं। मेनू में 6 आइटम हैं, और हम मेनू को नीचे या ऊपर स्क्रॉल कर सकते हैं और डिस्प्ले पर आइटम तदनुसार बदल जाएंगे। यह मेनू कैसे काम करता है, यह देखने के लिए संलग्न वीडियो देखें। यदि आप चाहें तो निश्चित रूप से आप अपने स्वयं के अधिक जटिल मेनू बनाने के लिए इसे संशोधित कर सकते हैं।

आइए अब देखें कि इस परियोजना को कैसे बनाया जाए।

चरण 1: सभी भागों को प्राप्त करें

सभी भागों को प्राप्त करें
सभी भागों को प्राप्त करें

इस परियोजना को बनाने के लिए आवश्यक भाग निम्नलिखित हैं:

  • एक Arduino Uno ▶
  • एक Nokia 5110 LCD डिस्प्ले ▶
  • एक रोटरी एनकोडर ▶
  • एक छोटा ब्रेडबोर्ड ▶
  • कुछ तार ▶
  • पावर बैंक ▶

परियोजना की लागत बहुत कम है, यह $ 10 से कम है। आप नीचे दिए गए वीडियो के विवरण में मेरे द्वारा उपयोग किए जाने वाले सभी भागों के लिंक पा सकते हैं।

चरण 2: नोकिया 5110 एलसीडी डिस्प्ले

Image
Image
परियोजना का निर्माण
परियोजना का निर्माण

Nokia 5110 मेरे Arduino प्रोजेक्ट्स के लिए मेरा पसंदीदा डिस्प्ले है।

नोकिया ५११० एक बुनियादी ग्राफिक एलसीडी स्क्रीन है जिसे मूल रूप से सेल फोन स्क्रीन के रूप में बनाया गया था। यह PCD8544 नियंत्रक का उपयोग करता है जो एक कम शक्ति वाला CMOS LCD नियंत्रक/चालक है। इस वजह से इस डिस्प्ले में प्रभावशाली बिजली खपत होती है। यह चालू होने पर केवल 0.4mA का उपयोग करता है लेकिन बैकलाइट अक्षम है। स्लीप मोड में होने पर यह 0.06mA से कम का उपयोग करता है! यही एक कारण है जो इस डिस्प्ले को मेरा पसंदीदा बनाता है। PCD8544 एक सीरियल बस इंटरफेस के माध्यम से माइक्रोकंट्रोलर्स को इंटरफेस करता है। इससे Arduino के साथ डिस्प्ले का उपयोग करना बहुत आसान हो जाता है। आपको केवल 8 तारों को जोड़ने की आवश्यकता है।

मैंने Arduino के साथ Nokia 5110 LCD डिस्प्ले का उपयोग करने के तरीके के बारे में एक विस्तृत ट्यूटोरियल तैयार किया है। मैंने उस वीडियो को इस निर्देश में संलग्न किया है, यह प्रदर्शन के बारे में उपयोगी जानकारी प्रदान करेगा, इसलिए मैं आपको इसे ध्यान से देखने के लिए प्रोत्साहित करता हूं। डिस्प्ले की कीमत करीब 4 डॉलर है।

आप इसे यहाँ प्राप्त कर सकते हैं: ▶

चरण 3: रोटरी एनकोडर

Image
Image

एक रोटरी एन्कोडर, जिसे शाफ्ट एन्कोडर भी कहा जाता है, एक इलेक्ट्रो-मैकेनिकल डिवाइस है जो एक शाफ्ट या एक्सल की कोणीय स्थिति या गति को एनालॉग या डिजिटल कोड में परिवर्तित करता है। रोटरी एन्कोडर का उपयोग कई अनुप्रयोगों में किया जाता है जिसमें सटीक शाफ्ट असीमित रोटेशन की आवश्यकता होती है-जिसमें औद्योगिक नियंत्रण, रोबोटिक्स, विशेष प्रयोजन फोटोग्राफिक लेंस, कंप्यूटर इनपुट डिवाइस (जैसे ऑप्टोमैकेनिकल चूहों और ट्रैकबॉल), नियंत्रित तनाव रियोमीटर और घूर्णन रडार प्लेटफॉर्म शामिल हैं।

इस परियोजना में हम जिस रोटरी एनकोडर का उपयोग करने जा रहे हैं वह एक बहुत ही सस्ता एनकोडर है। इसमें एक बटन भी लगा हुआ है और इसे काम करने के लिए हमें केवल 5 तारों को जोड़ने की जरूरत है। मैंने रोटरी एनकोडर का उपयोग करने के तरीके के बारे में विस्तृत ट्यूटोरियल तैयार किया है। आप इस वीडियो को यहां संलग्न देख सकते हैं।

इस रोटरी एनकोडर की लागत बहुत कम है। इसकी कीमत लगभग 1.5 डॉलर है।

आप इसे यहाँ प्राप्त कर सकते हैं ▶

चरण 4: परियोजना का निर्माण

Image
Image
परियोजना का निर्माण
परियोजना का निर्माण
परियोजना का निर्माण
परियोजना का निर्माण

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

मैंने डिस्प्ले को इस तरह एक छोटे ब्रेडबोर्ड पर रखा है। आइए पहले डिस्प्ले को कनेक्ट करें। डिस्प्ले का पहला पिन जो रीसेट होता है वह Arduino Uno के डिजिटल पिन 3 में जाता है, दूसरा पिन डिजिटल पिन 4 में जाता है, तीसरा पिन डिजिटल पिन 5 पर जाता है, चौथा पिन डिजिटल पिन 11 में और पांचवा पिन डिजिटल में जाता है। पिन 13. अगला पिन Vcc है। हम Vcc को ब्रेडबोर्ड की पॉजिटिव रेल से और ब्रेडबोर्ड पॉजिटिव रेल को Arduino के 3.3V आउटपुट से जोड़ते हैं। अगला पिन डिस्प्ले के लिए बैकलाइट है। चूंकि हम इसे सॉफ्टवेयर के माध्यम से नियंत्रित करना चाहते हैं इसलिए हम इसे डिजिटल पिन 7 से जोड़ते हैं। अंतिम पिन जीएनडी है। हम GND को ब्रेडबोर्ड की नेगेटिव रेल से और ब्रेडबोर्ड की नेगेटिव रेल को Arduino GND से जोड़ते हैं।

अब हमें केवल रोटरी एनकोडर को जोड़ना है। पहला पिन GND है और हम इसे ब्रेडबोर्ड की नेगेटिव रेल से जोड़ते हैं। अगला पिन Vcc है और हम इसे ब्रेडबोर्ड की पॉजिटिव रेल से जोड़ते हैं। अगला पिन SW है और हम इसे एनालॉग पिन 2 से जोड़ते हैं। अगले पिन का नाम DT है और हम इसे एनालॉग पिन 1 से जोड़ते हैं। अंत में पिन CLK एनालॉग पिन 0 से जुड़ा है। आप इस प्रोजेक्ट का योजनाबद्ध आरेख पा सकते हैं नीचे दिए गए वीडियो का विवरण।

अब हम परियोजना को गति देने के लिए तैयार हैं। जैसा कि आप देख सकते हैं, परियोजना ठीक काम कर रही है, और मेनू अपेक्षा के अनुरूप काम कर रहा है! बढ़िया, आइए अब परियोजना के सॉफ्टवेयर को देखें।

चरण 5: परियोजना का कोड

परियोजना का कोड
परियोजना का कोड

इस परियोजना में हम 4 पुस्तकालयों का उपयोग करते हैं। हम प्रदर्शन के लिए दो पुस्तकालयों का उपयोग करते हैं, और दो रोटरी एन्कोडर के लिए।

  1. एडफ्रूट जीएफएक्स:
  2. नोकिया 5110:
  3. एनकोडर लाइब्रेरी:
  4. TimerOne पुस्तकालय:

सबसे पहले हम drawMenu फ़ंक्शन पर एक नज़र डालने जा रहे हैं। यह फ़ंक्शन डिस्प्ले पर मेनू को चित्रित करने के लिए ज़िम्मेदार है। इस फ़ंक्शन को हर कुछ मिलीसेकंड कहा जाता है, इसलिए यदि मेनू में कोई बदलाव होता है तो यह फ़ंक्शन स्क्रीन पर मेनू को अपडेट करने के लिए जिम्मेदार होता है।

इंट मेन्युइटम = 1;इंट फ्रेम = 1; इंट पेज = 1; int lastMenuItem = 1;

3 बहुत महत्वपूर्ण वैश्विक चर भी हैं, चर पृष्ठ, चर मेनूइटम और चर फ्रेम। परिवर्तनीय पृष्ठ याद रखता है कि स्क्रीन पर कौन सी UI स्क्रीन प्रदर्शित होती है। इसलिए, यदि पृष्ठ चर 1 है, तो हम मुख्य UI स्क्रीन में हैं, और यदि चर 2 है तो हम द्वितीयक UI स्क्रीन में हैं जहां हम एक चर पर मान सेट करते हैं। मेनू आइटम चयनित मेनू आइटम को याद रखता है। इसलिए, यदि इसका मान 1 है, तो पहले मेनू आइटम का चयन किया जाता है, इसलिए drawMenu फ़ंक्शन को इस मेनू आइटम को सफेद अक्षरों के साथ काले रंग के रूप में बनाना चाहिए। यदि मेनू आइटम 2 है तो दूसरा मेनू आइटम चुना जाता है और इसी तरह। फ्रेम चर, यह याद रखता है कि स्क्रीन पर मेनू का कौन सा भाग प्रदर्शित होता है। चूंकि हमने जो मेनू बनाया है उसमें 6 आइटम हैं और हम उनमें से केवल 3 को एक बार में प्रदर्शित कर सकते हैं, हमें यह जानने की जरूरत है कि कौन से आइटम स्क्रीन पर प्रदर्शित होते हैं। फ्रेम चर, हमें ठीक यही बताता है। यदि फ़्रेम चर का मान 1 है, तो हम पहले तीन मेनू आइटम प्रदर्शित करते हैं, यदि यह 2 है, तो हम आइटम 2, 3, 4 और इसी तरह प्रदर्शित करते हैं।

मैंने कोड को संशोधित करने के लिए यथासंभव आसान बनाने की कोशिश की, इसलिए मैंने कुछ वैश्विक चर बनाए हैं जो मेनू आइटम के नाम रखते हैं। इस प्रकार, आप बिना कोड खोजे आसानी से अपना स्वयं का मेनू बना सकते हैं।

स्ट्रिंग मेनूआइटम1 = "कंट्रास्ट";स्ट्रिंग मेन्यूआइटम2 = "वॉल्यूम"; स्ट्रिंग मेनूआइटम3 = "भाषा"; स्ट्रिंग मेनूआइटम4 = "कठिनाई"; स्ट्रिंग मेनूआइटम5 = "लाइट: ऑन"; स्ट्रिंग मेनूआइटम6 = "रीसेट";

बूलियन बैकलाइट = सच;

इंट कंट्रास्ट = ६०; इंट वॉल्यूम = ५०;

स्ट्रिंग भाषा [3] = {"एन", "ईएस", "ईएल"};

int चयनित भाषा = 0;

स्ट्रिंग कठिनाई [2] = { "आसान", "कठिन"};

int चयनित कठिनाई = 0;

सबसे पहले हम उन सभी ग्लोबल वेरिएबल्स को इनिशियलाइज़ करते हैं जिनकी कोड में जरूरत होती है। आगे हम डिस्प्ले को इनिशियलाइज़ करते हैं। लूप फ़ंक्शन में, सबसे पहले हम स्क्रीन पर मेनू बनाने के लिए drawMenu फ़ंक्शन को कॉल करते हैं। फिर हम रोटरी एन्कोडर से मान पढ़ते हैं और जांचते हैं कि बटन दबाया गया है या नहीं। उदाहरण के लिए, यदि हम मुख्य UI स्क्रीन पर हैं और पहला मेनू आइटम चुना गया है, यदि रोटरी एन्कोडर से मान बढ़ गया है, तो मेन्यूटेम वैरिएबल बढ़ जाता है और अगले लूप में ड्रामेनू फ़ंक्शन दूसरे मेनू आइटम को चयनित के रूप में आकर्षित करेगा। यदि हम अब रोटरी एनकोडर का बटन दबाते हैं तो हम दूसरे पृष्ठ पर जाते हैं, जहां हम वेरिएबल का मान सेट करते हैं। फिर से रोटरी एनकोडर का उपयोग करके हम चर के मूल्य को बढ़ा या घटा सकते हैं। यदि हम बटन दबाते हैं तो हम मुख्य मेनू पृष्ठ पर वापस जाते हैं, और पृष्ठ चर कम हो जाता है।

इस मेनू के पीछे यही मूल विचार है। हम सभी मेनू आइटम और पृष्ठों के लिए समान प्रक्रिया का पालन करते हैं। कोड जटिल है, यह 400 लाइनों से अधिक लंबा है। यह जटिल लगता है, लेकिन यदि आप इसे स्वयं आज़माते हैं, तो आप इसे और अधिक आसानी से समझ पाएंगे और आप इसे बदल सकेंगे, इसका विस्तार कर सकेंगे और इसे अपनी परियोजनाओं में उपयोग कर सकेंगे। हमेशा की तरह आप यहां संलग्न कोड पा सकते हैं।

चरण 6: परियोजना का परीक्षण

परियोजना का परीक्षण
परियोजना का परीक्षण

यदि हम कोड लोड करते हैं तो हम देख सकते हैं कि परियोजना अपेक्षा के अनुरूप काम कर रही है। हम शाफ्ट का उपयोग करके मेनू को ऊपर और नीचे नेविगेट कर सकते हैं और हम रोटरी एन्कोडर बटन दबाकर किसी भी मेनू आइटम का चयन कर सकते हैं। वह कितना शांत है!

अब जब हम जानते हैं कि Nokia 5110 LCD डिस्प्ले के लिए मेन्यू कैसे बनाया जाता है, तो हम अपनी परियोजनाओं में और अधिक सुविधाएँ जोड़ सकते हैं और उन्हें अधिक उपयोगकर्ता के अनुकूल बना सकते हैं। हालांकि आज हमने जो सरल मेनू बनाया है, उसमें सुधार किया जा सकता है। हम हर समय बटन की स्थिति की जाँच करने के बजाय इंटरप्ट का उपयोग कर सकते हैं। इस तरह हम परियोजना की बिजली खपत को कम कर सकते हैं और कोड को साफ-सुथरा बना सकते हैं। मैं जल्द ही इंटरप्ट पर एक वीडियो तैयार करूंगा, इसलिए बने रहें। मुझे इस मेनू प्रोजेक्ट के बारे में आपकी राय जानना अच्छा लगेगा। क्या आप इसे उपयोगी पाते हैं और क्या आप अपने किसी प्रोजेक्ट में मेनू का उपयोग करने की योजना बना रहे हैं। कृपया अपने विचार और विचार नीचे पोस्ट करें, धन्यवाद!

सिफारिश की: