विषयसूची:
वीडियो: Arduino नैनो के लिए LCD COG: 3 चरण
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
यह निर्देशयोग्य वर्णन करता है कि एक Arduino नैनो के साथ COG LCD का उपयोग कैसे करें।
COG LCD डिस्प्ले सस्ते होते हैं लेकिन इंटरफेस के लिए थोड़े कठिन होते हैं। (COG का अर्थ "चिप ऑन ग्लास" है।) मैं जो उपयोग कर रहा हूं उसमें UC1701 ड्राइवर चिप है। इसके लिए Arduino के केवल 4 पिन की आवश्यकता होती है: SPI-घड़ी, SPI-डेटा, चिप-चयन और कमांड/डेटा।
UC1701 को SPI बस द्वारा नियंत्रित किया जाता है और 3.3V पर चलता है।
यहां मैं वर्णन करता हूं कि इसे Arduino नैनो के साथ कैसे उपयोग किया जाए। इसे Arduino Mini या Uno के साथ भी काम करना चाहिए - मैं इसे जल्द ही आज़माउंगा।
यह मेरा पहला Arduino प्रोजेक्ट है और मैंने दशकों में C नहीं लिखा है, इसलिए यदि मैं कोई स्पष्ट गलती कर रहा हूं, तो कृपया मुझे बताएं।
चरण 1: हार्डवेयर का निर्माण
एक COG LCD खरीदें जिसमें UC1701 चिप हो। इसे समानांतर इंटरफ़ेस के बजाय SPI बस का उपयोग करना चाहिए। इसमें लगभग 14 पिन होंगे जिन्हें नीचे सूचीबद्ध नामों के साथ लेबल किया जाएगा। (आप D0, D1, D2 … लेबल वाले बहुत अधिक पिन के साथ समानांतर इंटरफ़ेस नहीं चाहते हैं)
मैंने जो खरीदा है वह है: https://www.ebay.co.uk/itm/132138390168 या आप "12864 LCD COG" के लिए ईबे खोज सकते हैं।
1.27 मिमी की दूरी पर पिन के साथ काफी चौड़ी पूंछ वाली एक चुनें - महीन पिंस मिलाप के लिए कठिन होंगे। सुनिश्चित करें कि इसमें UC1701 चिप है। ध्यान दें कि ईबे पेज पर छठी तस्वीर में, यह "कनेक्टर: सीओजी/यूसी1701" कहता है।
डिस्प्ले पारदर्शी है और यह जानना मुश्किल है कि आगे और पीछे कौन सा है। मेरे चित्रों का ध्यानपूर्वक अध्ययन करो। ध्यान दें कि पिन 1 और 14 कहां हैं - वे पूंछ पर चिह्नित हैं।
लचीली पूंछ मिलाप के लिए काफी आसान है लेकिन इसके लिए एक एडेप्टर की आवश्यकता होती है ताकि आप इसे ब्रेडबोर्ड में प्लग कर सकें। मैंने खरीदा: https://www.ebay.co.uk/itm/132166865767 या आप "एडेप्टर एसएमडी एसएसओपी28 डीआईपी28" के लिए ईबे खोज सकते हैं।
एडेप्टर एक तरफ 28-पिन एसओपी चिप या दूसरी तरफ 28-पिन एसएसओपी चिप लेता है। एक SOP चिप में 0.05 (1.27mm) की पिन स्पेसिंग होती है जो LCD की टेल के समान होती है।
आपको कुछ हैडर पिन की भी आवश्यकता होगी। जब भी मैं एक Arduino या अन्य मॉड्यूल खरीदता हूं, तो यह जरूरत से ज्यादा हेडर पिन के साथ आता है, इसलिए आपके पास शायद पहले से ही कुछ है। अन्यथा, "2.54 मिमी हेडर पिन" के लिए ईबे खोजें।
एडॉप्टर पर हेडर पिन का सोल्डर 14। उन्हें पूरी तरह से धक्का न दें - अगर एडेप्टर का पिछला हिस्सा सपाट है तो यह अच्छा है। इसे अपनी बेंच पर सपाट रखें ताकि पिनों को छेदों में बहुत दूर न धकेला जा सके। सुनिश्चित करें कि पिन बोर्ड के एसओपी पक्ष (यानी बड़ी चिप) पर हैं।
पूंछ के पैड एक तरह की खिड़की में होते हैं। उनके दोनों किनारों को सोल्डर से टिन करें। एडॉप्टर के पैड को टिन करें। एडॉप्टर की पूंछ को जगह पर पकड़ें फिर प्रत्येक पैड को टांका लगाने वाले लोहे से स्पर्श करें (आपको काफी महीन टिप की आवश्यकता होगी)।
तनाव से राहत के रूप में कार्य करने के लिए एडेप्टर में छेद के माध्यम से कुछ धागा बांधें। (मैंने "ट्रांसफार्मर तार" का इस्तेमाल किया)।
यदि आप इसे गलत तरीके से गोल करते हैं, तो पूंछ को अनसोल्ड करने का प्रयास न करें। एक-एक करके पिन निकालें और उन्हें बोर्ड के दूसरी तरफ ले जाएं। (हां, मैंने वह गलती की और पूंछ को फिर से मिला दिया, यही वजह है कि फोटो में थोड़ी गड़बड़ है।)
चरण 2: Arduino से जुड़ना
यह खंड बताता है कि कैसे एक Arduino नैनो से कनेक्ट किया जाए। यह मिनी या ऊनो के लिए बहुत समान होगा लेकिन मैंने अभी तक इसकी कोशिश नहीं की है।
सर्किट आरेख का अध्ययन करें।
एक Arduino Nano जो USB पोर्ट से जुड़ा है, 5V पर चलता है। एलसीडी 3.3V पर चलता है। तो आपको नैनो के 3V3 पिन से LCD को पावर देने और प्रत्येक कंट्रोल पिन पर वोल्टेज को 5V से 3.3V तक कम करने की आवश्यकता है।
LCD का पिनआउट है:
- 1 सीएस
- 2 आरएसटी
- 3 सीडी
- 4
- 5 सीएलके
- 6 एसडीए
- ७ ३वी३
- 8 0V Gnd
- 9 वीबी0+
- 10 वीबी0-
- 11
- 12
- 13
- 14
सीएस चिप-सेलेक्ट है। UC1701 चिप को चुनने (सक्षम) करने के लिए इसे नीचे खींचा गया है। (CS को CS0 या En या समान कहा जा सकता है।)
आरएसटी रीसेट है। चिप को रीसेट करने के लिए इसे नीचे खींचा जाता है। (आरएसटी को रीसेट कहा जा सकता है।)
सीडी कमांड/डेटा है। एसपीआई पर चिप को कमांड भेजते समय इसे कम खींचा जाता है। डेटा भेजते समय यह उच्च होता है। (सीडी को A0 कहा जा सकता है।)
CLK और SDA SPI बस पिन हैं। (एसडीए को एसपीआई-डेटा कहा जा सकता है। सीएलके एससीएल या एसपीआई-क्लॉक हो सकता है।)
VB0+ और VB0- का उपयोग UC1701 के आंतरिक चार्ज पंप द्वारा किया जाता है। चार्ज पंप एलसीडी द्वारा आवश्यक विषम वोल्टेज उत्पन्न करता है। VB0+ और VB0- के बीच एक 100n संधारित्र कनेक्ट करें। UC1701 प्रलेखन 2uF की सिफारिश करता है लेकिन मैं इस विशेष LCD के साथ कोई अंतर नहीं देख सका।
अगर आपके LCD में VB1+ और VB1- पिन हैं, तो उनके बीच एक 100n कैपेसिटर भी कनेक्ट करें। (यदि आपके LCD में VLCD पिन है, तो आप VLCD और Gnd के बीच 100n कैपेसिटर को जोड़ने का प्रयास कर सकते हैं। इससे मेरे LCD से कोई फर्क नहीं पड़ा।)
एलसीडी को नैनो से इस प्रकार कनेक्ट करें:
- 1 सीएस = डी10 *
- 2 आरएसटी = डी6 *
- 3 सीडी = डी7 *
- 5 सीएलके = डी13 *
- 6 एसडीए = डी11 *
- ७ ३वी३ = ३वी३
- ८ ०वी = Gnd
("*" का अर्थ वोल्टेज को कम करने के लिए एक संभावित विभक्त का उपयोग करना है। यदि Arduino एक स्वतंत्र आपूर्ति से 3V3 पर चल रहा है, तो आपको प्रतिरोधों की आवश्यकता नहीं होगी।)
3.3V नैनो द्वारा आउटपुट है और LCD के लिए पर्याप्त करंट प्रदान कर सकता है। (डिस्प्ले लगभग 250uA खींचता है।)
5V भी नैनो द्वारा आउटपुट है और इसका उपयोग बैकलाइट को पावर देने के लिए किया जा सकता है। एक 100ohm रोकनेवाला के साथ वर्तमान को बैकलाइट तक सीमित करें।
यदि आपके पास नैनो पर पिन की कमी है, तो आप RST को 3V3 से जोड़ सकते हैं - फिर आप किसी और चीज़ के लिए D6 का उपयोग कर सकते हैं। U1701 को SPI पर एक कमांड द्वारा सॉफ्टवेयर में रीसेट किया जा सकता है। मुझे इससे कभी कोई परेशानी नहीं हुई, लेकिन अगर आप शोरगुल वाले वातावरण में अपने सर्किट का उपयोग कर रहे हैं, तो हार्डवेयर रीसेट का उपयोग करना बेहतर हो सकता है।
चरण 3: सॉफ्टवेयर
सिद्धांत रूप में, आप UC1701 को U8g2 लाइब्रेरी (या Ucglib या उपलब्ध अन्य लाइब्रेरी) से चला सकते हैं। मैंने इसे काम करने के लिए कई दिनों तक संघर्ष किया और असफल रहा। U8g2 लाइब्रेरी एक राक्षस है क्योंकि यह कई प्रकार के चिप्स चला सकती है और कोड का पालन करना बहुत कठिन है। इसलिए मैंने हार मान ली और अपनी छोटी लाइब्रेरी लिखी। यह Arduino (लगभग 3400 बाइट्स प्लस फोंट) में बहुत कम जगह लेता है।
आप यहां से मेरी लाइब्रेरी डाउनलोड कर सकते हैं (इस पेज पर डाउनलोड बटन)। एक नमूना स्केच और एक उपयोगकर्ता गाइड शामिल हैं। वेब पेज https://www.arduino.cc/en/Guide/Libraries वर्णन करता है कि पुस्तकालय कैसे आयात किया जाए; "एक.zip लाइब्रेरी आयात करना" अनुभाग पर जाएं।
LCD को इनिशियलाइज़ करें
UC1701Begin ();
UC1701Begin पिन बदलने या RST पिन को अनदेखा करने के लिए पैरामीटर ले सकता है। पुस्तकालय केवल हार्डवेयर एसपीआई का उपयोग करता है (एक सॉफ्टवेयर एसपीआई प्रदान नहीं किया जाता है)। डिस्प्ले को x और y अक्षों में फ़्लिप किया जा सकता है। यह उपयोगी है यदि आप एलसीडी को एक अलग अभिविन्यास में माउंट करना चाहते हैं।
U8g2 लाइब्रेरी से कई प्रक्रियाओं को दोहराया गया है:
- रेखा खींचें
- ड्रापिक्सेल
- ड्राहलाइन
- ड्रावीलाइन
- ड्राबॉक्स
- ड्राफ्रेम
- ड्रा सर्कल
- ड्राडिस्क
- DrawFilledElipse
- ड्राइलिप्स
- ड्राट्राएंगल
- UC1701सेटकर्सर
- UC1701क्लियरडिस्प्ले
कुछ प्रक्रियाएं थोड़ी अलग हैं:
- शून्य DrawChar (uint8_t c, शब्द फ़ॉन्ट);
- शून्य ड्रॉस्ट्रिंग (चार * एस, शब्द फ़ॉन्ट);
- शून्य DrawInt (int i, शब्द फ़ॉन्ट);
स्ट्रिंग ड्राइंग प्रक्रियाओं को एक फ़ॉन्ट की अनुक्रमणिका पारित किया जाता है। फ़ॉन्ट्स को Arduino की फ्लैश मेमोरी में घोषित किया जाता है, इसलिए वे कीमती SRAM पर कब्जा नहीं कर रहे हैं। तीन फोंट प्रदान किए जाते हैं (छोटे, मध्यम और बड़े)। वे केवल तभी जुड़े हुए हैं और फ्लैश मेमोरी पर कब्जा कर लेते हैं यदि आप उनका उपयोग करते हैं (लगभग 500 से 2000 बाइट्स प्रत्येक)।
"कलर" को U8g2 लाइब्रेरी से अलग तरीके से हैंडल किया जाता है। जब LCD को साफ किया जाता है तो उसकी पृष्ठभूमि गहरे रंग की होती है। यदि MakeMark (एक वैश्विक चर) सत्य है, तो चित्र सफेद रंग में किया जाता है। यदि मेकमार्क गलत है, तो ड्राइंग अंधेरे में की जाती है।
कुछ प्रक्रियाएं UC1701 के लिए अद्वितीय हैं:
SetInverted सफेद-पर-काले के बजाय काले-पर-सफेद में आकर्षित करता है।
शून्य सेटइनवर्टेड (बूल आमंत्रण);
UC1701 की चमक और कंट्रास्ट इसके द्वारा निर्धारित किए जाते हैं:
- शून्य सेटकॉन्ट्रास्ट (uint8_t मान); // सुझाया गया है 14
- शून्य सेटरेसिस्टर (uint8_t मान); // सुझाया गया है 7
वे एक साथ असंतोषजनक तरीके से काम करते हैं।
एलसीडी के नीचे सेट सक्षम शक्तियां:
शून्य सेट सक्षम (बूल एन);
सोते समय डिस्प्ले 4uA लेता है। आपको बैकलाइट भी बंद कर देनी चाहिए - इसे नैनो के पिन से चलाएं। पुन: सक्षम करने के बाद, UC1701 को रीसेट कर दिया जाएगा; डिस्प्ले साफ़ हो गया है और कंट्रास्ट और रेसिस्टर को उनके डिफ़ॉल्ट मानों पर रीसेट कर दिया जाएगा।
तो, निष्कर्ष में, COG डिस्प्ले सस्ते और एक अच्छे आकार के हैं। वे एक Arduino से जुड़ना आसान हैं।
सिफारिश की:
बिना सोल्डर पिन हैडर के Arduino नैनो के लिए ICSP कनेक्टर लेकिन पोगो पिन: 7 कदम
बिना सोल्डर पिन हैडर लेकिन पोगो पिन के Arduino नैनो के लिए ICSP कनेक्टर: बोर्ड पर बिना सोल्डर पिन हेडर के Arduino नैनो के लिए ICSP कनेक्टर बनाएं, लेकिन Pogo Pin.Parts3×2 पिन सॉकेट X1 - APitch 2.54mm ड्यूपॉन्ट लाइन वायर महिला पिन कनेक्टर हाउसिंग टर्मिनल x6 - BP75-E2 (1.3 मिमी शंक्वाकार सिर) स्प्रिंग टेस्ट जांच पोगो पिन
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): 8 चरण
Arduino Uno के साथ ध्वनिक उत्तोलन चरण-दर-चरण (8-चरण): अल्ट्रासोनिक ध्वनि ट्रांसड्यूसर L298N डीसी महिला एडाप्टर बिजली की आपूर्ति एक पुरुष डीसी पिन के साथ Arduino UNOBreadboardयह कैसे काम करता है: सबसे पहले, आप Arduino Uno पर कोड अपलोड करते हैं (यह डिजिटल से लैस एक माइक्रोकंट्रोलर है और कोड (C++) कन्वर्ट करने के लिए एनालॉग पोर्ट
जेटसन नैनो डेवलपर किट पर Arduino सॉफ़्टवेयर (IDE) स्थापित करने के लिए: 3 चरण
जेटसन नैनो डेवलपर किट पर अरुडिनो सॉफ्टवेयर (आईडीई) स्थापित करने के लिए: यू को जेटसन नैनो डेवलपर किट की आवश्यकता होगी? ईथरनेट जैक या वाईफाई कार्ड का उपयोग करके आपके जेटसन बोर्ड के लिए एक इंटरनेट कनेक्शन जो स्थापित है
128x64 Arduino नैनो के लिए पीला/नीला OLED, TSL2591 के साथ: 3 चरण
TSL2591 के साथ Arduino नैनो के लिए 128x64 पीला/नीला OLED: आप ऑनलाइन स्केच उदाहरणों को मिलाकर एक TSL2591 स्पेक्ट्रोस्कोपिक सेंसर (अच्छी तरह से, दो चैनल - विज़ुअल और NIR…) के साथ Arduino नैनो पर OLED डिस्प्ले बना सकते हैं। आपको जो मिलता है वह कुल प्रवाह, दृश्य प्रवाह, NIR, और एक सूचकांक कैल का 4-लाइन डिस्प्ले है
(लगभग) आइपॉड नैनो के लिए इंस्टेंट हार्ड केस (Apple Box से!): ३ चरण
(लगभग) आईपॉड नैनो के लिए इंस्टेंट हार्ड केस (ऐप्पल बॉक्स से!): यह इतना आसान है, इसे वास्तव में चरण-दर-चरण चित्रण की आवश्यकता नहीं है, इसलिए मैं इसका वर्णन करने जा रहा हूं, आपको क्या चाहिए इसे बनाएं, इसे एक साथ कैसे रखें, और तैयार उत्पाद भागों को उचित समय पर दिखाएं। फिनिश करने के लिए शुरू करें