آنچه در این مقاله میخوانید :
Toggleدر مقاله امروز مجله هادی بان الکترونیک، با آموزش راه اندازی ال ای دی اورگانیگ یا OLED بهوسیله میکروکنترلر آردوینو همراه شما هستیم و مراحل انجام پروژه را بهصورت کامل برای شما توضیح خواهیم داد. در آغاز به معرفی سختافزار و لوازم موردنیاز خواهیم پرداخت سپس به سراغ مراحل کد نویسی خواهیم رفت.
تجهیزات موردنیاز
آردوینو UNO: این مدل میکروکنترلری کمهزینه، منعطف از لحاظ کارکرد و با کاربری آسان است. از این مدار در پروژههای مختلف الکترونیک استفاده میشود و قابل تعامل با دیگر مدارهای آردوینو از جمله شیلدز (SHIELDS)، رزبری پای (RASBERRY PIE) است. همچنین با استفاده از خروجی های این میکروکنترلر می توان انواع نمایشگرها و رله ها و موتورها را کنترل کرد.
پردازنده آردوینو UNO از خانواده AVR و مدل ATMEGA328P است که ۶ پایه ورودی آنالوگ و ۱۴ پایه دیجیتال I/O دارد که ۶ عدد از آنها بهعنوان خروجی PWM استفاده میشوند.
نمایشگر OLED 0.96": این نمایشگر کوچک برای پروژههای آزمایشی و آموزشی در حوزه الکترونیک گزینهای مناسب تلقی میشود. شاید برای شما جالب باشد که تفاوت نمایشگرهای اولد با LCD و LED های معمولی را بدانید.
در LCD و LED برای نمایش دادن تصویر روی پنل، نیاز به قطعهای مجزا به نام بک لایت (BACK LIGHT) بود تا بهوسیله نور آن، پیکسلها بتوانند تصویر را با روشنایی بیشتر نمایش دهند. اما در OLED ها هر دیود نور جداگانهای از خود ساطع میکند و هر پیکسل بهصورت مجزا قابل کنترل و مدیریت است.
سیم های جامپر: سیمهایی که برای اتصال قطعات به برد بورد کاربرد دارند.
برد بورد (BREAD BOARD): صفحهای از جنس پلاستیک و پر حفره که برای اتصال قطعات الکترونیکی بهوسیله سیمهای جامپر کاربرد دارد.
شرح پروژه
در این قسمت قصد داریم علامتهای تجاری (LOGO) چند شرکت مطرح در صنعت الکترونیک را به وسیله مدار آردوینو روی نمایشگر اولد به تصویر بکشیم. نمایشگر ۰٫۹۶ اینچی ما از ۶۴*۱۲۸ پیکسل اولد سفید رنک و مجزا از هم تشکیلشده است و ابعادی ۱۴*۲۵ میلیمتری دارد.
در صورت تمایل میتوانید از OLED های بزرگتری نیز استفاده کنید. نمایشگر استفادهشده در این پروژه تکرنگ بوده و در صورت نیاز میتوانید مدل رنگی آنها بکار ببرید. این نمایشگرها از طریق SPI (Serial Peripheral Interface) یا “رابط کاربری سری” با مدار آردوینو ارتباط برقرار میکنند و از حالت ۱۲C سریعتر اطلاعات را به نمایشگر مخابره میکنند.
اگر از اولد با پروتکل ۱۲C استفاده میکنید، سیمکشی بین نمایشگر و مدار آردوینو بسیار آسان خواهد بود. با استفاده از جدول زیر میتوانید این اتصالات را انجام دهید.
اتصالات سختافزاری
نمایشگر اولد مورد استفاده ما به منبع تغذیه ۳٫۳ ولتی احتیاج دارد، پس آن را به پایه ۵ ولت آردوینو متصل نکنید. در صورت انجام این کار ممکن است نمایشگر شما کار کند ولی عمر پیکسلهای آن کاهش مییابد. در تصویر زیر روش اتصال OLED به ARDUINO UNO را مشاهده میکنید.
توضیحات مراحل کد نویسی
برای نمایش اطلاعات روی OLED توسط آردوینو به دستوراتی نیاز دارید که از طریق کتابخانه U8glib قابل اجراست. این کتابخانه را میتوانید از وبسایت گیت هاب و از طریق لینک روبرو دانلود کنید: https://github.com/olikraus/u8glib
#include "U8glib.h"
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9, 8); // D0=13, D1=11, CS=10, DC=9, Reset=8
void setup() {
dht.begin();
u8g.firstPage();
do {
u8g.setFont(u8g_font_helvB10);
u8g.drawStr(30, 10, "Welcome ");
u8g.drawStr(50, 30, "To ");
u8g.drawStr(10, 50, "ElectronicsHob");
u8g.drawStr(10, 60, "byists.com");
} while( u8g.nextPage() );
delay(5000);
}
void loop() {
float hum = dht.readHumidity();
float temp = dht.readTemperature();
float fah = dht.readTemperature(true);
if (isnan(hum) || isnan(temp) || isnan(fah)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
float heat_index = dht.computeHeatIndex(fah, hum);
float heat_indexC = dht.convertFtoC(heat_index); //Calculating the heat index in Celsius
u8g.firstPage();
do {
u8g.setFont(u8g_font_helvR12);
u8g.drawStr(0, 15, "Temp:");
u8g.setPrintPos(75, 15);
u8g.print(temp, 0);
u8g.print((char)176);
u8g.print("C");
u8g.drawStr(0, 35, "Humi:");
u8g.setPrintPos(75, 35);
u8g.print(hum, 0);
u8g.print("%");
u8g.drawStr(0, 55, "Hi:");
u8g.setPrintPos(75, 55);
u8g.print(heat_indexC, 0);
u8g.print("%");
} while( u8g.nextPage() );
delay(5000);
}
در این کتابخانه تصاویر بهصورت تکرارشونده (LOOP) نمایش داده میشوند. قسمت U8g.firstPage() آغاز لوپ تصویر را نمایش میدهد. در کنار آن باید دستور "do while" را ایجاد کنیم. هر چیزی که میخواهیم اولد ما نمایش دهد باید داخل قسمت "do while" قرار بگیرد.
دستور شما تا زمانی که به کد nextPage() برسد تکرار خواهد شد.
با دستور U8g.setFont(u8g_font_helvB10) میتوانید فونت نوشته خود را انتخاب کنید. این کتابخانه دارای فونتهای متفاوت با اندازههای مختلف است.
با واردکردن دستور U8g.drawStr(30, 10, "WELCOME") نمایشگر کلمه WELCOME را در موقعیت مشخصشده با مقادیر X و Y نمایش میدهد. عدد ۳۰ برای موقعیت افقی (X) و عدد ۱۰ نشاندهنده موقعیت عمودی (Y) است. تمام دستوراتی که با کد DRAW آغاز میشوند از همین قانون پیروی میکنند.
u8g.firstPage();
do {
u8g.setFont(u8g_font_helvB10);
u8g.drawStr(30, 10, "Welcome ");
u8g.drawStr(50, 30, "To ");
u8g.drawStr(10, 50, "ElectronicsHob");
u8g.drawStr(10, 60, "byists.com");
} while( u8g.nextPage() );
delay(5000);
نمایش تصویر با فرمت BITMAP روی نمایشگر OLED
در ادامه قصد داریم برای مثال لوگو شرکتال.جی را روی نمایشگرمان به تصویر بکشیم. برای این کار لازم است نخست با تصویر بیت مپ (BITMAP) آشنا شوید. در این نوع تصویر جزئیات هر بیت (پیکسل) از عکس بهصورت کدهای باینری (BINARY) تبدیل میشود و قابلیت خواندن و اجرا روی نمایشگرها را پیدا میکنند.
فایلهای GIF نوعی از تصاویر بیت مپ هستند. وقتیکه این تصاویر روی نمایشگر اجرا میشوند، پردازنده نمایشگر میتواند بهوسیله کدها و مختصاتی که در فایل تصویر موجود است، اطلاعات را بخواند و نمایش تصویرهای متحرک را ممکن سازد. فرمت این نوع فایلها BMP است.
نکته قابلتوجه این است که اندازه تصاویر انتخابی شما نباید از ۶۴*۱۲۸ پیکسل بزرگتر باشد زیرا تصویر شما در صفحه نمایشگر جای نخواهد گرفت. همچنین باید تصویرهای سیاهوسفید را انتخاب کنید زیرا این مدل اولد قابلیت نمایش تکرنگ را دارد. در صورت تمایل به نمایش دادن تصویرهای رنگی، باید نمایشگر اولد رنگی تهیه کنید.
پس از دانلود نمونه سیاهوسفید عکسها، آنها را با برنامه PAINT در ویندوز باز کنید. سپس با ابزار RESIZE اندازه آنها را به مقدار دلخواه و طبق موردی که در بالا گفته شد تنظیم میکنیم. این کار را با کشیدن حاشیههای تصویر با موس نیز میتوانید انجام دهید.
بعد از آن نرمافزار LCD ASSISTANT را نصب نمایید و تصویر با اندازه مناسب را در آن بارگذاری کنید. تنظیمات برنامه را مانند تصویر زیر انجام دهید.
بعد از وارد کردن عکس موردنظر به برنامه، از منوی FILE گزینه SAVE OUTPUT را انتخاب و فایل را با اسم دلخواه، برای مثال LOGO و با پسوند “.C” ذخیره کنید. اکنون فایل ذخیرهشده را در TEXT EDITOR باز کرده و کد مشاهدهشده را کپی کنید.
کد تولید شده مربوط به تصویر موردنظر شماست که قرار است روی نمایشگر اولد نشان داده شود.کد را درون دستورات آردوینو PASTE کنید. بهوسیله این کدها خواهید دید که تصاویر به ترتیب روی اولد به نمایش در میآیند.
جمعبندی
در این آموزش گفتیم که چگونه میشود بهوسیله میکروکنترلر آردوینو UNO تصاویر دلخواهتان را روی OLED به تصویر بکشید. در صورت نیاز میتوانید از طریق لینک زیر به قسمت فروشگاه وبسایت هادی بان الکترونیک رفته و نمایشگر موارد نیاز خود را بهصورت آنلاین سفارش دهید.
دیدگاهتان را بنویسید