
फिर से नमस्कार, हेब्र! एक ड्राइवर के साथ एलसीडी मॉड्यूल के प्रबंधन पर लेख का
अनुवाद किया है , लेकिन अपने स्वयं के वीडियो रैम के बिना, मैंने उसी विषय पर एक और प्रकाशन का अनुवाद करने का फैसला किया। यहाँ मॉड्यूल पहले से ही सरल है, मोनोक्रोम है, लेकिन इसे "पुनर्जीवित" करने के लिए यह कम दिलचस्प नहीं है।
ड्राइवर के साथ एलसीडी नियंत्रण, लेकिन नियंत्रक के बिना
लेखक जिस प्रदर्शन के साथ काम करने जा रहा है वह एक पुराने टेप लाइब्रेरी से लिया गया है। नियंत्रक बच नहीं पाया, लेकिन "263645-001" से संबंधित किसी भी चीज़ की खोज से पता चला कि एक FPGA था। ऐसा माना जाता है कि Arduino आदि से ऐसे एलसीडी मॉड्यूल को सीधे नियंत्रित करते हैं। असंभव, आपको एक मध्यवर्ती लिंक की आवश्यकता है - SEDxxxxx श्रृंखला नियंत्रक, जो ब्रेडबोर्ड के साथ "अनुकूल" नहीं है, और इसमें मॉड्यूल की तुलना में अधिक इनपुट हैं। लेकिन ऐसा है नहीं। यहां चार समान परियोजनाएं हैं:
ATmega8515 परउस परतस्वीर परईएसपी 32 परऔर कुछ आम तौर पर आठ-बिट AVR VGA मॉनिटर को नियंत्रित करते हैं ...
सामान्य तौर पर, लेखक सफल रहा, एमआईटी लाइसेंस के तहत सॉफ्टवेयर
यहां है ।
अभी भी छवि
यह सुनिश्चित करने के लिए कि सब कुछ काम करता है, आपको पहले माइक्रोकंट्रोलर की फ्लैश मेमोरी से एकल-बिट रेखापुंज छवि को आउटपुट करने का प्रयास करना होगा। एक नकारात्मक वोल्टेज प्राप्त करने के लिए, हमने तीन "क्रोन" लिए, डिवाइडर से वोल्टेज, जिसे ट्यूनिंग रोकनेवाला के रूप में इस्तेमाल किया गया था, V0 टर्मिनल पर लागू किया गया था। और यहाँ स्क्रीन पर लेनना है:

लेखक अभी भी समझ नहीं पा रहा है कि वह चित्र को कैसे प्रबंधित कर सकता है (जिस तरफ केबल है, उसे देखें)। किसी भी स्थिति में, GitHub पर प्रोजेक्ट पृष्ठ पर यह उदाहरण है।
पाठ मोड
लेकिन वीडियो रोम बहुत कम उपयोग में है, और Arduino में वीडियो रैम के लिए कोई 9600 बाइट्स नहीं हैं। टेक्स्ट मोड बचाव के लिए आता है, जिसमें कैरेक्टर जनरेटर के रोम और संयुक्त वीडियो रैम ग्राफिक मोड में वीडियो रैम से छोटे होते हैं। कजाकिस्तान गणराज्य के समर्थक और "विशेषज्ञ" इस विषय पर अंतहीन भाले तोड़ सकते हैं।

AVR विधानसभा भाषा में एक छोटा उदाहरण:
... lpm r24, Z ;---------- (CL2 rising edge) out %[data_port], r24 ld r30, X+ swap r24; (CL2 rising edge) out %[data_port], r24 lpm r24, Z ;---------- (CL2 rising edge) out %[data_port], r24 ...
आवश्यक हार्डवेयर

