সুচিপত্র:
- ধাপ 1: আমরা আজ যা শিখতে যাচ্ছি
- পদক্ষেপ 2: হার্ডওয়্যারের প্রয়োজনীয়তা
- ধাপ 3: একটি OLED প্রদর্শন কি?
- ধাপ 4:
- ধাপ 5: কাছাকাছি চেহারা
- ধাপ 6: লাইব্রেরি
- ধাপ 7:
- ধাপ 8: 128 X 64/32 OLEDs তারের
- ধাপ 9: কোড
- ধাপ 10: পাঠ্য কাস্টমাইজ করা এবং ছবি যুক্ত করা
- ধাপ 11: সংযোগ 2 প্রদর্শন
- ধাপ 12: 2 টির বেশি ডিসপ্লে সংযুক্ত করা
- ধাপ 13: সুবিধা এবং অসুবিধা
- ধাপ 14: সাধারণ ত্রুটি
- ধাপ 15: লিঙ্ক
ভিডিও: OLED I2C ডিসপ্লে Arduino/NodeMCU টিউটোরিয়াল: 15 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:01
যখন আপনি শেখা শুরু করেন তখন প্রথম প্রোগ্রামটি আপনি লেখেন
নতুন প্রোগ্রামিং ভাষা হল: "হ্যালো ওয়ার্ল্ড!"।
প্রোগ্রামটি স্ক্রিনে "হ্যালো ওয়ার্ল্ড" পাঠ্য ছাপানো ছাড়া আর কিছুই করে না।
সুতরাং, কিভাবে আমরা আমাদের Arduino "হ্যালো ওয়ার্ল্ড!" প্রদর্শন করতে পারি?
এই ভিডিওতে, আমি আপনাকে দেখাবো কিভাবে ছোট 0.91 (128x32) এবং 0.96 (128x64) I2C OLED ডিসপ্লে দিয়ে শুরু করা যায়।
ওয়েবে 100 টি টিউটোরিয়াল রয়েছে যা একই জিনিসকে বিভিন্ন উপায়ে ব্যাখ্যা করে, কিন্তু আমি এমন একটি খুঁজে পাইনি যা আমাকে ওএলইডি ডিসপ্লে এবং বিভিন্ন পরিস্থিতিতে এটি কীভাবে ব্যবহার করতে হয় সে সম্পর্কে সব বলে। এটা সব কাজ করতে আমার কিছু সময় লেগেছে। সুতরাং, আমি ভেবেছিলাম যে আমি যা শিখেছি তার একটি টিউটোরিয়াল তৈরি করা উচিত এবং OLED ডিসপ্লেগুলি আমাদের প্রকল্পগুলিতে ব্যবহার করা যেতে পারে এমন সমস্ত বৈশিষ্ট্য এবং উপায়গুলিকে একত্রিত করা উচিত।
ধাপ 1: আমরা আজ যা শিখতে যাচ্ছি
এই ভিডিওতে আমরা কথা বলব:
- একটি OLED ডিসপ্লে কি?
- তারপর আমরা 0.91 (128x32) এবং 0.96 (128x64) I2C OLED ডিসপ্লেগুলোকে ঘনিষ্ঠভাবে দেখব
- পরবর্তী আমরা আপনার Arduino IDE এ Adafruit Library ইনস্টল করার বিষয়ে কথা বলব
- তারপর আমরা একটি OLED ডিসপ্লেতে NodeMCU এবং Arduino কে সংযুক্ত করব
- এরপরে আমরা কোডটি দেখে নেব এবং এতে কিছু গ্রাফিক্স এবং পাঠ্য প্রদর্শন করব
- আমরা কাস্টম ফন্ট প্রয়োগ এবং ছবি প্রদর্শন সম্পর্কে কথা বলব
- তারপর আমরা I2C মাল্টিপ্লেক্সার ব্যবহার করে একাধিক OLED কে একটি মাইক্রো-কন্ট্রোলারের সাথে সংযুক্ত করব
- পরিশেষে, আমরা OLED ডিসপ্লে ব্যবহার করার সময় কিছু সাধারণ ত্রুটি সম্পর্কে কথা বলব
পদক্ষেপ 2: হার্ডওয়্যারের প্রয়োজনীয়তা
এই টিউটোরিয়ালের জন্য আমাদের প্রয়োজন:
- একটি ব্রেডবোর্ড
- একটি 0.91 "(128x32) এবং 0.96" (128x64) I2C OLED প্রদর্শন
- আরডুইনো ইউএনও/ন্যানো (যা কিছু সহজ)
- নোডএমসিইউ
- TCA9548A I2C মাল্টিপ্লেক্সার
- কয়েকটি সংযোগকারী তারগুলি
- এবং কোড আপলোড করার জন্য একটি ইউএসবি কেবল
ধাপ 3: একটি OLED প্রদর্শন কি?
OLED বা জৈব আলো-নির্গত ডায়োড একটি হালকা-নির্গমনকারী
ডায়োড (LED) যার মধ্যে এমিসিভ ইলেক্ট্রোলুমিনসেন্ট লেয়ার হল জৈব যৌগের একটি ফিল্ম (লক্ষ লক্ষ ছোট LED লাইট) যা বৈদ্যুতিক স্রোতের প্রতিক্রিয়ায় আলো নির্গত করে।
টেলিভিশন স্ক্রিন, কম্পিউটার মনিটর, পোর্টেবল সিস্টেম যেমন মোবাইল ফোন, হাতে ধরা গেম কনসোল এবং পিডিএর মতো ডিভাইসে ডিজিটাল ডিসপ্লে তৈরি করতে ওএলইডি ব্যবহার করা হয়। একটি OLED ডিসপ্লে ব্যাকলাইট ছাড়াই কাজ করে কারণ এটি দৃশ্যমান আলো নির্গত করে।
ধাপ 4:
সেখানে অনেক ধরনের OLED ডিসপ্লে পাওয়া যায়
তাদের উপর ভিত্তি করে বাজার
- মাপ
- রঙ
- ব্র্যান্ড
- প্রটোকল
- SPI (সিরিয়াল পেরিফেরাল ইন্টারফেস) বা I2C
-প্যাসিভ-ম্যাট্রিক্স (PMOLED) বা সক্রিয়-ম্যাট্রিক্স (AMOLED) নিয়ন্ত্রণ প্রকল্প
এই টিউটোরিয়ালে, আমি সংযোগ স্থাপন সম্পর্কে কথা বলতে যাচ্ছি
নীল রঙ 0.91 (128x32 OLED) এবং 0.96 (128x64 OLED) I2C OLDE একটি Arduino NANO এবং NodeMCU প্রদর্শন করে। I2C বাস প্রযুক্তি MCU- এর মাত্র 2 টি পিন ব্যবহার করে তাই আমাদের অন্যান্য সেন্সরের জন্য হিপস পাওয়া যায়।
ধাপ 5: কাছাকাছি চেহারা
এই দুটি ডিসপ্লেতে আরও কাছাকাছি আসুন।
এই ডিসপ্লের পিছনে এসএমডি ক্যাপাসিটার এবং সোল্ডার অন-বোর্ডের স্তুপ রয়েছে; কিন্তু, যেহেতু এটি একটি I2C ডিভাইস আমরা কেবল এই 2 টি পিনের (এসসিএল এবং এসডিএ) যত্ন করি
ডিসপ্লেটি শুধুমাত্র চারটি তারের ব্যবহার করে Arduino- এর সাথে সংযোগ স্থাপন করে - দুটি পাওয়ারের জন্য (VCC এবং GND) এবং দুটি ডেটার জন্য (সিরিয়াল ক্লক এসসিএল এবং
সিরিয়াল ডেটা এসডিএ), ওয়্যারিংগুলি খুব সহজ করে তোলে। ডাটা কানেকশন হল I2C (I²C, IIC বা Inter-Integrated Circuit) এবং এই ইন্টারফেসকে TWI (Two Wire Interface) ও বলা হয়।
- অন-বোর্ড পিনগুলি বিভিন্ন ক্রমে হতে পারে, তাই আপনার প্রকল্পের সাথে যুক্ত হওয়ার আগে সর্বদা ট্রিপল চেক করুন।
- অপারেশন ভোল্টেজ 3v থেকে 5v এর মধ্যে কিন্তু, নির্মাতার ডেটশীট থেকে নির্দেশিকা ব্যবহার করা ভাল।
- কখনও কখনও আমাদের প্রকল্পে 2 টি ডিসপ্লে ব্যবহার করতে হয়। সুতরাং, আমরা কিভাবে এটি অর্জন করতে পারি?
আপনার ডিসপ্লেতে একটি কনফিগারযোগ্য ঠিকানা থাকা কৌশল। এই ইউনিটের 0x78 এবং 0x7A এর মধ্যে কনফিগারযোগ্য ঠিকানা আছে। শুধু একদিক থেকে 0Ohm প্রতিরোধককে বিক্রয় না করে এবং অন্যদিকে এটিকে উঁচু করে বা কেবল একটি বিশ্বব্যাপী সোল্ডার লাগিয়ে আমরা ঠিকানা পরিবর্তন করতে পারি। আমরা এই টিউটোরিয়ালের পরবর্তী বিভাগে একটি Arduino- এ একাধিক ডিসপ্লে সংযুক্ত করার সময় আমরা এটি সম্পর্কে গভীরভাবে কথা বলব।
ছবিতে এই ডিসপ্লেগুলো দেখতে অনেক বড়। কিন্তু, কার্যত বলতে গেলে এরা ক্ষুদ্র। এগুলি 128 x 32/64 পৃথক OLED পিক্সেল দিয়ে তৈরি এবং এর জন্য কোনও ব্যাক-লাইটের প্রয়োজন নেই। শুধু এই দিকে একবার তাকান এবং দেখুন এটি কত ছোট। যদিও তারা ছোট তারা কোন ইলেকট্রনিক প্রকল্পে খুব দরকারী হতে পারে।
ধাপ 6: লাইব্রেরি
এগুলি নিয়ন্ত্রণ করার জন্য বেশ কয়েকটি গ্রন্থাগার রয়েছে
প্রদর্শন করে। অতীতে আমি "u8glib লাইব্রেরি" ব্যবহার করেছি কিন্তু আমি অ্যাডাফ্রুট লাইব্রেরিকে আমাদের প্রকল্পে বুঝতে এবং ব্যবহার করতে খুব সহজ মনে করি। সুতরাং, আমি এই টিউটোরিয়ালে AdaFruit লাইব্রেরি ব্যবহার করতে যাচ্ছি।
OLED ডিসপ্লে নিয়ন্ত্রণ করতে আপনার "adafruit_GFX.h" লাইব্রেরি এবং "adafruit_SSD1306.h" লাইব্রেরির প্রয়োজন হবে।
আপনার Arduino IDE তে লাইব্রেরি ডাউনলোড এবং ইনস্টল করার দুটি উপায় রয়েছে।
পদ্ধতি 1
"লাইব্রেরি ম্যানেজার" এ যান এবং "adafruit_SSD1306" এবং "adafruit_gfx" সার্চ করুন
সর্বশেষ সংস্করণটি নির্বাচন করুন এবং ইনস্টল বোতামটি টিপুন।
একবার ইনস্টল হয়ে গেলে আপনি আপনার প্রোগ্রামে এই লাইব্রেরিগুলি ব্যবহার করতে পারেন।
পদ্ধতি 2
এই দুটি লাইব্রেরি github থেকে ডাউনলোড করা যেতে পারে (আপনার উভয় প্রয়োজন):
আমি নীচের বর্ণনায় লিঙ্কগুলি প্রদান করব।
ডিসপ্লে লাইব্রেরি:
জিএফএক্স লাইব্রেরি:
একবার ডাউনলোড হয়ে গেলে, ডাউনলোড করা জিপ করা ফাইল থেকে Adafruit_SSD1306- মাস্টার ফোল্ডারটি Arduino লাইব্রেরি ফোল্ডারে অনুলিপি করুন। এই ফোল্ডারটি সাধারণত উইন্ডোজ সিস্টেমে ডকুমেন্টস> আরডুইনো> লাইব্রেরিতে পাওয়া যায়। লিনাক্সে এটি সাধারণত হোম ফোল্ডার> আরডুইনো> লাইব্রেরিতে পাওয়া যায়। অবশেষে Arduino লাইব্রেরি ফোল্ডারে, Adafruit_SSD1306- মাস্টার ফোল্ডারের নাম পরিবর্তন করে Adafruit_SSD1306 করুন। এমনকি যদি আপনি পুনnameনামকরণ না করেন তবে এটি ঠিক।
ধাপ 7:
এখন আসুন "Adafruit_SSD1306.h"
ফাইল
এই লাইব্রেরিতে আমাদের দুটি জিনিস জানতে হবে:
1. যদি আপনি ছোট ডিসপ্লে ব্যবহার করতে চান তাহলে ডিফল্ট 128_32 ব্যবহার করুন অন্যথায় বড় ডিসপ্লের জন্য 128_32 মন্তব্য করুন এবং 128_64 অস্বস্তিকর করুন
2. যদি আপনি বোর্ডে 0x7A ঠিকানাটি বিক্রি করে থাকেন (যা আমরা পরে আলোচনা করব) তাহলে বড় ডিসপ্লেগুলির জন্য 7 বিট 0x3D ঠিকানা ব্যবহার করুন, অন্যথায় ডিফল্ট 0x3C ঠিকানা ব্যবহার করুন। ছোট প্রদর্শনের জন্য ঠিকানা হল 0x3C।
ধাপ 8: 128 X 64/32 OLEDs তারের
NodeMCU ডিসপ্লেতে সংযুক্ত করে শুরু করা যাক।
লক্ষ্য করার প্রথম এবং সবচেয়ে গুরুত্বপূর্ণ বিষয় হল যে কিছু ডিসপ্লেতে GND এবং VCC পাওয়ার পিনের চারপাশে অদলবদল হতে পারে। আপনার ডিসপ্লেটি চেক করুন যাতে এটি ছবির মতই হয়। যদি পিনগুলি অদলবদল করা হয়, তবে Arduino বা NodeMCU- এ সংযোগগুলি পরিবর্তন করতে ভুলবেন না।
- NodeMCU OLED তারের
OLED VCC - NodeMCU 3.3V
OLED GND - NodeMCU GND
OLED SCL - NodeMCU D1
OLED SDA - NodeMCU D2
- Arduino Uno OLED তারের
OLED VCC - Arduino 5V
OLED GND - Arduino GND
OLED SCL - Arduino Uno A5
OLED SDA - Arduino Uno A4
- Arduino MEGA 2560 OLED Wiring
OLED VCC - Arduino 5V
OLED GND - Arduino GND
OLED SCL - Arduino MEGA 2560 pin 21
OLED SDA - Arduino MEGA 2560 pin 20
ধাপ 9: কোড
অ্যাডাফ্রুট লাইব্রেরি উভয়ের জন্য সত্যিই ভাল উদাহরণ নিয়ে আসে
128x32 এবং 128x64 ডিসপ্লে।
লাইব্রেরীটি ফাইল> উদাহরণ> অ্যাডাফ্রুট SSD1306> এর অধীনে অবস্থিত এবং তারপরে Arduino IDE তে ডিসপ্লে টাইপ।
আমরা 128x32 I2C উদাহরণ ব্যবহার করতে যাচ্ছি এবং এটি 128x64 এবং 128x32 ডিসপ্লে মুষ্টি দিয়ে কাজ করার জন্য এটিকে একটি Arduino এবং তারপর একটি NodeMCU বোর্ডে সংযুক্ত করে পরিবর্তন করব।
অ্যাডাফ্রুট লাইব্রেরি উভয়ই অন্তর্ভুক্ত করে কোডটি শুরু হয়। এই টিউটোরিয়ালে আমি কেবল কোডের সেই অংশগুলির উপর জোর দিতে যাচ্ছি যা আমাদের জন্য উভয় বোর্ড এবং ডিসপ্লে লোড করার জন্য প্রয়োজনীয়। আপনি যদি কোডটি সম্পর্কে আরও জানতে চান তবে দয়া করে আমার ব্লগে বা নীচের মন্তব্য বিভাগে একটি মন্তব্য করুন এবং আমি আপনার কাছে ফিরে আসার চেষ্টা করি।
- প্রথমে আমরা একটি 128x32 ডিসপ্লের সাথে সংযুক্ত একটি Arduino Nano এ কোডটি লোড করতে যাচ্ছি।
আমরা কোন পরিবর্তন ছাড়াই কোড ব্যবহার করতে পারি।
128x32 0x3C ঠিকানা ব্যবহার করে তাই এই বিটটি এখানে সব ভাল দেখায়, হেডার লাইব্রেরি দুবার চেক করতে দেয়, হ্যাঁ এটি 0x3C ঠিকানা ব্যবহার করে এবং ডিসপ্লের ধরন 128x32।
- এখন 128x64 ডিসপ্লে কানেক্ট করা যাক। যেহেতু আমরা জানি এটি ডিফল্টভাবে 0x3C ঠিকানা ব্যবহার করে তাই আমাদের কোড বা লাইব্রেরিতে ঠিকানা আপডেট করার দরকার নেই।
আমাদের শুধু প্রয়োজন আমাদের 128_32 মন্তব্য করতে হবে এবং হেডার লাইব্রেরিতে 128_64 কে অস্বস্তিকর করতে হবে এবং আমাদের কোডের LCDHEIGHT 64 তে পরিবর্তন করতে হবে।
- এখন একটি NodeMCU- এ একই কোড চালানোর জন্য আমাদের কোডে আরও একটি লাইন পরিবর্তন করতে হবে।
"#Define OLED_RESET 4"> "#Define OLED_RESET LED_BUILTIN" বাকি কোড Arduino এর মতই
যে কোন কিছু প্রদর্শন করার জন্য আমাদের প্রথমে আগের স্ক্রিন ব্যবহার করে পরিষ্কার করতে হবে
display.clearDisplay (); // বাফার সাফ করুন
তারপর বস্তুটি আঁকুন
টেস্টড্রলাইন (); // একটি লাইন আঁক
হার্ডওয়্যারে দেখান
display.display (); // ডিসপ্লে হার্ডওয়্যারে তাদের দৃশ্যমান করুন!
পরবর্তী আইটেম প্রদর্শনের আগে কিছু সময় অপেক্ষা করুন।
বিলম্ব (2000); // 2 সেকেন্ড অপেক্ষা করুন
এই উদাহরণে আমরা টেক্সট, লাইন, সার্কেল, স্ক্রোলিং টেক্সট, ত্রিভুজ এবং আরও অনেক কিছু প্রদর্শন করছি। এগিয়ে যান এবং আপনার কল্পনা ব্যবহার করুন এবং এই ক্ষুদ্র প্রদর্শনগুলিতে আপনি যা চান তা প্রদর্শন করুন।
ধাপ 10: পাঠ্য কাস্টমাইজ করা এবং ছবি যুক্ত করা
কখনও কখনও আপনার কোড কাস্টম ফন্ট প্রদর্শন করতে হবে এবং
ছবি আপনি যদি বিট ম্যাপিংয়ে খুব ভালো হন তাহলে কাস্টম ফন্ট এবং ছবি তৈরির জন্য ডিসপ্লের ছোট এলইডি চালু বা বন্ধ করে আপনাকে একটি বাইট অ্যারে তৈরি করতে হবে।
যাইহোক, আমি এই ম্যাপিং করতে খুব ভাল নই এবং বিট ম্যাপ টেবিল তৈরিতে ঘন্টা ব্যয় করতে চাই না।
তাই আমার অপশন কি? আমি সাধারণত কাস্টম ফন্ট এবং ছবি তৈরি করতে দুটি ওয়েবসাইট ব্যবহার করি। লিঙ্কগুলি নীচের বর্ণনায় দেওয়া হয়েছে।
কাস্টম ফন্ট
ফন্ট রূপান্তরকারী ওয়েবসাইটে যান, ফন্ট পরিবার, স্টাইল, সাইজ, লাইব্রেরি সংস্করণটি "অ্যাডাফ্রুট জিএফএক্স ফন্ট" হিসাবে নির্বাচন করুন এবং তারপরে "তৈরি করুন" বোতামটি টিপুন। এই পৃষ্ঠার ডান দিকে আপনি দেখতে পাবেন যে আপনার ফন্টটি আসল ডিসপ্লেতে কেমন দেখাচ্ছে।
আপনার নির্বাচনের উপর ভিত্তি করে ওয়েবপেজ ফন্ট হেডার ফাইল তৈরি করে। আপনার কোড যেখানে আছে সেই ফোল্ডারে "modified_font.h" নামে একটি ফাইল তৈরি করুন এবং জেনারেট কোডটি কপি করে সেভ করুন। তারপরে কাস্টম ফন্ট ব্যবহার করতে আপনাকে কেবল আপনার কোডে হেডার ফাইল অন্তর্ভুক্ত করতে হবে।
#অন্তর্ভুক্ত "modified_font.h"
তারপরে, কাস্টম ফন্ট প্রয়োগ করার জন্য পাঠ্য প্রদর্শনের আগে আপনাকে কেবল ফন্ট সেট করতে হবে।
display.setFont (& Your_Fonts_Name);
আপনি আপনার প্রকল্পে সদ্য যোগ করা হেডার ফাইল থেকে ফন্টের নাম পেতে পারেন। এটা, সহজ।
কাস্টম ফন্ট ব্যবহার করার সময় মেমরি সর্বদা একটি উদ্বেগের বিষয়, তাই সর্বদা বাইটগুলি বিবেচনা করুন যা মেমরি দ্বারা গ্রাস করা হবে। শুধু মনে রাখবেন Arduino UNO এর মেমরি মাত্র 32K।
কাস্টম ছবি
আপনার স্ক্রিনে একটি বিটম্যাপ ইমেজ প্রদর্শনের জন্য আপনাকে প্রথমে একটি 128 x 64/32 আকারের ছবি তৈরি করতে হবে।
আমি একটি 128 x 64 বিটম্যাপ ইমেজ তৈরি করতে ভাল পুরানো "এমএস পেইন্ট" ব্যবহার করছি যা আমি এই ইমেজ কনভার্টার ওয়েবসাইটে আপলোড করব। ওয়েবসাইট ইমেজগুলিকে বাইট-স্ট্রিং-এ রূপান্তরিত করে, যা Arduino এবং OLED ডিসপ্লের সাথে ব্যবহার করা যায়।
ওয়েবসাইটে ছবিটি আপলোড করে শুরু করুন। তারপরে "ইনভার্ট ইমেজ কালারস" চেক-বক্সে একটি চেক রাখুন এবং "আউটপুট কোড ফরম্যাট" কে "Arduino কোড" -এ পরিবর্তন করুন এবং তারপর ওরিয়েন্টেশন সিলেক্ট করুন এবং বাইট অ্যারে জেনারেট করতে "জেনারেট কোড" বোতাম টিপুন। "প্রিভিউ" বিভাগটি আপনাকে দেখায় যে আপনার চিত্রটি প্রকৃত প্রদর্শনে কেমন হবে।
আমি এই টিউটোরিয়াল সহ কোডটি অন্তর্ভুক্ত করেছি যা আপনি আপনার ছবি প্রদর্শন করতে ব্যবহার করতে পারেন। আপনি শুধু আমার কোডে অ্যারেটি প্রতিস্থাপন করতে হবে যা আপনি তৈরি করেছেন এবং তারপর এটি আপনার Arduino এ লোড করুন।
ধাপ 11: সংযোগ 2 প্রদর্শন
আপনার প্রকল্পে দুটি 128 x 64 ডিসপ্লে সংযুক্ত করা সহজ।
আপনাকে কেবল 0x78 ঠিকানা থেকে 0Ohm রোধকারীকে বিক্রয় করতে হবে এবং 0x7A এ রাখতে হবে এবং তারপরে ডিফল্ট 0x3C এর পরিবর্তে আপনার কোডে 0x3D ঠিকানা ব্যবহার করতে হবে।
আপনি নিশ্চয়ই ভাবছেন কেন আমরা 0x3C এবং 0x3D ঠিকানা ব্যবহার করছি এবং প্রকৃত 0x78 এবং 0x7A নয়। Arduino 7-বিট ঠিকানা গ্রহণ করে 8-বিট হার্ডওয়্যার ঠিকানা নয়। সুতরাং, আমাদের প্রথমে 8-বিট ঠিকানাটিকে বাইনারিতে রূপান্তর করতে হবে, এবং তারপর 7 বিট পেতে সর্বনিম্ন উল্লেখযোগ্য বিট কেটে ফেলতে হবে। তারপর 7x বিটকে HEX এ রূপান্তর করুন 0x3C বা 0x3D ঠিকানা যা আপনি আপনার কোডে প্রবেশ করেন।
প্রথমে, একটি অনন্য নাম দিয়ে প্রদর্শন শুরু করুন:
Adafruit_SSD1306 display1 (OLED_REST);
Adafruit_SSD1306 display2 (OLED_REST);
তারপরে আপনার কোডে ডিসপ্লে 1 এবং ডিসপ্লে 2 ব্যবহার করুন যাতে ডিভাইসের ঠিকানাগুলির সাথে শুরু বিবৃতিগুলি কল করুন:
display1.begin (SSD1306_SWITCHCAPVCC, 0x3C); // প্রদর্শন 1 অপ ঠিকানা 0x3C
display2.begin (SSD1306_SWITCHCAPVCC, 0x3D); // প্রদর্শন 2 অপ ঠিকানা 0x3D
এটাই, আপনি এখন এগিয়ে যেতে পারেন এবং আপনার বাকি কোডে ডিসপ্লে 1 বা ডিসপ্লে 2 ব্যবহার করে আপনি যা করতে চান তা করতে পারেন। আমি এই টিউটোরিয়াল দিয়ে একটি উদাহরণ প্রদান করেছি।
ওয়্যারিং হুবহু একই রকম যা আমরা আগে করেছি, মোটামুটি আপনাকে শুধু Arduino বা NodeMCU- এর একই I2C পিনে আরেকটি ডিসপ্লে যোগ করতে হবে। ঠিকানার উপর ভিত্তি করে, MCU তারপর I2C ডেটা লাইনে ডেটা পাঠায়।
ধাপ 12: 2 টির বেশি ডিসপ্লে সংযুক্ত করা
এখন, যদি আপনি 2 টিরও বেশি ডিসপ্লে হুক আপ করতে চান?
আরডুইনোতে সীমিত সংখ্যক পিন রয়েছে এবং সেইজন্য আপনি এটির সাথে একটি নির্দিষ্ট পরিমাণ shাল সংযুক্ত করতে পারবেন না। তাছাড়া, এতে I2C বাসের একটি মাত্র জোড়া আছে।
সুতরাং, কিভাবে আমরা একটি Arduino এর সাথে 2 I2C এর বেশি প্রদর্শন সংযুক্ত করতে পারি? কৌশলটি হল একটি TCA9548 মাল্টিপ্লেক্সার ব্যবহার করা।
TCA9548 প্রতিটি সেন্সর স্লেভ সাব-বাসে একটি অনন্য চ্যানেল বরাদ্দ করে একটি একই মাইক্রো-কন্ট্রোলারকে '64 সেন্সর 'পর্যন্ত একই বা ভিন্ন I2C ঠিকানার সাথে যোগাযোগ করতে দেয়।
যখন আমরা একাধিক ডিভাইসে 2 টি তারের উপর ডেটা পাঠানোর কথা বলি তখন আমাদের সেগুলি সমাধান করার একটি উপায় প্রয়োজন। পোস্টম্যান একক রাস্তায় এসে মেইলের প্যাকেটগুলি বিভিন্ন বাড়িতে ফেলে দেয় কারণ তাদের আলাদা আলাদা ঠিকানা লেখা আছে।
মাল্টিপ্লেক্সার মাইক্রো-কন্ট্রোলারের 3V3, GND, SDA এবং SCL লাইনের সাথে সংযোগ স্থাপন করে। স্লেভ সেন্সরগুলি বোর্ডের আটটি এসসিএল/এসডিএ স্লেভ পোর্টের একটির সাথে সংযুক্ত। TCA9548A এর I2C ঠিকানা (0x70 {default} - 0x77) পাঠিয়ে চ্যানেলগুলি নির্বাচন করা হয় এবং তারপরে চ্যানেল নম্বর (0b00000001 - 0b10000000)। একই I2C সম্বোধন করা অংশগুলির 64 টি নিয়ন্ত্রণ করার জন্য আপনি এই মাল্টিপ্লেক্সারের সর্বোচ্চ 8 টি 0x70-0x77 ঠিকানায় সংযুক্ত থাকতে পারেন। তিনটি ঠিকানা বিট A0, A1 এবং A2 কে VIN এর সাথে সংযুক্ত করে আপনি ঠিকানাগুলির বিভিন্ন সমন্বয় পেতে পারেন। আমি TCA9548A ব্রেকআউট বোর্ডে আমার পরবর্তী টিউটোরিয়ালে এই গভীরভাবে ব্যাখ্যা করব। আপাতত, এই বোর্ডে কেবল 8 টি OLED সংযুক্ত করুন এবং কোডটি দ্রুত দেখুন।
সংযোগ:
VIN থেকে 5V (বা 3.3V)
GND to ground
এসসিএল থেকে আই 2 সি ঘড়ি
SDA থেকে I2C ডেটা
তারপর সেন্সরগুলিকে VIN, GND এ সংযুক্ত করুন এবং SCn / SDn মাল্টিপ্লেক্সেড বাসগুলির মধ্যে একটি ব্যবহার করুন
এখন, Int কোডটি "ওয়্যার" লাইব্রেরি অন্তর্ভুক্ত করে এবং মাল্টিপ্লেক্সারের ঠিকানা সংজ্ঞায়িত করে শুরু করতে দেয়।
#"Wire.h" অন্তর্ভুক্ত করুন
#অন্তর্ভুক্ত
#MUX_Address 0x70 // TCA9548A এনকোডার ঠিকানা নির্ধারণ করুন
তারপরে আমাদের যে পোর্টটিতে যোগাযোগ করতে চান তা নির্বাচন করতে হবে এবং এই ফাংশনটি ব্যবহার করে ডেটা পাঠাতে হবে:
অকার্যকর tcaselect (uint8_t i) {
যদি (i> 7) ফিরে আসে;
Wire.beginTransmission (MUX_Address);
Wire.write (1 << i);
Wire.endTransmission ();
}
পরবর্তী আমরা "u8g.begin () কল করে সেটআপ বিভাগে ডিসপ্লে আরম্ভ করব"; MUX- এর সাথে সংযুক্ত প্রতিটি প্রদর্শনের জন্য "tcaselect (i);"
একবার প্রারম্ভিক হয়ে গেলে, আমরা ফাংশনটিকে "tcaselect (i);" যেখানে "i" হল মাল্টিপ্লেক্সেড বাসের মান এবং তারপর সেই অনুযায়ী ডেটা এবং ঘড়ি পাঠানো।
ধাপ 13: সুবিধা এবং অসুবিধা
একটি OLED এর ছবি সুন্দর। যাইহোক, OLEDs আছে
অসুবিধা যেহেতু OLED স্ক্রিনে জৈব উপাদান থাকে, তাদের জীবনকাল LCD ডিসপ্লের চেয়ে ছোট। উপরন্তু, অনেক OLED ডিসপ্লে দীর্ঘ সময় ধরে একই চিত্র দেখানোর পরে বার্ন-ইন পায়। বার্ন-ইন করার পরে, ছবিটি অন্য চিত্র দেখানোর পরেও পর্দায় থাকে। তাই নিশ্চিত করুন যে আপনি প্রতি কয়েক সেকেন্ডে স্ক্রিনটি রিফ্রেশ করে রাখছেন। জল তাত্ক্ষণিকভাবে এই প্রদর্শনগুলির জৈব উপকরণগুলিকে ক্ষতি করতে পারে।
সুবিধাদি
ব্যাকলাইটের প্রয়োজন নেই
ডিসপ্লেগুলি খুব পাতলা এবং হালকা
কম শক্তি খরচ
দেখার কোণগুলি এলসিডি -র চেয়ে বিস্তৃত
উজ্জ্বলতা এবং বৈসাদৃশ্য দুর্দান্ত
উচ্চ গতি এবং কম প্রতিক্রিয়া সময় আছে
গভীর কালো রঙ
অসুবিধা
ব্যয়বহুল প্রযুক্তি
সংক্ষিপ্ত জীবনচক্র
OLEDS বার্ন-ইন হওয়ার সম্ভাবনা বেশি
পানি দূষণ
ধাপ 14: সাধারণ ত্রুটি
টিউটোরিয়ালটি শেষ করার জন্য কয়েকটি সাধারণ ত্রুটি সম্পর্কে কথা বলা যাক
এই প্রদর্শনগুলি ব্যবহার করার সময় মানুষ তৈরি করে:
- আপনার প্রকল্পে ব্যবহার করার আগে সর্বদা পিনগুলি তিনবার পরীক্ষা করুন
- হেডার ফাইলে এবং আপনার কোডে সঠিক লাইব্রেরির ঠিকানা নিন
#SSD1306_I2C_ADDRESS 0x3C // Adafruit_SSD1306.h এ সংজ্ঞায়িত করুন
এবং
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // আপনার কোডে
ঠিকানা ভুল হলে OLED কিছু প্রদর্শন করবে না
- ব্যবহার করার আগে ডিসপ্লে সাইজ অবশ্যই ড্রাইভারে পরিবর্তন করতে হবে। যদি এটি পরিবর্তন না করা হয় তবে কোডটি যাচাই করার চেষ্টা করার সময় আপনি একটি ত্রুটির বার্তা পাবেন
#ত্রুটি ("উচ্চতা ভুল, দয়া করে Adafruit_SSD1306.h ঠিক করুন!");
- NodeMCU ব্যবহার করলে নিশ্চিত করুন যে আপনি OLED_RESET 4 থেকে LED_BUILTIN এ প্রতিস্থাপন করুন
#OLED_RESET LED_BUILTIN নির্ধারণ করুন
আমার কাছে এই OLED ডিসপ্লে ব্যবহার করে সব ধরণের জিনিস তৈরি করার দৃশ্য আছে। কেউ কেউ ভিডিও গেম এবং সব তৈরি করেছে। আমি সত্যিই এই ছোট ডিসপ্লে ব্যবহার করে একটি ভিডিও গেম তৈরিতে আগ্রহী নই। যাইহোক, আমি এখন আপনার কল্পনাগুলি অন্বেষণ করতে এবং আশ্চর্যজনক ধারণা নিয়ে বেরিয়ে আসার জন্য আপনাকে ছেড়ে দেব।
ধাপ 15: লিঙ্ক
- ব্লগ:
- ছবি যোগ করুন:
- কাস্টম টেক্সট:
- অ্যাডাফ্রুট ডিসপ্লে লাইব্রেরি:
-Adafruit GFX লাইব্রেরি:
- u8glib লাইব্রেরি: https://code.google.com/archive/p/u8glib/ অথবা
আপনি যদি ছোট ডিসপ্লে ব্যবহার করতে চান তবে ডিফল্ট 128_32 ব্যবহার করুন অন্যথায় বড় ডিসপ্লেতে 128_32 মন্তব্য করুন এবং 128X64 NO_ACK কে আপনার কোডে অস্বস্তিকর করুন (আপনি যে স্ক্রিনটি ব্যবহার করছেন তা কেবল অসম্পূর্ণ) (ফন্টগুলি ফন্ট লাইব্রেরিতে রয়েছে)
প্রস্তাবিত:
Arduino এবং VL53L0X ফ্লাইটের সময় + OLED ডিসপ্লে টিউটোরিয়াল: 6 টি ধাপ
Arduino এবং VL53L0X টাইম-অফ-ফ্লাইট + OLED ডিসপ্লে টিউটোরিয়াল: এই টিউটোরিয়ালে আমরা শিখব কিভাবে VL53L0X টাইম-অফ-ফ্লাইট সেন্সর এবং OLED ডিসপ্লে ব্যবহার করে মিমি দূরত্ব প্রদর্শন করতে হয়। ভিডিওটি দেখুন
TTGO (রঙ) ডিসপ্লে উইথ মাইক্রোপাইথন (TTGO T- ডিসপ্লে): Ste টি ধাপ
TTGO (কালার) ডিসপ্লে উইথ মাইক্রোপাইথন (TTGO T- ডিসপ্লে): TTGO T-Display হল ESP32 ভিত্তিক একটি বোর্ড যাতে 1.14 ইঞ্চি কালার ডিসপ্লে রয়েছে। বোর্ডটি 7 ডলারের কম মূল্যের জন্য কেনা যাবে (শিপিং সহ, ব্যাংগুডে দেখা পুরস্কার)। এটি একটি ESP32 এর ডিসপ্লে সহ একটি অবিশ্বাস্য পুরস্কার।
Arduino MAX7219 7-সেগমেন্ট ডিসপ্লে টিউটোরিয়াল: 5 টি ধাপ
আরডুইনো MAX7219 7-সেগমেন্ট ডিসপ্লে টিউটোরিয়াল: MAX7219 হল একটি IC যা 7-সেগমেন্ট LEDs (8 ডিজিট পর্যন্ত), ব্লক ডিসপ্লে (বার ডিসপ্লে) এবং 64 ব্যক্তিগত LEDs যা কমন ক্যাথোড চালাতে ব্যবহৃত হয়। একটি মাইক্রোকন্ট্রোলারের সাথে যোগাযোগ করার জন্য, MAX7219 SPI যোগাযোগ ব্যবস্থা ব্যবহার করে। তাই 64 L চালাতে
Arduino LCD 16x2 টিউটোরিয়াল - Arduino Uno- এর সাথে 1602 LCD ডিসপ্লে ইন্টারফেসিং: 5 টি ধাপ
Arduino LCD 16x2 টিউটোরিয়াল | Arduino Uno- এর সাথে 1602 LCD ডিসপ্লে ইন্টারফেস করা: হাই বন্ধুরা যেহেতু অনেক প্রকল্পের ডেটা প্রদর্শনের জন্য একটি স্ক্রিনের প্রয়োজন হয় তা কিছু DIY মিটার বা YouTube সাবস্ক্রাইব কাউন্ট ডিসপ্লে অথবা ক্যালকুলেটর বা ডিসপ্লে সহ একটি কীপ্যাড লক এবং যদি এই সব ধরনের প্রজেক্ট দিয়ে তৈরি করা হয় arduino তারা নিশ্চিত করবে
Arduino এবং TFT ডিসপ্লে ব্যবহার করে কিভাবে রিয়েলটাইম ঘড়ি তৈরি করবেন - 3.5 ইঞ্চি TFT ডিসপ্লে সহ Arduino Mega RTC: 4 টি ধাপ
কিভাবে Arduino এবং TFT ডিসপ্লে ব্যবহার করে রিয়েলটাইম ক্লক তৈরি করবেন | 3.5 ইঞ্চি TFT ডিসপ্লে সহ Arduino Mega RTC: আমার ইউটিউব চ্যানেলে যান। ভূমিকা:- এই পোস্টে আমি 3.5 ইঞ্চি TFT টাচ LCD, Arduino Mega ব্যবহার করে "রিয়েল টাইম ক্লক" তৈরি করতে যাচ্ছি 2560 এবং DS3231 RTC মডিউল …. শুরু করার আগে … আমার ইউটিউব চ্যানেল থেকে ভিডিওটি দেখুন .. নোট:- যদি আপনি Arduin ব্যবহার করেন