विषयसूची:
- चरण 1: पुस्तकालय
- चरण 2: वेमोस लोलिन ESP32 OLED
- चरण 3: उदाहरण
- चरण 4: विधानसभा
- चरण 5: कोड
- चरण 6: कुछ अन्य दिलचस्प कार्य
वीडियो: पुराने डिस्प्ले के साथ ESP32 - प्रोग्रेस बार: 6 स्टेप्स
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:22
आज हम जिस ESP32 के बारे में बात करने जा रहे हैं, वह पहले से ही डिस्प्ले ओलेड बिल्ट-इन के साथ आता है। यह फ़ंक्शन हमारे जीवन को बहुत आसान बनाता है, क्योंकि हम प्रकट होने वाले चर के मूल्य के बारे में एक धारणा बना सकते हैं। आपको डिबग विंडो को देखने की भी आवश्यकता नहीं है। इसके अलावा, आप अन्य बातों के अलावा, अभ्यावेदन इकट्ठा कर सकते हैं और प्रदर्शन चार्ट बना सकते हैं। इन लाभों के कारण, मैं इस मॉडल को एक शानदार उत्पाद मानता हूं, और हम आज Arduino IDE का उपयोग करके इसकी प्रोग्रामिंग करेंगे।
तो, इस वीडियो में हम एक प्रोग्रेस बार प्रोग्राम करेंगे। यह याद रखना महत्वपूर्ण है कि यदि आपके ESP32 में पुराना डिस्प्ले नहीं है, तो इसे अलग से खरीदना संभव है। इसके अलावा, यदि आपने कभी ESP32 प्रोग्राम नहीं किया है, तो मेरा सुझाव है कि आप इस वीडियो को देखें: ESP32 का वीडियो परिचय, जो इस विषय से अधिक विस्तार से संबंधित है।
चरण 1: पुस्तकालय
पुराने डिस्प्ले का उपयोग करने के लिए, हमें Arduino IDE में लाइब्रेरी को कॉन्फ़िगर करने की आवश्यकता है। ऐसा करने के लिए, लिंक के माध्यम से पुस्तकालय डाउनलोड करें।
फ़ाइल को अनज़िप करें और इसे Arduino IDE के लाइब्रेरी फ़ोल्डर में पेस्ट करें।
C: /ProgramFiles(x86)/Arduino/पुस्तकालय
चरण 2: वेमोस लोलिन ESP32 OLED
Wemos Lolin इस ESP का नाम है। छवि में, काला भाग डिस्प्ले है और डिवाइस के बगल में, हम संपूर्ण पिनआउट प्रदर्शित करते हैं। जैसा कि दिखाया गया है, कई आईओ हैं जो हमें विभिन्न तत्वों को चालू और बंद करने की अनुमति देते हैं। साथ ही इस मॉडल में लेटेस्ट जनरेशन वाईफाई और ब्लूटूथ है।
चरण 3: उदाहरण
वीडियो में, आप हमारे तैयार प्रोजेक्ट को देख सकते हैं, और एक पोटेंशियोमीटर द्वारा नियंत्रित प्रगति पट्टी को प्रदर्शित करने के लिए पुराने डिस्प्ले का उपयोग कैसे करें।
चरण 4: विधानसभा
हमारी असेंबली के लिए मैंने 10k के एक पोटेंशियोमीटर का उपयोग किया, और मैंने कर्सर के GPIO25 को चालू किया। हमारे पास 3v3 और GND भी हैं, जैसा कि आप नीचे दिए गए चित्र में देख सकते हैं। यूएसबी से ही पावर आएगी।
चरण 5: कोड
सबसे पहले, हम पुस्तकालय "SSD1306.h" जोड़ते हैं। इससे हम पुराने डिस्प्ले को एक्सेस कर पाएंगे। इसके बाद, हम SSD1306 प्रकार का एक डिस्प्ले ऑब्जेक्ट बनाते हैं जो पुराने डिस्प्ले में दिखाई गई सामग्री को नियंत्रित करने के लिए जिम्मेदार होगा।
#include "SSD1306.h" // उपनाम के लिए #include "SSD1306Wire.h" //objeto controlador do display de led /* 0x3c: é um identificador único para comunicação do display pino 5 e 4 são os de comunicação (SDA, SDC) */ SSD1306 स्क्रीन (0x3c, 5, 4); // पिनो क्यू लिगामोस ओ पोटेंशियोमेट्रो #define PINO_POTENCIOMETRO 25 // यूटिलिजैडो पैरा फेजर ओ कोंटाडोर डे पोर्सेंटेजम इंट कोंटाडोर;
सेट अप
सेटअप () फ़ंक्शन में, हम अपने डिस्प्ले ऑब्जेक्ट को इनिशियलाइज़ करेंगे ताकि हम नियंत्रित कर सकें कि क्या प्रदर्शित किया जाएगा। इस ऑब्जेक्ट के माध्यम से, हम प्रदर्शित होने वाले टेक्स्ट के लिए लेखन स्रोत को भी कॉन्फ़िगर करेंगे। और, अंत में, हम मूल्य को पढ़ने के लिए पिन (विशेष रूप से, पिन जहां हमने पोटेंशियोमीटर को बदल दिया) को INPUT पर सेट किया।
शून्य सेटअप () {Serial.begin(११५२००); सीरियल.प्रिंट्लन (); सीरियल.प्रिंट्लन (); // इनिशियलाइज़ा ओ ओब्जेक्टो क्यू कंट्रोलारा ओ क्यू सेरा एक्सिबिडो और तेला स्क्रीन.इनिट (); //gira o display 180º (deixa de ponta kabeça) // display.flipScreenVertically(); // configura a fonte de escrita "ArialMT_Plain_10" Screen.setFont(ArialMT_Plain_10); // configura o pino para fazer a leitura do potenciômetro. पिनमोड (PINO_POTENCIOMETRO, INPUT); }
कुंडली
लूप () फ़ंक्शन में, हम वर्तमान पोटेंशियोमीटर मान पढ़ेंगे। हम देख सकते हैं कि हम मान को पढ़ने के तुरंत बाद "मानचित्र" फ़ंक्शन का उपयोग कर रहे हैं, क्योंकि पढ़ा गया मान प्रगति पट्टी में डालने के लिए बहुत अधिक है, इसलिए हम मान को 0 से 100 की सीमा के भीतर मैप करेंगे।
शून्य लूप () {// लिटुरा डो वेलोर पोटेंसीओमेट्रो इंट वेलोर = एनालॉग रीड (PINO_POTENCIOMETRO); // सीरियल.प्रिंट्लन (वीरता); // मैपेंडो ओ वेलोर डो पोटेंशियोमेट्रो पैरा ओ वेलोर दा बर्रा डे प्रोग्रेसो // पोटेंशियोमेट्रो फैज़ ए लेइटुरा डू वेलोर नो इंटरवेलो डी 0 ए 4095 // ए बारा डे प्रोग्रेसो एस्पेरा उम वेलोर एंट्रे 0 ई 100 कोंटाडोर = नक्शा (वीरता, 0, 4095), 0, 100); // लिम्पा टूडू ओ डिस्प्ले, अपागा या कॉन्टेडो दा तेला स्क्रीन। क्लियर (); // ++ काउंटर; // काउंटर> 100? काउंटर = 0: काउंटर = काउंटर; // desenha एक प्रगति पट्टी drawProgressBar (); //exibe na tela o que foi configurado até então. स्क्रीन डिस्प्ले(); देरी(10); }
फ़ंक्शन "ड्रॉप्रोग्रेस ()" में, हम पोटेंशियोमीटर से पढ़े गए मान का उपयोग करेंगे जो कि प्रोग्रेस बार में सेट करने के लिए वेरिएबल "percProgress" में सहेजा गया है। हम वर्तमान प्रतिशत को दर्शाते हुए प्रगति पट्टी के ठीक ऊपर एक टेक्स्ट भी रखेंगे।
// função para desenhar a प्रगति पट्टी कोई प्रदर्शन नहीं drawProgressBar () {Serial.print(">>"); Serial.println (contador); // desenha एक प्रगति पट्टी /* * drawProgressBar(x, y, चौड़ाई, ऊंचाई, मान); पैरामेट्रोस (पी): पी१: एक्स कोर्डेनाडा एक्स नो प्लेनो कार्टेसियानो पी२: वाई कोर्डेनाडा वाई नो प्लेनो कार्टेसियानो पी३: चौड़ाई कॉम्प्रिमेंटो दा बारा डे प्रोग्रेसो पी४: हाइट अल्तुरा दा बारा डे प्रोग्रेसो पी५: वैल्यू वेलोर क्यू ए बारा डे प्रोग्रेसो देवे अस्सुमिर */ Screen.drawProgressBar(10, 32, 100, 10, contador); // configura o alinhamento do texto que será escrito //ness caso alinharemos o texto ao centro screen.setTextAlignment(TEXT_ALIGN_CENTER); // एस्क्रेव ओ टेक्स्टो डे पोर्सेंटेजम / * * ड्रॉस्ट्रिंग (एक्स, वाई, टेक्स्ट); पैरामेट्रोस (पी): पी१: एक्स कोर्डेनाडा एक्स नो प्लेनो कार्टेसियानो पी२: वाई कोर्डेनाडा वाई नो प्लानो कार्टेसियानो पी३: स्ट्रिंग टेक्स्टो क्यू सेरा एक्सिबिडो */ स्क्रीन.ड्रास्ट्रिंग (६४, १५, स्ट्रिंग (कॉन्टाडोर) + "%"); // से ओ कॉन्टाडोर एस्टा एम ज़ीरो, एक स्ट्रिंग "वैलोर मिनिमो" को एस्क्रेव करें अगर (contador == 0) { Screen.drawString (64, 45, "वैलोर मिनिमो");] } }
चरण 6: कुछ अन्य दिलचस्प कार्य
प्रदर्शन
// डिस्प्ले को उल्टा रखता है
शून्य फ्लिपस्क्रीनखड़ी ();
चित्रकारी
// स्क्रीन से सिंगल पिक्सेल खींचता है
शून्य सेट पिक्सेल (int16_t x, int16_t y);
// एक रेखा खींचो
शून्य ड्रॉलाइन (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// एक आयत बनाएं
शून्य ड्रॉरेक्ट (int16_t x, int16_t y, int16_t चौड़ाई, int16_t ऊंचाई);
// एक चक्र बनाएं
शून्य ड्रॉसर्कल (int16_t x, int16_t y, int16_t त्रिज्या);
// एक सर्कल में भरें
शून्य भरण चक्र (int16_t x, int16_t y, int16_t त्रिज्या);
// एक क्षैतिज रेखा खींचें
शून्य आरेखण क्षैतिज रेखा (int16_t x, int16_t y, int16_t लंबाई);
// एक लंबवत रेखा खींचें
शून्य ड्रा वर्टिकललाइन (int16_t x, int16_t y, int16_t लंबाई);
मूलपाठ
// टेक्स्ट अलाइनमेंट को लिखे जाने के लिए सेट करता है
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
शून्य सेट टेक्स्ट एलाइनमेंट (OLEDDISPLAY_TEXT_ALIGNMENT टेक्स्ट एलाइनमेंट);
सिफारिश की:
पुराने संचार रिसीवर में एक डिजिटल डिस्प्ले जोड़ें: 6 कदम (चित्रों के साथ)
पुराने संचार रिसीवर में एक डिजिटल डिस्प्ले जोड़ें: पुराने संचार गियर का उपयोग करने की कमियों में से एक यह तथ्य है कि एनालॉग डायल बहुत सटीक नहीं है। आप हमेशा प्राप्त होने वाली आवृत्ति पर अनुमान लगा रहे हैं। AM या FM बैंड में, यह आम तौर पर कोई समस्या नहीं है क्योंकि आप आमतौर पर
LM3915 लॉगरिदमिक डॉट/बार डिस्प्ले ड्राइवर IC का उपयोग करना: 7 कदम
LM3915 लॉगरिदमिक डॉट/बार डिस्प्ले ड्राइवर IC का उपयोग करना: LM3915 कम से कम उपद्रव के साथ दस एल ई डी के एक या अधिक समूहों का उपयोग करके लॉगरिदमिक वोल्टेज स्तर प्रदर्शित करने का एक आसान तरीका प्रदान करता है। यदि आप VU मीटर बनाना चाहते हैं, तो आपको LM3916 का उपयोग करना चाहिए, जिसे हम इस tr की अंतिम किस्त में कवर करेंगे।
एलेक्सा वॉयस रिकग्निशन के साथ पुराने लैपटॉप से फ्लोटिंग स्मार्ट मैजिक मिरर: 6 स्टेप्स (चित्रों के साथ)
एलेक्सा वॉयस रिकॉग्निशन के साथ पुराने लैपटॉप से फ्लोटिंग स्मार्ट मैजिक मिरर: मेरे 'इलेक्ट्रॉनिक्स इन ए नटशेल' कोर्स में यहां दाखिला लें: https://www.udemy.com/electronics-in-a-nutshell/?couponCode=TINKERSPARK इसके अलावा मेरा चेक आउट करें अधिक परियोजनाओं और इलेक्ट्रॉनिक्स ट्यूटोरियल के लिए यहां यूट्यूब चैनल: https://www.youtube.com/channel/UCelOO
Arduino के साथ I2C पुराने डिस्प्ले को कैसे नियंत्रित करें: 9 कदम (चित्रों के साथ)
Arduino के साथ I2C पुराने डिस्प्ले को कैसे नियंत्रित करें: यह Arduino के साथ I2C पुराने डिस्प्ले को नियंत्रित करने का एक बहुत ही सरल ट्यूटोरियल है यदि आपको यह निर्देश पसंद है तो कृपया मेरे चैनल को सब्सक्राइब करें https://www.youtube.com/ZenoModiff
LM3914 डॉट/बार डिस्प्ले ड्राइवर IC का उपयोग करना: 5 कदम
LM3914 डॉट/बार डिस्प्ले ड्राइवर IC का उपयोग करना: हालांकि LM3914 20वीं सदी के उत्तरार्ध का एक लोकप्रिय उत्पाद था, यह जीवित है और अभी भी काफी लोकप्रिय है। यह कम से कम उपद्रव के साथ दस एल ई डी के एक या अधिक समूहों का उपयोग करके एक रैखिक वोल्टेज स्तर प्रदर्शित करने का एक आसान तरीका प्रदान करता है। आप एलएम 3914 को ऑर्डर कर सकते हैं