F-51543NFU-LW-ADN / PWB51543C-2-V0 मॉड्यूल के लिए, लेखक ने आवेदन किया:
AVR पर Arduino 16 मेगाहर्ट्ज की घड़ी की आवृत्ति के साथ (ऊनो, लियोनार्डो पर परीक्षण किया गया और प्रोमैरो के समान एक क्लोन)।
नकारात्मक वोल्टेज का स्रोत। लेखक के लिए, यह एक अस्थिर डीसी-डीसी कनवर्टर A0524S-1W है जिसमें इनपुट और आउटपुट अलगाव है। MC34063 के लिए कन्वर्टर्स भी उपयुक्त हैं (यह चिप खोजने के लिए बहुत आसान है - बस एक सिगरेट लाइटर के लिए सबसे सस्ता यूएसबी-चार्ज को अलग करें) या मैक्स 749। स्थिरीकरण की आवश्यकता नहीं है, यहां इस्तेमाल किए गए मॉड्यूल के लिए इस इनपुट पर अनुमेय वोल्टेज की सीमा काफी व्यापक है। नाममात्र का मूल्य शून्य से 24 V है, अधिकतम शून्य सामान्य तार के सापेक्ष 30 और Vdd और Vee के बीच 35 है। वर्तमान खपत 6 mA है।
तर्क स्तर नियंत्रण के साथ दो एन-चैनल एमओएस ट्रांजिस्टर। लेखक ने IRL530n का उपयोग किया, स्टॉक, बेशक, बड़ा है, लेकिन यह निश्चित रूप से बाहर जला नहीं जाएगा। एक ट्रांजिस्टर बैकलाइट को नियंत्रित करता है, दूसरा एक नकारात्मक वोल्टेज स्रोत।
इनपुट V0 के लिए वोल्टेज की आपूर्ति के लिए 250 k V ट्रिमिंग रोकनेवाला। इतना तय करें कि -16.8 V चल तापमान पर +26 ° C के तापमान पर। यह एक डेटाशीट से है, और इसलिए, निश्चित रूप से, ऐसी सटीकता की आवश्यकता नहीं है।
नीचे खींचने के लिए कई 10-किलो प्रतिरोधक।
लेआउट और जंपर्स।
अब आप क्या करेंगे? क्यूआर घड़ी? कोटे से पूछें:

कोटे एक नियंत्रक के साथ कुछ सामान्य एलसीडी के सिमुलेशन को लागू करने की पेशकश करता है। ताकि HD44780 पर डिस्प्ले के साथ काम करने वाली एक और "सोच", केवल इस Arduino से जुड़ी हो सके।
फ़ॉन्ट - रैम में भी
हम ईजीए और वीजीए के साथ एक उदाहरण लेते हैं - वहां, जब पाठ मोड में काम करते हैं, तो यह सिर्फ उसी के साथ किया गया था। केवल यहाँ कुल 64 वर्ण थे, लेकिन कम से कम सब कुछ रैम में मिला, ग्राफिक मोड के विपरीत। सच है, घटनाओं का मुख्य चक्र धीमा हो गया है, लेकिन आप टाइल ग्राफिक्स आज़मा सकते हैं:

ग्राफिक मोड और हाफ़टोन
AVR पर Arduino में इतनी रैम नहीं है, और यह बात है। मेगा में भी। प्रति पिक्सेल एक बिट के साथ 320x240 - यह पहले से ही 9600 बाइट्स है। केवल चार हिस्सों को दोगुना करने की आवश्यकता होगी। बाहरी रैम के साथ, उदाहरण के लिए, एसक्यूआई मोड में 23LC512, आप डीएमए के समान कुछ लागू करने का प्रयास कर सकते हैं, लेकिन ESP32 पर सब कुछ रीमेक करना अधिक सरल और अधिक लाभदायक है, जहां अधिक स्थिर रैम है और डीएमए आसान है।
यदि आप USB के माध्यम से इस तरह के डिस्प्ले को पीसी से कनेक्ट करना चाहते हैं, तो आप इसके लिए ATmega32u4 का उपयोग करने का प्रयास कर सकते हैं - चमक के उन्नयन के लिए भी पर्याप्त संसाधन होंगे (FRC का उपयोग करके, यह मेरे पिछले अनुवाद में वर्णित है)। लेकिन इंटरफ़ेस कनवर्टर के रूप में उपयोग किए जाने वाले "मेगा" के साथ नहीं, बल्कि एक पीसी के साथ, जो 5.4 मेगाबिट्स प्रति सेकंड की गति से मक्खी पर एलसीडी को स्कैन करेगा।
जब मॉड्यूल अभी भी टेप लाइब्रेरी में खड़ा था, तो एक जीयूआई और चमक का ग्रेडेशन था - सब कुछ था।
अपडेट होंगे। इस बीच ...

