به آموزش آردوینو ( قسمت دوازدهم – راه اندازی نمایشگر OLED) خوش اومدید.
بازبینی اول : در تاریخ ۱۴۰۰/۰۵/۲۳ انجام شد!
نمایشگر OLED
نمایشگرهای OLED ، نمایشگرهایی با رزولوشن بالای میباشند و قابلیت خوانایی زیادی را برای کاربر فراهم میکند. این نوع ماژولها فاقد Backlight میباشند و نور پسزمینه را خودشان ایجاد میکنند از این رو نسبت به LCD ها باریکتر ، شفافتر و شکیل تر میباشند.
پیاده سازی عملی پروژه
VCC : پایه تغذیه نمایشگر OLED که به پایه ۵ ولت برد آردوینو متصل میکنیم.
GND : به پایه GND برد آردوینو وصل میکنیم.
SCL : پایه کلاک ارتباط I2C به پایه A5 آردوینو متصل میکنیم.
SDA : پایه انتقال دیتا ارتباط I2C به پایه A4 آردوینو متصل میکنیم.
شبیه سازی پروژه در نرم افزار پروتئوس
برای این پروژه مدار خود را مانند شکل زیر ببندید.
نصب کتاب خانه های مورد نیاز
از کتابخانه Adafruit_SSD1306 برای نمایش متن دلخواه و از کتابخانه Adafruit GFX برای نمایش اشکال هندسی روی نمایشگر OLED استفاده میکنیم. این کتابخانه ها از سایت گیت به صورت رایگان قابل دانلود است . سپس فایل زیپ دانلودی را استخراج و در مسیر فایل نصبی نرم افزار ها و قسمت library قرار میدهیم.
یا شما میتوانید با مراجعه به منوی Sketch منوی Include library و بعدش گزینه Manage libraries و جستجو اسم کتابخانه مورد نظر آن را نصب کنید.
کد های دستوری
ابتدا کتابخانه های Wire.h (ارتباط I2C) ،و SPI.h (ارتباط SPI) برای برقرای ارتباط با نمایشگر گرافیکی OLED و کتابخانه های Adafruit_GFX و Adafruit_SSD1306 را فراخوانی میکنیم.برای یادگیری این دو پروتکل ارتباطی SPI و I2C شما می توانید به قسمت ۱۰ و ۱۱ آموزش مراجعه کنید.
سپس یک شی بنام display تعریف میکنیم.
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(-1);
در تابع setup در تابع display.begin با SSD1306_SWITCHCAPVCC ولتاژ کاری نمایشگر رو روی ۵ ولت تنظیم میکنیم و عبارت دوم آدرس نمایشگر گرافیکی OLED هست.
سپس با دستور display.clearDisplay یک دور نمایشگر را پاک میکنیم.
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
برای نمایش متن مورد نظر روی نمایشگر با دستور display.setTextSize سایز فونت مورد نظر رو میتونیم انتخاب کنیم.
با دستور setTextColor رنگ متن رو انتخاب میکنیم.
با دستور display.setCursor مکانمورد نظر توی صفحه نمایشرا انتخاب میکنیم .
با دستور display.println متن را مینویسیم.
و در آخر با دستور display.display تمام تغییرات را روی نمایشگر اعمال میکنیم.
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("amokh.ir");
display.display();
حرکت کامل یک متن
برای حرکت یک متن روی نمایشگر گرافیکی OLED از توابع:
startscrollright : برای حرکت دادن متن به سمت راست
startscrollleft : برای حرکت دادن متن به سمت چپ
startscrolldiagright : برای حرکت دادن متن به سمت راست بصورت مورب
startscrolldiagleft : برای حرکت دادن متن به سمت چپ بصورت مورب استفاده میکنیم.
نکته : تمام توابع نام برده شده دو پارامتر رو بعنوان ورودی دریافت میکنند.
پارامتر اول:آدرس شروع صفحه
پارامتر اول:آدرس پایان صفحه
نکته : که این دو پارامتر بین ۰ تا ۷ صفحه قابل تغییر هستند .با این تفاوت که ما بجای اعداد ۰ تا ۷ از معادل هگز اونها یعنی 0x00 تا 0x07 استفاده میکنیم.
display.startscrollright(0x00, 0x07);
delay(2000);
display.stopscroll();
کد کامل پروژه
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Adafruit_SSD1306 display(-1);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("amokh.ir");
display.display();
display.startscrollright(0x00, 0x07);
delay(2000);
display.stopscroll();
}
void loop() {
}
پایان آموزش آردوینو ( قسمت دوازدهم – راه اندازی نمایشگر OLED)
سلام من می خوام فونت متن ام عددی بین ۱ و ۲ باشه. مثلا ۱.۵ . چطوری می تونم این کار رو کنم؟
سلام وقت بخیر، برای اینکار باید عددتون float تعریف بشه و بعد برای چاپ اونرو تبدیل به string کنید و بعد نمایش بدیدمثل کد زیر :
#include
int main()
{
float f = 1.123456789;
char c[50]; //size of the number.
sprintf(c, “%g”, f);
printf(c);
printf(“\n”);
من می خوام روی اولد نمایش بده نه این که پرینت کنه.
سلام مجدد، شما با دستور sprintf اونو تبدیل به string میکنید و بعد به جای دستور print از دستور نمایش روی oled استفاده می کنید
درود . در پروتیوس نتوانستم oled مشابه تصویر شما پیدا کنم . لطفا راهنمایی فرمایید
سلام لطفا اسم oled را گوگل کنید برای پروتئوس در صورت لزوم نصب کنید
سلام این نمایشگر oled که تو پروتئوس استفاده کردین رو کتابخونه اش رو ازکجا میتونم تهیه کنم؟
سلام کتابخونه SSD1306 رو توی پروتئوس سرچ کنید نبود توی گوگل بزنید سایتهایی هستند که دارند کتابخونشو
سلام
من در عمل oled رو راه اندازی کردم ولی در پروتئوس همین oled که شما استفاده کردید رو میزارم ولی تصویر نشون نمیده ، علتش چیه؟
سلام وقت بخیر. معمولا بخاطر کتابخونه هاست که باید درست اضافه بشن و کد هم hex باید بارگذاری بشه