- हार्डवेयर आवश्यक:
- OLED डिस्प्ले के बारे में जानना:
- हार्डवेयर और कनेक्शन:
- Arduino के लिए SSD1306 OLED प्रदर्शन प्रोग्रामिंग:
हम में से अधिकांश 16 × 2 डॉट मैट्रिक्स एलसीडी डिस्प्ले से परिचित होंगे जो उपयोगकर्ता को कुछ जानकारी प्रदर्शित करने के लिए अधिकांश परियोजनाओं में उपयोग की जाती है। लेकिन इन एलसीडी डिस्प्ले में बहुत सी सीमाएं हैं जो वे कर सकते हैं। इस ट्यूटोरियल में हम OLED डिस्प्ले और उन्हें Arduino का उपयोग करने के तरीके के बारे में जानने वाले हैं । बाजार में बहुत सारे प्रकार के ओएलईडी डिस्प्ले उपलब्ध हैं और उन्हें काम करने के कई तरीके हैं। इस ट्यूटोरियल में हम इसके वर्गीकरण के बारे में चर्चा करेंगे और वह भी जो आपकी परियोजना के लिए सबसे उपयुक्त होगा।
हार्डवेयर आवश्यक:
- 7pin 128 × 64 OLED डिस्प्ले मॉड्यूल (SSD1306)
- अरुडिनो यूएनओ / नैनो
- ब्रेड बोर्ड
- तारों को जोड़ना
- कंप्यूटर / लैपटॉप
OLED डिस्प्ले के बारे में जानना:
ओएलईडी शब्द " ऑर्गेनिक लाइट एमिटिंग डायोड" के लिए खड़ा है, यह उसी तकनीक का उपयोग करता है जो हमारे अधिकांश टीवी में उपयोग किया जाता है, लेकिन उनकी तुलना में कम पिक्सेल हैं। इन कूल लुक वाले डिस्प्ले मॉड्यूल को Arduino के साथ इंटरफेयर किया जाना असली मज़ा है क्योंकि यह हमारे प्रोजेक्ट्स को कूल लुक देगा। हमने यहां OLED प्रदर्शनों और इसके प्रकारों पर एक पूरा लेख शामिल किया है।
हम एक मोनोक्रोम 7-पिन SSD1306 0.96 "OLED डिस्प्ले का उपयोग कर रहे हैं । इस डिस्प्ले को चुनने का कारण यह है कि यह तीन अलग-अलग संचार प्रोटोकॉल पर काम कर सकता है जैसे कि SPI 3 वायर मोड, SPI फोर वायर मोड और IIC मोड। यह ट्यूटोरियल कवर करेगा कि एसपीआई 4-वायर मोड में मॉड्यूल का उपयोग कैसे करें क्योंकि यह संचार का सबसे तेज मोड और डिफ़ॉल्ट एक है।
पिन और इसके कार्यों को नीचे दी गई तालिका में समझाया गया है।
पिन नम्बर |
पिन नाम |
दुसरे नाम |
प्रयोग |
1 |
गाण्ड |
भूमि |
मॉड्यूल का ग्राउंड पिन |
२ |
Vdd |
Vcc, 5V |
पावर पिन (3-5V सहनीय) |
३ |
SCK |
डी 0, एससीएल, सीएलके |
घड़ी की पिन के रूप में कार्य करता है। I2C और SPI दोनों के लिए उपयोग किया जाता है |
४ |
एसडीए |
डी 1, एमओएसआई |
मॉड्यूल का डेटा पिन। IIC और SPI दोनों के लिए उपयोग किया जाता है |
५ |
रेस |
RST, RESET |
मॉड्यूल रीसेट करता है (SPI के दौरान उपयोगी) |
६ |
डीसी |
ए ० |
डेटा कमांड पिन। SPI प्रोटोकॉल के लिए उपयोग किया जाता है |
। |
सीएस |
चिप का चयन करें |
उपयोगी जब एक से अधिक मॉड्यूल SPI प्रोटोकॉल के तहत उपयोग किया जाता है |
इस ट्यूटोरियल में हम केवल 4-वायर एसपीआई मोड में मॉड्यूल संचालित करेंगे, हम बाकी को कुछ अन्य ट्यूटोरियल के लिए छोड़ देंगे।
Arduino समुदाय ने हमें पहले से ही बहुत सारे पुस्तकालय दिए हैं जो सीधे तौर पर इसे बहुत सरल बनाने के लिए उपयोग किया जा सकता है। मैंने कुछ पुस्तकालयों की कोशिश की और पाया कि Adafruit_SSD1306 लाइब्रेरी का उपयोग करना बहुत आसान था और इसमें मुट्ठी भर ग्राफ़िकल विकल्प थे इसलिए हम इस ट्यूटोरियल में इसका उपयोग करेंगे। लेकिन, अगर आपके प्रोजेक्ट में मेमोरी / स्पीड की कमी है, तो U8g लाइब्रेरी का उपयोग करने की कोशिश करें क्योंकि यह तेजी से काम करता है और कम प्रोग्राम मेमोरी पर कब्जा कर लेता है।
हार्डवेयर और कनेक्शन:
SSD1306 के लिए सर्किट आरेख Arduino के साथ इंटरफ़ेस OLED वास्तव में सरल है और नीचे दिखाया गया है
हम बस OLED मॉड्यूल और Arduino के बीच एक SPI संचार स्थापित करते हैं । चूंकि OLED 3V-5V पर चलता है और बहुत कम बिजली की खपत करता है, इसलिए इसे बाहरी बिजली की आपूर्ति की आवश्यकता नहीं होती है। आप बस कनेक्शन बनाने के लिए तारों का उपयोग कर सकते हैं या ब्रेडबोर्ड का उपयोग कर सकते हैं जैसा कि मैंने उपयोग किया है ताकि प्रयोग करना आसान हो। कनेक्शन नीचे दी गई कहानी में भी सूचीबद्ध है
एस.एन.ओ. |
OLED मॉड्यूल पर पिन का नाम |
Arduino पर पिन नाम |
1 |
गोंड, ग्राउंड |
भूमि |
२ |
वीडीडी, वीसीसी, 5 वी |
5 वी |
३ |
SCK, D0, SCL, CLK |
१० |
४ |
एसडीए, डी 1, एमओएसआई |
९ |
५ |
आरईएस, आरएसटी, आरईएसईटी |
१३ |
६ |
डीसी, ए ० |
1 1 |
। |
सीएस, चिप का चयन करें |
१२ |
नोट: आप OLED मॉड्यूल पर किसी भी बैकलाइट / चमक की कल्पना नहीं कर पाएंगे। ओएलईडी डिस्प्ले पर किसी भी बदलाव को नोटिस करने के लिए आपको इसे सही ढंग से प्रोग्राम करना होगा।
Arduino के लिए SSD1306 OLED प्रदर्शन प्रोग्रामिंग:
एक बार कनेक्शन तैयार हो जाने के बाद आप Arduino की प्रोग्रामिंग शुरू कर सकते हैं। जैसा कि पहले कहा गया था कि हम इस OLED मॉड्यूल के साथ काम करने के लिए Adafruit लाइब्रेरी और GFX लाइब्रेरी का उपयोग करेंगे। अपने OLED प्रदर्शन को चलाने के लिए परीक्षण के चरणों का पालन करें।
चरण 1: नीचे दिए गए लिंक का उपयोग करके Github से Adafruit Library और GFX लाइब्रेरी डाउनलोड करें
- प्रवेश पुस्तकालय
- जीएफएक्स ग्राफिक्स लाइब्रेरी
चरण 2: आपके पास दो ज़िप फ़ाइलें डाउनलोड होनी चाहिए। अब उन्हें अपने Arduino में जोड़कर अनुसरण करें
स्केच-> लाइब्रेरी शामिल करें -> नीचे दिखाए अनुसार जिप लाइब्रेरी जोड़ें । फिर हमारे द्वारा डाउनलोड की गई लाइब्रेरी का चयन करें। आप एक समय में केवल एक पुस्तकालय का चयन कर सकते हैं, इसलिए आपको इस चरण को फिर से दोहराना होगा।
चरण 3: फ़ाइल-> उदाहरण-> प्रवेश SSD1306 -> SSD1306_128 * 64_SPI.ino का चयन करके उदाहरण कार्यक्रम लॉन्च करें जैसा कि नीचे दी गई छवि में दिखाया गया है।
चरण 4: लाइन 64 के शीर्ष पर उदाहरण कार्यक्रम के अंदर नीचे दी गई छवि के अनुसार लाइन "#Dfine SSD1306_LCDHEIGHT 64" जोड़ें ।
चरण 5: अब प्रोग्राम को अपलोड करें और आपको नीचे दिए गए चित्र में दिखाए गए अनुसार डिफ़ॉल्ट Adafruit उदाहरण कोड के साथ OLED प्रदर्शन फायरिंग दिखाई देनी चाहिए। पूर्ण काम कर रहे वीडियो के अंत में दिया जाता है ।
यह उदाहरण कार्यक्रम आपको सभी संभावित ग्राफिक्स दिखाता है जो OLED स्क्रीन में प्रदर्शित किए जा सकते हैं। यह कोड आपके लिए बिटमैप बनाने, लाइनों / मंडलियों / आयतों को खींचने, पिक्सेल के साथ खेलने, विभिन्न फोंट और आकार आदि के साथ प्रदर्शित करने के लिए पर्याप्त होना चाहिए…
यदि आप लाइब्रेरी और इसके कार्यों को बेहतर ढंग से समझना चाहते हैं तो आप आगे पढ़ सकते हैं। कोड के प्रत्येक जोड़ को विभाजित किया गया है और टिप्पणी लाइनों की मदद से समझाया गया है। इस अनुच्छेद के अंत में पूरा कोड दिया गया है
स्क्रीन प्रदर्शित करना और साफ़ करना:
OLED स्क्रीन पर लिखना एक ब्लैक बोर्ड पर लिखने जैसा है, हमें मूल्यों को लिखना होगा और फिर इसे ओवरराइट करने से पहले इसे साफ करना होगा। प्रदर्शन को लिखने और साफ़ करने के लिए निम्न कमांड का उपयोग किया जाता है
display.display (); // डिस्प्ले को लिखने के लिए लिखें ।clearDisplay (); // प्रदर्शन को साफ़ करें
एक वर्ण चर प्रदर्शित करना:
एक चर के अंदर की सामग्री को प्रदर्शित करने के लिए निम्नलिखित कोड का उपयोग किया जा सकता है।
char i = 5; // प्रदर्शित किया जाने वाला चर ।setTextSize (1); // टेक्स्ट डिसप्ले का साइज़ सिलेक्ट करें ।setTextColor (WHITE); // मोनोक्रोम डिस्प्ले के लिए केवल सफेदी संभव है ।setCursor (0,0); // 0,0 ओएलईडी स्क्रीन डिस्प्ले के ऊपरी बाएं कोने में है। राइट (i); // प्रदर्शित होने वाले चर लिखिए
रेखा खींचना, वृत्त, आयत, त्रिकोण:
यदि आप अपने प्रदर्शन में कुछ प्रतीक जोड़ना चाहते हैं तो आप निम्न में से किसी को आकर्षित करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं
display.drawLine (display.width () - 1, 0, i, display.height () - 1, WHITE); // शून्य ड्रालाइन (x0, y0, X1, y1, रंग); display.drawRect (i, i, display. उपलब्धता () - 2 * i, display.height () - 2 * i, WHITE); // शून्य दराज (x0, y0, w, h, रंग); display.drawTriangle (display. उपलब्धता () / 2, display.height () / 2-i, display. उपलब्धता () / 2-i, display.height () / 2 + i, display. उपलब्धता () / 2+ i, display.height () / 2 + i, WHITE); // शून्य ड्राट्रायंगल (x0, y0, X1, y1, x2, y2, color); display.drawCircle (display.width () / 2, display.height () / 2, i, WHITE); // शून्य आरेख (x0, y0, r, color);
स्क्रीन पर स्ट्रिंग आरेखण:
कोड के निम्नलिखित भाग का उपयोग किसी विशेष स्थान और आकार में स्क्रीन पर किसी भी संदेश को प्रदर्शित करने के लिए किया जा सकता है
display.setTextSize (2); // टेक्स्ट डिसप्ले का आकार सेट करें। TsetColor (WHITE); // रंग सेटिंग प्रदर्शन.setCursor (10,0); // स्ट्रिंग 10,0 (x, y) डिस्प्ले पर शुरू होगी ।clearDisplay (); // स्क्रीन डिस्प्ले पर किसी भी पिछले डिस्प्ले को मिटा दें। प्रिंटलएन ("सर्किट डाइजेस्ट"); // यहां स्ट्रिंग प्रिंट करें "सर्किट डाइजेस्ट" display.display (); // पाठ को स्क्रीन पर भेजें
एक बिटमैप छवि प्रदर्शित करना:
ओएलईडी मॉड्यूल के साथ किया जा सकता है कि एक अविश्वसनीय चीज यह है कि इसका उपयोग बिटमैप को प्रदर्शित करने के लिए किया जा सकता है। बिटमैप छवि प्रदर्शित करने के लिए निम्न कोड का उपयोग किया जाता है
स्टेटिक कॉन्स्ट अनसाइनड चार्ज्ड PROGMEM लोगो16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B11000000, B00000011, B1110000, B111000011, B11100000, B11111000, B01111000, B01111000, B011111, 0011118, B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, बिटमैप, w, h, WHITE); // शून्य ड्राबैटमैप (एक्स, वाई, * बिटमैप, डब्ल्यू, एच, रंग);
जैसा कि आप देख सकते हैं, एक छवि प्रदर्शित करने के लिए बिटमैप डेटा को PROMGMEM निर्देश के रूप में प्रोग्राम मेमोरी में संग्रहीत किया जाना चाहिए। सीधे शब्दों में कहें, तो हमें OLED डिस्प्ले को निर्देश देना होगा कि प्रत्येक पिक्सेल के साथ क्या करना है, यह किसी अनुक्रम या मान को ऊपर दिखाए गए तरीके से पास करके। इस सरणी में छवि का बिटमैप डेटा होगा।
यह जटिल लग सकता है लेकिन वेब टूल की मदद से किसी इमेज को बिट मैप वैल्यू में बदलना और उन्हें उपरोक्त एरे में लोड करना बहुत आसान है ।
बस छवि को लोड करें और छवि के अपने पसंदीदा पूर्वावलोकन को प्राप्त करने के लिए सेटिंग्स समायोजित करें। फिर "जनरेट कोड" पर क्लिक करें और कोड को कॉपी करके अपने ऐरे में पेस्ट करें। कार्यक्रम अपलोड करें और आप सभी काम कर रहे हैं। मैंने एक बैटमैन लोगो प्रदर्शित करने की कोशिश की और यह इसी तरह से निकला।
अभी भी बहुत सारी चीजें हैं जो आप इन पुस्तकालयों के साथ कर सकते हैं। पूरी संभावनाओं को जानने के लिए Adafruit GFX ग्राफिक्स प्राइमेटिव पेज पर जाएं।
आशा है कि आप इसे चला रहे हैं और अपनी कुछ परियोजनाओं में OLED प्रदर्शन लागू करने के लिए तैयार हैं। यदि आपको कोई समस्या थी, तो उन्हें टिप्पणी अनुभाग में साझा करें और मैं उन्हें सुधारने के लिए अपनी पूरी कोशिश करूंगा।