और यह एक तस्वीर असेंबल नहीं है, लेकिन एक पीसी से नियंत्रण का परिणाम है। और हम Hackaday.io से GitHub पर स्विच करेंगे - README.md में अभी भी बहुत सारी दिलचस्प चीजें हैं।
ऐसे मॉड्यूल को नियंत्रित करने के लिए संकेत
FLM - पहली पंक्ति मार्कर - पहली पंक्ति मार्कर, को FRAME, VSYNC, आदि भी कहा जा सकता है।
सीएल 1 - पंक्ति कुंडी नाड़ी - स्ट्रिंग स्ट्रिंग लिखें, इसे भी कहा जा सकता है। लोड, HSYNC, आदि।
CL2 - पिक्सेल पारी घड़ी - पिक्सेल परिवर्तन पल्स, भी कहा जा सकता है। सीपी (परिवर्तन पिक्सेल), आदि।
M - प्रत्यावर्ती संकेत, जिसके कारण पिक्सल को प्रत्यावर्ती वोल्टेज द्वारा नियंत्रित किया जाता है, इसे BIAS (ऑफसेट), आदि भी कहा जा सकता है।
D0-D3 एक चार-बिट समानांतर डेटा बस है।
आम तार, बैकलाइट पावर (जैसे VLED module), मॉड्यूल पावर (VEE और V0)
डेटशीट की उपेक्षा न करें। मॉड्यूल को एक और नकारात्मक वोल्टेज की आवश्यकता हो सकती है, या यह सकारात्मक हो सकता है, या कनवर्टर अंतर्निहित हो सकता है। तर्क अलग हो सकता है, उदाहरण के लिए, CL1 पर एक इकाई के साथ CL2 पर कोई प्रतिक्रिया नहीं होगी। एक अलग बैकलाइट हो सकता है (CCFL (ध्यान से, इन्वर्टर एलईडी के बजाय एक "काटने" है), या बोर्ड पर कोई पिनआउट नहीं है, तो आप इसे बिना डेटशीट के नहीं जानते। आप यादृच्छिक पर कुछ भी कनेक्ट नहीं कर सकते।
वहाँ क्या करना है
स्ट्रिंग को चार बिट के टुकड़ों में संचारित करें, रिकॉर्डिंग CL2 पर गिरावट पर की जाती है। लाइन से गुजरने के बाद, इसे CL1 लाइन पर मंदी लिखें (हाँ, आखिरकार, मॉड्यूल में थोड़ी सी रैम एक लाइन पर है)। अगली पंक्ति स्वचालित रूप से चुनी जाएगी। पूरे फ्रेम को प्रसारित करने के बाद, FLM सिग्नल का उपयोग करके शुरुआत में वापस लौटें। LC79401 पर एक डेटशीट में एक उदाहरण है। पर्याप्त गति से रिकॉर्ड करें, समान रूप से CL1 पर दालों को लागू करें। नियंत्रक थोड़ा झिझका - स्क्रीन बदसूरत।
प्रत्येक फ्रेम के बाद, इनपुट एम पर तर्क स्तर को विपरीत पर बदलें, ताकि पिक्सल को वैकल्पिक वोल्टेज द्वारा नियंत्रित किया जाए। अन्यथा, प्रदर्शन बिगड़ता है:
आप इस ऑपरेशन को माइक्रोकंट्रोलर पर भरोसा नहीं कर सकते हैं, लेकिन एक गिनती योग्य ट्रिगर डाल सकते हैं। एफएलएम में प्रवेश, एम से बाहर निकलें - सामान्य रूप से, समझ में आता है।
फ्लैश मेमोरी (लेख की शुरुआत देखें) से छवियों को आउटपुट करने के लिए एक उदाहरण को इस रिपॉजिटरी में clglcd_simple कहा जाता है।
जैसा कि पहले ही उल्लेख किया गया है, AVR पर Arduino में RAM के साथ भी ऐसा करना असंभव है - यह पर्याप्त नहीं होगा, इसलिए ...
और फिर से - पाठ मोड
डेटाशीट के अनुसार, आप चार-बिट बस और 6 मेगाहर्ट्ज तक की आवृत्ति के साथ "पुल" सीएल 2 पर डेटा संचारित कर सकते हैं। इसलिए, आप लाइन को जल्दी और जल्दी से स्थानांतरित कर सकते हैं, फिर माइक्रोकंट्रोलर अन्य कार्यों को थोड़ा हल करता है, और जैसा कि टाइमर "बताता है" यह, यह "सीएल 1" खींचता है और चक्र को दोहराता है।
320 पिक्सेल के एक क्षैतिज रिज़ॉल्यूशन के लिए वर्ण बनाते समय, यह सब 20 μs (320 पिक्सेल / 4 बिट्स = 80 दालों) में किया जा सकता है, CL2 को "4 मेगाहर्ट्ज की आवृत्ति के साथ" खींचा जाता है)। शेष कार्यों के लिए, 39.5 μs रहता है। CL1 "झटका" हर 59.5 μs और 70 हर्ट्ज की एक फ्रेम दर प्राप्त करें। खैर, रुकावटों को संभालने के लिए और अधिक प्रक्रियाएं होंगी, सामान्य तौर पर, माइक्रोकंट्रोलर समय के 45% प्रदर्शन को नियंत्रित करने में व्यस्त होगा। "संपूर्ण" 45 या "कुल" 45? संभवतः दूसरा: वीडियो रैम में ओवरराइटिंग डेटा काफी तेजी से हो सकता है।
क्या आप चाहते हैं कि माइक्रोकंट्रोलर संकेतक के प्रबंधन में कम समय और अन्य कार्यों पर अधिक खर्च करे? आप फ्रेम दर को 50 हर्ट्ज तक कम कर सकते हैं, आप माइक्रोकंट्रोलर को 20 मेगाहर्ट्ज से अधिक कर सकते हैं। इन तरीकों में से किसी के साथ, बाधित दिनचर्या के बीच अधिक घड़ी चक्र होंगे।
एक आउटपुट तुलना टाइमर 50% के कर्तव्य चक्र के साथ हर चार घड़ी दालों को CL2 लाइन स्विच करता है। उसी समय, डेटा PORTB पोर्ट के आउटपुट पर जाता है, मॉड्यूल के चार-बिट डेटा बस से इस तरह से जुड़ा होता है कि वे पल में सीएल 2 तक बढ़ जाता है, और गिरावट के समय वे अपरिवर्तित रहते हैं। बेशक, यह कोडांतरक के बिना नहीं किया जा सकता है:
... lpm r24, Z ;---------- (CL2 rising edge) out %[data_port], r24 ld r30, X+ swap r24; (CL2 rising edge) out %[data_port], r24 lpm r24, Z ;---------- (CL2 rising edge) out %[data_port], r24 ...
8 चक्र - और चार निबल संचारित होते हैं। और जो वास्तव में संचारित करना है वह इस बात पर निर्भर करता है कि संबंधित वीडियो रैम सेल में कौन सा प्रतीक है, इस प्रतीक से संबंधित पिक्सल को चरित्र जनरेटर ROM से स्थानांतरित किया जाना चाहिए, और इस ROM की संबंधित कोशिकाओं में क्या संग्रहीत है।
यहां सबसे असुविधाजनक चीज 80 दालों के बाद टाइमर को रोकने की आवश्यकता है। कुछ टाइमर, जैसे 32u4 में टाइमर 4, नहीं कर सकते।
CL1 लाइन को दिए गए सिग्नल को प्राप्त करने के लिए, लेखक ने माइक्रोकंट्रोलर के एक अलग आउटपुट को लागू किया, जिसका उद्देश्य टाइमर के लिए और PWM दोनों के लिए है। इसमें से कौन सा यहां लागू किया गया है, यह समझ में आता है। यह हर 952 उपायों पर स्विच करता है। या यदि आप 8 से घड़ी के विभक्त के बाद गिनती करते हैं - यह हर 119 दालों को बाहर निकालता है। इस बिंदु पर, रुकावट प्रसंस्करण दिनचर्या शुरू होती है और नियंत्रण रेखा पर नए डेटा को प्रस्तुत करने के लिए माइक्रोकंट्रोलर को मजबूर करती है जो अगले पल्स के दौरान सीएल 1 के लिए आवश्यक होगी। खैर, एम लाइन पर स्तर आधे आवृत्ति के साथ बदलता है। और एलसीडी खराब नहीं होता है। सभी सिग्नल एक साथ इस तरह दिखते हैं:

