- सामग्री की आवश्यकता:
- TFT एलसीडी स्क्रीन मॉड्यूल जानने के लिए:
- टच स्क्रीन के लिए TFT एलसीडी स्क्रीन को कैलिब्रेट करना:
- Arduino के साथ TFT एलसीडी कनेक्शन:
- TFT एलसीडी के लिए अपने Arduino प्रोग्रामिंग:
- काम कर रहे:
Arduino ने हमेशा आसानी से प्रोजेक्ट बनाने और उन्हें अधिक आकर्षक बनाने में मदद की है। टच स्क्रीन विकल्प के साथ एक एलसीडी स्क्रीन प्रोग्रामिंग एक जटिल काम के रूप में लग सकता है, लेकिन Arduino पुस्तकालयों और ढाल ने इसे वास्तव में आसान बना दिया था। इस परियोजना में हम अपने स्वयं के Arduino टच स्क्रीन कैलकुलेटर का निर्माण करने के लिए 2.4 ”Arduino TFT LCD स्क्रीन का उपयोग करेंगे जो कि जोड़, घटाव, विभाजन और गुणन जैसी सभी बुनियादी गणना कर सकती है।
सामग्री की आवश्यकता:
- अरुडिनो उनो
- 2.4 ”TFT LCD डिस्प्ले शील्ड है
- 9 वी बैटरी।
TFT एलसीडी स्क्रीन मॉड्यूल जानने के लिए:
इससे पहले कि हम वास्तव में इस परियोजना में गोता लगाएँ, यह जानना महत्वपूर्ण है कि यह 2.4 ”TFT एलसीडी मॉड्यूल कैसे काम करता है और इसमें मौजूद प्रकार क्या हैं। आइए इस 2.4 ”TFT एलसीडी स्क्रीन मॉड्यूल के पिनआउट पर एक नज़र डालें।
जैसा कि आप देख सकते हैं कि 28 पिन हैं जो किसी भी Arduino Uno / Arduino Mega Board में पूरी तरह फिट होंगे। इन पिनों का एक छोटा वर्गीकरण नीचे दी गई तालिका में दिया गया है।
जैसा कि आप देख सकते हैं कि पिंस को चार मुख्य वर्गीकरणों में वर्गीकृत किया जा सकता है, जैसे एलसीडी कमांड पिंस, एलसीडी डेटा पिन, एसडी कार्ड पिन और पावर पिन, हमें इन पिनों के विस्तृत कामकाज के बारे में ज्यादा जानकारी नहीं है क्योंकि वे इसकी देखभाल करेंगे। हमारे Arduino लाइब्रेरी।
आप ऊपर दिखाए गए मॉड्यूल के तल पर एक एसडी कार्ड स्लॉट भी पा सकते हैं, जिसका उपयोग एसडी कार्ड को bmp छवि फ़ाइलों के साथ लोड करने के लिए किया जा सकता है, और ये चित्र हमारे TFT LCD स्क्रीन में Arduino प्रोग्राम का उपयोग करके प्रदर्शित किए जा सकते हैं।
नोट करने के लिए एक और महत्वपूर्ण बात यह है कि आपका इंटरफ़ेस आईसी है । बाजार में कई प्रकार के टीएफटी मॉड्यूल उपलब्ध हैं जो मूल एडफ्रूट टीएफटी एलसीडी मॉड्यूल से शुरू होकर सस्ते चीनी क्लोन तक हैं। एक प्रोग्राम जो आपके Adafruit ढाल के लिए पूरी तरह से काम करता है, चीनी ब्रेकआउट बोर्डों के लिए समान काम नहीं कर सकता है। इसलिए, यह जानना बहुत महत्वपूर्ण है कि आपके हाथ में किस प्रकार के एलसीडी डिस्प्ले हैं। यह विवरण विक्रेता से प्राप्त करना होगा। यदि आपको मेरा जैसा सस्ता क्लोन मिल रहा है, तो यह शायद सबसे अधिक ili9341 ड्राइवर आईसी का उपयोग कर रहा है । कुछ बुनियादी उदाहरण कार्यक्रमों को आज़माने और एलसीडी स्क्रीन के साथ सहज होने के लिए आप Arduino ट्यूटोरियल के साथ इस TFT LCD इंटरफेसिंग का अनुसरण कर सकते हैं। यहाँ Arduino के साथ हमारे अन्य TFT LCD प्रोजेक्ट्स भी देखें:
- Arduino और TFT LCD के साथ NeoPixel LED Strip का उपयोग कैसे करें
- Arduino का उपयोग कर स्मार्ट फोन नियंत्रित डिजिटल कोड लॉक
टच स्क्रीन के लिए TFT एलसीडी स्क्रीन को कैलिब्रेट करना:
यदि आप अपने टीएफटी एलसीडी मॉड्यूल के टच स्क्रीन फ़ंक्शन का उपयोग करने की योजना बना रहे हैं, तो आपको इसे ठीक से काम करने के लिए कैलिब्रेट करना होगा। अंशांकन के बिना एक एलसीडी स्क्रीन संभावना नहीं काम कर सकती है, उदाहरण के लिए आप एक स्थान पर स्पर्श कर सकते हैं और टीएफटी किसी अन्य स्थान पर स्पर्श के लिए प्रतिक्रिया दे सकता है। ये अंशांकन परिणाम सभी बोर्डों के लिए समान नहीं होंगे और इसलिए आपको ऐसा करने के लिए अपने आप छोड़ दिया जाता है।
कैलिब्रेट करने का सबसे अच्छा तरीका है कि आप अपनी त्रुटि का पता लगाने के लिए कैलिब्रेशन उदाहरण प्रोग्राम (लाइब्रेरी के साथ आता है) का उपयोग करें या सीरियल मॉनिटर का उपयोग करें। हालाँकि इस परियोजना के लिए चूंकि बटन का आकार बड़ा है, इसलिए अंशांकन एक बड़ी समस्या नहीं होनी चाहिए और मैं यह भी बताऊंगा कि आप नीचे दिए गए प्रोग्रामिंग अनुभाग के तहत अपनी स्क्रीन को कैसे कैलिब्रेट कर सकते हैं।
Arduino के साथ TFT एलसीडी कनेक्शन:
2.4 ”TFT एलसीडी स्क्रीन एक आदर्श Arduino शील्ड है। आप सीधे Arduino Uno के ऊपर LCD स्क्रीन को पुश कर सकते हैं और यह पूरी तरह से पिंस के साथ मैच करेगा और अंदर से स्लाइड करेगा। हालाँकि, सुरक्षा के मामलों में आपके Arduino UNO के प्रोग्रामिंग टर्मिनल को एक छोटे से इंसुलेशन टेप के साथ कवर किया जाता है, बस अगर आपके टीएफटी एलसीडी स्क्रीन के साथ टर्मिनल संपर्क में आता है। यूएनओ पर इकट्ठे एलसीडी नीचे कुछ इस तरह दिखेगा।
TFT एलसीडी के लिए अपने Arduino प्रोग्रामिंग:
हम इस arduino कैलकुलेटर कोड को काम करने के लिए SPFD5408 लाइब्रेरी का उपयोग कर रहे हैं। यह Adafruit की एक संशोधित लाइब्रेरी है और हमारे LCD TFT मॉड्यूल के साथ मूल रूप से काम कर सकती है। आप इस लेख के अंत में पूरा कार्यक्रम देख सकते हैं।
नोट: इस लाइब्रेरी को अपने Arduino IDE या किसी भी त्रुटि के बिना संकलित करने के लिए इस प्रोग्राम को स्थापित करना आपके लिए बहुत महत्वपूर्ण है।
इस लाइब्रेरी को स्थापित करने के लिए, आप बस ऊपर दिए गए लिंक पर क्लिक कर सकते हैं जो आपको Github पृष्ठ पर ले जाएगा। क्लोन या डाउनलोड पर क्लिक करें और "डाउनलोड ज़िप" चुनें। एक ज़िप फ़ाइल डाउनलोड की जाएगी।
अब, Arduino IDE खोलें और स्केच चुनें -> लिब्रा को शामिल करें ->.ZIP लाइब्रेरी जोड़ें। एक ब्राउज़र विंडो ज़िप फ़ाइल में खुलेगी और "ओके" पर क्लिक करेगी। यदि सफल हो तो आपको Arduino के निचले-बाएँ कोने पर "लाइब्रेरी को आपकी लाइब्रेरी में जोड़ा गया" नोटिस करना चाहिए। ऐसा करने के लिए एक विस्तृत मार्गदर्शिका इंटरफेसिंग ट्यूटोरियल में दी गई है।
अब, आप अपने Arduino IDE में नीचे दिए गए कोड का उपयोग कर सकते हैं और इसे काम करने के लिए टच स्क्रीन कैलकुलेटर के लिए अपने Arduino UNO में अपलोड कर सकते हैं। इसके अलावा, मैंने कोड को छोटे खंडों में समझाया है।
हमें इस कार्यक्रम के लिए तीन पुस्तकालयों की आवश्यकता है; इन तीनों पुस्तकालयों को ऊपर दिए गए लिंक से डाउनलोड की गई ज़िप फ़ाइल में दिया गया था। मैंने उन्हें केवल नीचे दिखाए अनुसार कोड में शामिल किया है।
#शामिल
जैसा कि पहले कहा गया था कि हमें उम्मीद के मुताबिक काम करने के लिए एलसीडी स्क्रीन को कैलिब्रेट करना होगा, लेकिन यहां दिए गए मूल्यों की चिंता न करें। चर TS_MINX, TS_MINY, TS_MAXX और TS_MAXY स्क्रीन के अंशांकन का निर्णय लेते हैं। अगर आपको लगता है कि अंशांकन संतोषजनक नहीं है, तो आप उनके चारों ओर खिलौना लगा सकते हैं।
#define TS_MINX 125 #define TS_MINY 85 #define TS_MAXX 965 #define TS_MAXY 905
जैसा कि हम जानते हैं कि TFT LCD स्क्रीन बहुत सारे रंग प्रदर्शित कर सकती है, इन सभी रंगों को हेक्स मान में दर्ज करना होगा। इसे और अधिक मानवीय पठनीय बनाने के लिए हम इन मूल्यों को एक चर पर देते हैं जैसा कि नीचे दिखाया गया है।
#define WHITE 0x0000 // ब्लैक-> व्हाइट #define YELLOW 0x001F // ब्लू-> येलो #define CYAN 0xF800 // रेड-> सियान #define पिंक 0x07800 // ग्रीन-> पिंक #define RED 0x07FF // सियान -> रेड #define GREEN 0xF81F // गुलाबी -> हरा #define BLUE 0xFFE0 // पीला-> नीला #define काला 0xFFFF // सफेद-> काला
ठीक है, अब हम प्रोग्रामिंग भाग में आ सकते हैं। इस कार्यक्रम में तीन खंड शामिल हैं । एक बटन और डिस्प्ले के साथ एक कैलकुलेटर का यूआई बना रहा है। फिर, उपयोगकर्ताओं के आधार पर बटन का पता लगाते हैं और अंत में परिणामों की गणना करते हैं और उन्हें प्रदर्शित करते हैं। आइए हम एक-एक करके उनके बारे में जानें।
1. कैलकुलेटर का UI बनाना:
यह वह जगह है जहां आप कैलकुलेटर के यूजर इंटरफेस को डिजाइन करने के लिए अपनी रचनात्मकता का भरपूर उपयोग कर सकते हैं । मैंने केवल 16 बटनों और एक डिस्प्ले यूनिट के साथ एक कैलकुलेटर का मूल लेआउट बनाया है। आपको डिज़ाइन का निर्माण वैसे ही करना है जैसे आप MS पेंट पर कुछ आकर्षित करेंगे। जोड़े गए लाइब्रेरी आपको लाइन्स, रेक्टेंगल, सर्कल्स, चार्ट्स, स्ट्रिंग्स और किसी भी पसंदीदा रंग के बहुत अधिक आकर्षित करने की अनुमति देंगे। आप इस लेख से उपलब्ध कार्यों को समझ सकते हैं।
मैंने UI डिजाइन करने के लिए लाइन और बॉक्स ड्राइंग क्षमताओं का उपयोग किया है जो 90 के कैलकुलेटर के समान दिखता है। प्रत्येक बॉक्स की चौड़ाई और ऊंचाई 60 पिक्सेल है।
// परिणाम बॉक्स tft.fillRect (0, 0, 240, 80, CYAN) ड्रा करें; // ड्रा पहला कॉलम tft.fillRect (0,260,60,60, RED); tft.fillRect (0,200,60,60, काला); tft.fillRect (0,140,60,60, काला); tft.fillRect (0,80,60,60, काला); // ड्रा तीसरा कॉलम tft.fillRect (120,260,60,60, GREEN); tft.fillRect (120,200,60,60, काला); tft.fillRect (120,140,60,60, काला); tft.fillRect (120,80,60,60, काला); // ड्रा (सेकेंड बी = 260; b> = 80; b- = 60) {tft.fillRect (180, b, 60,60, BLUE) के लिए Secound और चौथा कॉलम; tft.fillRect (60, b, 60,60, BLACK);} // क्षैतिज रेखाएँ खींचें (उदाहरण के लिए h = 80; h <= 320; h + = 60) tft.drawFastHLine (0, h, 240, WHITE); // (ऊर्ध्वाधर v = 0; v <= 240; v + = 60) tft.drawFastVLine (v, 80, 240, WHITE) के लिए लंबवत रेखाएँ खींचें; // डिस्प्ले कीपैड लैब्स के लिए (int j = 0; j <4; j ++) {for (int i = = i <i; 4; i ++) {tft.setCursor (22 + (60 * i), 100 + (60 *) जे)); tft.setTextSize (3); tft।setTextColor (WHITE); tft.println (प्रतीक);
2. बटन का पता लगाने:
एक और चुनौतीपूर्ण कार्य उपयोगकर्ता स्पर्श का पता लगा रहा है । हर बार जब उपयोगकर्ता कहीं छूता है तो हम यह कैसे तय कर सकते हैं कि पिक्सेल के X और Y स्थान को उसने कहां छुआ है। इस मूल्य को नीचे दिखाए गए अनुसार प्रिंटलाइन का उपयोग करके सीरियल मॉनिटर पर प्रदर्शित किया जा सकता है।
TSPoint p = WaitTouch (); एक्स = पी; वाई = पीएक्स; सिरियल.प्रिंट (एक्स); सीरियल.प्रिंट (','); सीरीयल.प्रिंट (वाई); // + "" + वाई);
चूंकि हमने बॉक्स को 60 पिक्सेल की चौड़ाई और ऊंचाई के साथ डिज़ाइन किया है और इसमें चार पंक्तियाँ हैं और (0,0) से शुरू होने वाले कॉलम के लिए। प्रत्येक बॉक्स की स्थिति का अनुमान लगाया जा सकता है जैसा कि नीचे चित्र में दिखाया गया है।
लेकिन व्यावहारिक मामले में, यह परिणाम नहीं होगा। अंशांकन समस्या के कारण अपेक्षित और वास्तविक मूल्य के बीच एक बड़ा अंतर होगा।
तो, बॉक्स की सटीक स्थिति की भविष्यवाणी करने के लिए, आपको लाइन पर क्लिक करना होगा और सीरियल मॉनिटर पर इसकी संबंधित स्थिति की जांच करनी होगी। यह ऐसा करने का सबसे अधिक पेशेवर तरीका नहीं हो सकता है, लेकिन फिर भी यह पूरी तरह से काम करता है। मैंने सभी लाइनों की स्थिति को मापा और नीचे दिए गए मान प्राप्त किए।
अब, चूंकि हम सभी बॉक्स की स्थिति जानते हैं। जब कोई उपयोगकर्ता कहीं भी छूता है तो हम अनुमान लगा सकते हैं कि उसने नीचे दिखाए गए प्रत्येक बॉक्स के मूल्य के साथ उसके (एक्स, वाई) मूल्यों की तुलना करके कहां छुआ है।
if (X <105 && X> 50) // कॉलम 2 पर बटनों का पता लगाना {if (Y> 0 && Y <85) {Serial.println ("बटन 0"); // बटन 0 दबाया जाता है अगर (संख्या == 0) संख्या = 0; और संख्या = (संख्या * १०) + ०; // दो बार दबाया जाता है} यदि (Y> 85 && Y <140) {Serial.println ("बटन 2"); if (संख्या == 0) संख्या = 2; और संख्या = (संख्या * १०) + २; // दो बार दबाया गया}
3. संख्या प्रदर्शित करना और परिणाम की गणना करना:
अंतिम चरण परिणाम की गणना करना और उन्हें TFT LCD स्क्रीन पर प्रदर्शित करना है। यह Arduino कैलकुलेटर केवल 2 नंबरों के साथ ऑपरेशन कर सकता है। इन दो नंबरों को "नंबर 1" और "न्यू 2" नाम दिया गया है। चर "संख्या" देता है और Num1 और Num2 से मूल्य लेता है और परिणाम भी देता है।
जब कोई उपयोग बटन दबाता है, तो एक अंक संख्या में जोड़ा जाता है। जब एक और बटन दबाया जाता है, तो पिछले एक अंक को 10 से गुणा किया जाता है और इसके साथ नया नंबर जोड़ा जाता है। उदाहरण के लिए, यदि हम 8 दबाते हैं और फिर 5 दबाते हैं और फिर 7. दबाते हैं तो पहले चर 8 (8 * 10) + 5 = 85 फिर 85 (85 * 10) +7 = 857 होगा। इसलिए अंत में चर होगा मूल्य 857 इसके साथ।
if (Y> 192 && Y <245) {Serial.println ("बटन 8"); if (संख्या == 0) संख्या = 8; और संख्या = (संख्या * १०) + *; // फिर से दबाया}
जब हम इसके जैसे किसी भी आपरेशन, जब उपयोगकर्ता अलावा बटन संख्या से मूल्य को हस्तांतरित किया जाएगा प्रेस प्रदर्शन संख्या 1 और फिर संख्या शून्य इतना है कि यह दूसरे नंबर के लिए इनपुट लेने के लिए तैयार हो जाता है किया जाएगा।
जब समान दबाया जाता है तो संख्या में मान को Num2 पर भेज दिया जाएगा और फिर संबंधित गणना (इस मामले में जोड़ में) की जाएगी और परिणाम फिर से "नंबर" चर में संग्रहीत किया जाएगा।
अंत में यह मान एलसीडी स्क्रीन में प्रदर्शित किया जाएगा।
काम कर रहे:
इस Arduino टच स्क्रीन कैलकुलेटर का काम सरल है। आपको नीचे दिए गए कोड को अपने Arduino पर अपलोड करना होगा और इसे फायर करना होगा। आपको अपने एलसीडी स्क्रीन पर प्रदर्शित कैलकुलेटर मिलता है।
अब, आप किसी भी संख्या में प्रवेश कर सकते हैं और अपनी गणना कर सकते हैं। यह अब तक केवल दो ऑपरेंड और केवल ऑपरेटर तक ही सीमित है। लेकिन, आप बहुत सारे विकल्प होने के लिए कोड को ट्विक कर सकते हैं।
आपको गणना करने के बाद हर बार स्क्रीन पर मान को साफ़ करने के लिए "C" दबाना होगा। आशा है कि आपने इस परियोजना को समझा और कुछ इसी तरह के निर्माण का आनंद लिया। यदि आपको कोई संदेह है, तो उन्हें मंचों पर या नीचे टिप्पणी अनुभाग पर पोस्ट करने के लिए स्वतंत्र महसूस करें। अगली बार मिलते हैं एक और दिलचस्प प्रोजेक्ट के साथ, तब तक हैप्पी कंप्यूटिंग !!
नीचे प्रदर्शन वीडियो भी देखें ।