वर्ण जनरेटर में 256 वर्ण होते हैं - 866, KOI-8R या 1251 के लिए पर्याप्त है। 40xN वर्णों को वीडियो रैम में रखा जाता है, जहां N वर्ण की ऊंचाई के आधार पर लाइनों की संख्या है। प्रतीक की चौड़ाई हमेशा 8 पिक्सेल होती है, और ऊँचाई 6, 8, 10, 12, 15, 16 हो सकती है। यह जितना छोटा होता है, वर्ण जनरेटर के लिए कम ROM की आवश्यकता होती है और अधिक RAM RAM की होती है। 8x8 फ़ॉन्ट (40 वर्ण प्रति 30 लाइन) के साथ आपको 1200 बाइट्स रैम और 2048 बाइट्स की आवश्यकता होती है। 8x16 फ़ॉन्ट (जो इस मॉड्यूल पर सबसे अच्छा दिखता है) के साथ, रैम को 600 बाइट्स, और ROM 4096 की आवश्यकता होती है। अनुवादक से: आप फ़ॉन्ट को 8x8 के रूप में संग्रहीत कर सकते हैं, और इसे प्रोग्रामेटिक रूप से दो बार स्केल करते हैं, और रैम और 2048 रोम की लागत 600 बाइट्स होती है। ROM में कई फोंट को स्टोर करने के लिए, आपको फॉन्ट स्टार्ट एड्रेस को एक स्थिरांक में नहीं, बल्कि एक वेरिएबल में रखने की जरूरत है, लेकिन यह टेक्स्ट को एक साथ कई फॉन्ट में प्रिंट करने के लिए काम नहीं करेगा, जब तक कि निश्चित रूप से, आप डिस्प्ले पर पिक्सल्स के ट्रांसफर के दौरान सीधे रुकावट प्रक्रिया द्वारा इस पते को बदल देते हैं।
फ़ॉन्ट इस तरह संग्रहीत किया जाता है: पहले सभी 256 वर्णों की शीर्ष पंक्तियाँ, फिर एक पंक्ति नीचे, और इसी तरह। रिपॉजिटरी के मिस फोल्डर में एक पायथन स्क्रिप्ट होती है जो आवश्यक प्रारूप में PROGMEM सरणी के साथ TTF फ़ॉन्ट को स्वचालित रूप से clglcd_font.h हेडर फ़ाइल में कनवर्ट करती है। CC-BY-SA 4.0 के लिए क्लासिक पिक्सेल फोंट
यहां देखे जा सकते
हैं ।
और फिर से - ईजीए और वीजीए के साथ एक उदाहरण लें
लेकिन इस बार विवरण के साथ। रैम में वर्ण जनरेटर, जैसा कि ऊपर संकेत दिया गया है, कुल 64 वर्णों को समायोजित करता है, उन्हें 0 से n या 255-n से 255 तक संख्याओं द्वारा पहचाना जा सकता है। वे एक ही तरीके से संग्रहीत होते हैं: सभी वर्णों की शीर्ष पंक्तियाँ, फिर निम्न, और इसी तरह। केवल यह सब इस तथ्य को ध्यान में रखते हुए संरेखित किया गया है कि वर्ण 256 नहीं हैं, लेकिन 64. अक्षर 8x16 पिक्सेल आकार में, 16 * 64 = 1024 बाइट आवश्यक हैं। रिपॉजिटरी में रैम में चरित्र जनरेटर के साथ काम करने का एक उदाहरण है।
यदि दोनों वर्ण जनरेटर एक ही समय में उपयोग किए जाते हैं - ROM में 256-वर्ण और RAM में 64-वर्ण, तो आपको यह स्वीकार करना होगा कि न केवल कम रैम होगी, बल्कि मॉड्यूल में लाइनों की डेटा ट्रांसफर गति भी घट जाएगी - 8 चक्रों के बजाय, दो नीबल्स की आवश्यकता होगी 12, 12 यानी 20 माइक्रोसेकंड नहीं, बल्कि 30, और एलसीडी कंट्रोल के लिए 45% समय के बजाय 60 लगेंगे।
Halftone ग्राफिक मोड
जैसा कि ऊपर बताया गया है, इस मामले में, माइक्रोकंट्रोलर बस एक इंटरफ़ेस कनवर्टर के रूप में काम करता है। आपको ATmega32u4 की आवश्यकता होगी, और क्या करना है
यहां वर्णित
है । कृपया ध्यान दें कि पीसी पर प्रोग्राम फ्रीजिंग के कारण मॉड्यूल क्षतिग्रस्त हो सकता है।
तो यह चार-तार लूप क्या है - प्रतिरोधक सेंसर से, यह निकलता है।
कहां से जुड़ना है
जैसा कि ऊपर बताया गया है, एक नकारात्मक वोल्टेज की आवश्यकता है, जो पहले प्रयोगों में तीन "क्रोन" से हटाया जा सकता है, और फिर कनवर्टर को इकट्ठा कर सकता है, उदाहरण के लिए, मैक्स 749। पावर कंट्रोल सिग्नल, साथ ही डिस्प्रोफ़ सिग्नल (यह एक उलटा संकेत है, मॉड्यूल एक पर चालू होता है), प्रतिरोधों को नीचे खींचें। माइक्रोकंट्रोलर को चमकाने और रीसेट करने के दौरान, वहाँ तार्किक इकाइयों की उपस्थिति अस्वीकार्य है।
वोल्टेज + 5V के बाद नकारात्मक वोल्टेज लागू करें, और DISPOFF लाइन के लिए एक तार्किक इकाई - जब डेटा नियंत्रण रेखा पर पहले से मौजूद है: डेटा बस पर कम से कम एक इकाई, CL1 पर इकाई। अन्यथा, मॉड्यूल विफल हो सकता है।
इनपुट D0-D3 को माइक्रोकंट्रोलर के समान पोर्ट के आउटपुट से जोड़ा जा सकता है, उदाहरण के लिए, Px4-Px7, जबकि आउटपुट Px0-Px3 को GPIO के रूप में उपयोग नहीं किया जा सकता है। आप उन्हें अन्य कार्य सौंप सकते हैं, उदाहरण के लिए, उन्हें टाइमर, सीरियल इंटरफेस आदि के आउटपुट के रूप में उपयोग करें। यदि आप उन्हें इनपुट के रूप में उपयोग करते हैं, तो सावधान रहें: अंतर्निहित पुल-प्रतिरोध प्रतिरोधों को मनमाने ढंग से स्विच कर सकते हैं यदि वे अक्षम नहीं हैं (PUD - पुल-अप अक्षम)।
इनपुट एम - तुलना टाइमर या PWM के आउटपुट के लिए।
इनपुट CL1 - उसी टाइमर के दूसरे आउटपुट में।
इनपुट CL2 - एक अन्य तुलना टाइमर के आउटपुट के लिए।
FLM - किसी भी डिजिटल आउटपुट के लिए।
DISPOFF - किसी अन्य डिजिटल आउटपुट के लिए।
बाकी यह निर्भर करता है कि आप मॉड्यूल को कैसे पावर करते हैं। लेखक बैकलाइट और वी को अलग से नियंत्रित करना पसंद करता है।
फर्मवेयर का उपयोग कैसे करें
स्केच में clglcd.h और clglcd.cpp फाइलें रखें
Clglcd_config.h फ़ाइल की एक बैकअप प्रतिलिपि बनाएँ और इसे ध्यान में रखते हुए संपादित करें कि क्या जुड़ा हुआ है, साथ ही आपको किन कार्यों की आवश्यकता है: RAM में एक चरित्र जनरेटर, आदि। ध्यान दें, कोड Arduino पिन के नामों को इंगित नहीं करता है, लेकिन डेटा पत्रक के अनुसार माइक्रोकंट्रोलर पिन के नाम। तुलना टैमर्स के आउटपुट के नाम निम्नानुसार हैं: उदाहरण के लिए, 2, B OC2B है, जो Arduino Uno पर PD3 से मेल खाता है। उदाहरण उन कनेक्शन विकल्पों को दिखाते हैं जो लेखक द्वारा अर्जित किए गए हैं।
फ़ॉन्ट फ़ाइल clglcd_font.h को मिस फ़ोल्डर में पायथन स्क्रिप्ट के साथ उत्पन्न करें (ऊपर देखें)।
उदाहरणों में देखें कि कैसे आरंभ करें, चालू करें और प्रदर्शन बंद करें। स्क्रीन सरणी में डालें जिसे आप सत्यापन के लिए प्रदर्शित करना चाहते हैं।
संकलित करें और स्केच भरें। एक तर्क विश्लेषक के साथ जांचें कि सही सिग्नल डिस्प्ले में जाएंगे, और एक वाल्टमीटर के साथ कि सभी आपूर्ति वोल्टेज सामान्य हैं। इसके बाद ही डिस्प्ले कनेक्ट करें।
स्केच में एक कोड जोड़ें जो कुछ करेगा, उदाहरण के लिए, एक सीरियल पोर्ट पर टेक्स्ट प्राप्त करें और इसे प्रदर्शित करें।
व्यवधान प्रदर्शित करें
डिस्प्ले को लगातार अपडेट करने की आवश्यकता होती है, जो कि रुकावट से निपटने की प्रक्रिया है। यदि रुकावट 30 से अधिक माइक्रोसेकंड के लिए बंद हो जाती है, तो डिस्प्ले झपकी लेगा, और अगर एफएलएम लाइन पर एक यूनिट के लिए 60 से अधिक माइक्रोसेकंड, तो यह विफल हो सकता है। यदि आपको लंबे समय तक इंटरप्ट को रोकने की आवश्यकता है, तो पहले डिस्प्ले को सिग्नल सिग्नल से बंद कर दें (मैं दोहराता हूं, यह एक उलटा संकेत है, मॉड्यूल एक पर चालू है)। बेशक, अगर यह हर बार दो सेकंड के लिए बंद हो जाता है, तो आपको एक आर्द्रता और तापमान संवेदक से डेटा संसाधित करने की आवश्यकता होती है, कुछ इसे पसंद करेंगे, लेकिन यह मॉड्यूल को बर्बाद करने से बेहतर है। बेहतर अभी तक, बाकी को एक अलग माइक्रोकंट्रोलर से चार्ज करें। 1-वायर प्रोटोकॉल और एड्रेस एल ई डी पर चलने वाले उपकरणों के साथ एक ही माइक्रोकंट्रोलर द्वारा सूचना का आदान-प्रदान विशेष रूप से अस्वीकार्य है। Arduino Pro माइक्रो क्लोन दो खरीदने के लिए काफी सस्ते हैं।
लिंक
लेकिन हार्डवेयर-कार्यान्वित इंटरफेस पूरी तरह से काम करेंगे: सीरियल पोर्ट, I
2 C बस, SPI मास्टर मोड में। दास में - केवल अगर स्वामी 25-35 μs तक दास के आवधिक "रोल-ऑफ" की अनुमति देता है। बेशक, यह अभी भी इस बात पर निर्भर करता है कि प्रदर्शन को जोड़ने के बाद कितने "पैर" निर्बाध रूप से बचे हैं।
32u4 पर USB ठीक काम करता है यदि आप प्रबंधन समापन बिंदु को बहुत बार (धीमी गति से बाधित दिनचर्या कोड) से पूछताछ नहीं करते हैं। सीडीसी चालक और उसके एपीआई काफी तेज थे।
फिर GitHub पर README.md फ़ाइल में इसी तरह की परियोजनाओं की सूची दोहराई जाती है, जो हैकेडाय पर परियोजना पृष्ठ पर है।
आपका ध्यान के लिए धन्यवाद!