
مقدمه
راه اندازی lcd nokia 5110 با آردوینو: در اکثر پروژه های میکروکنترلری مخصوصا Arduino استفاده از lcd برای نمایش اطلاعات امری ضروری است. امروزه کد نویسی شما فقط کافی نیست و اگر دستگاهی می سازید باید بتوانید برای مشتری خود هر چیزی که می خواهد را نمایش دهید و این امر جز با نمایشگر ها ممکن نیست. در این آموزش ما قراره که نمایشگر nokia 5110 را در آردوینو برای شما راه اندازی کنیم.

کتابخانه
این نمایشگر دارای بک لایت می باشد و برای راه اندازی آن از درایور PCD8544 استفاده می کنیم. برای راه اندازی این نمایشگر بایستی کتابخانه u8glib.h را به شکل زیر به آردوینو اضافه کنیم
#include “u8glib.h”
نکته: برای دسترسی و نصب کتابخانه های آردوینو کلید های ترکیبی Ctrl+Shift+i را فشار دهید و در قسمت بالای آن کتابخانه مورد نظر خود را (مانند u8glib) جستجو و نصب کنید.

لوازم مورد نیاز برای راه اندازی lcd nokia 5110 با آردوینو
یک عدد برد آموزشی آردوینو
کابل اتصال آردوینو به pc
سیم هدر برای اتصالات
یکم علاقه!
پایه های ماژول LCD را می توانید در شکل زیر ببینید:

پین های اتصال آردوینو به lcd nokia 5110
VCC: اتصال به منبع تغذیه ۲.۷ تا ۵ ولت 5v
GND: اتصال به زمین GND
SCE: پین فعال سازی چیپ داخلی ماژول 10
RESET: پین ریست کردن LCD 8
D/C: پین تشخیص فرمت اطلاعات (command or data) 9
SDIN: پین دیتا (Serial Data Line) 11
SCLK: پین کلاک (Serial Clock Line) 13
LED: کنترل نور ال ای دی پشت زمینه GND
نکته: ممکن است در برخی ماژول ها پینی به نام BL وجود داشته که این نیز برای ال ای دی پشت زمینه می باشد با این تفاوت که این پین با مقاومت متغییر به VCC متصل می شود.
کد برنامه برای راه اندازی lcd nokia 5110 با آردوینو
در کد آردوینو زیر ما چند شکلک و شمارنده ای را بر روی LCD نمایش می دهیم:
/*
* Arduino Uno CLK=13, DIN=11
* Arduino Nano CLK=13, DIN=11
* Arduino Due CLK=76, DIN=75
* Arduino Mega CLK=52, DIN=51
“در صورت تغییر برد آموزشی آردوینو بایستی پایه های آن را مطابق بالا عوض کنید”
MOSI = DIN = R/W = SDO = DI = SI = MTSR = SDA = D1
CS = CE = RS = SS
DC = A0 = SDI = DO = DOUT = SO = MRST
RESET = RST
SCLK = CLK = E = SCK = SCL = D0
“پایه های پروتکل spi با نام های متفاوتی مشخص می شوند که می توانید همه ی آن ها را در بالا ببینید”
We use this library: https://github.com/olikraus/U8glib_Arduino
“لینک کتابخانه مورد استفاده در این پروژه”
*/
#include "U8glib.h"
“اضافه کردن کتابخانه”
U8GLIB_PCD8544 u8g(13, 11, 10, 9, 8);
“تعریف پایه های LCD برای آردوینو
int Variable1;
“تعریف متغییر برای شمارنده”
void setup(void) {
//u8g.setFont(u8g_font_profont12);
//u8g.setFont(u8g_font_profont15);
//u8g.setFont(u8g_font_profont17);
//u8g.setFont(u8g_font_profont22);
//u8g.setFont(u8g_font_profont29);
//u8g.setFont(u8g_font_unifont);
//u8g.setFont(u8g_font_4x6);
//u8g.setFont(u8g_font_5x7);
//u8g.setFont(u8g_font_5x8);
u8g.setFont(u8g_font_6x10);
//u8g.setFont(u8g_font_6x12);
//u8g.setFont(u8g_font_6x13);
//u8g.setFont(u8g_font_6x13B);
//u8g.setFont(u8g_font_6x13O);
//u8g.setFont(u8g_font_7x13);
//u8g.setFont(u8g_font_7x13B);
//u8g.setFont(u8g_font_7x13O);
//u8g.setFont(u8g_font_7x14);
//u8g.setFont(u8g_font_7x14B);
//u8g.setFont(u8g_font_8x13);
//u8g.setFont(u8g_font_8x13B);
//u8g.setFont(u8g_font_9x15);
//u8g.setFont(u8g_font_9x15B);
//u8g.setFont(u8g_font_9x18);
//u8g.setFont(u8g_font_9x18B);
//u8g.setFont(u8g_font_10x20);
“انتخاب فونت با استفاده از دستور u8g.setFont();”
“لیست فونت هایی که راستچین را پشتیبانی می کنند”
//u8g.setRot90();
//u8g.setRot180();
//u8g.setRot270();
“با استفاده از دستور فوق می توانید صفحه نمایشگر را بچرخوانید”
}
void loop(void)
{
Variable1++;
“افزایش مقدار متغییر در هر بار حلقه تکرار”
if(Variable1 > 150) {
Variable1 = 0;
}
“اگر متغییر از ۱۵۰ بیشتر شود آن را صفر می کند”
char string[10];
“تعریف آرایه کاراکتری”
dtostrf(Variable1, 3, 0, string); // (<variable>,<amount of digits we are going to use>,<amount of decimal digits>,<string name>)
“در این قسمت از کد با استفاده از تابع dtostrf مقدار متغییر را به رشته (string) تبدیل می کند تا بتوان آن را راستچین کرد”
“فرمت تبدیل آن به شکل زیر است (از چپ به راست)”
“متغییر string + تعداد اعشار + تعداد ارقام + متغییر int”
u8g.firstPage();
do{
u8g.drawStr(0, 7, "Hello World!"); // (x,y,"Text")
“نمایش نوشته با استفاده از دستور فوق و مشخص کردن مختصات”
u8g.drawBox(0, 9 ,25 , 15); // (x,y,width,height)
“نمایش مربع با استفاده دستور فوق و مشخص کردن مختصات و ابعاد ”
u8g.drawRBox(0, 26, 17, 19, 3); // (x,y,width,height,radius)
” نمایش مربع دارای لبه نرم با استفاده دستور فوق و مشخص کردن مختصات و ابعاد ”
u8g.drawCircle(41, 21, 12, U8G_DRAW_ALL); // (x,y,radius,option)
” نمایش دایره با استفاده دستور فوق و مشخص کردن مختصات و ابعاد ”
u8g.drawDisc(27, 38, 7, U8G_DRAW_ALL); // (x,y,radius,option)
” نمایش دایره تو پر با استفاده دستور فوق و مشخص کردن مختصات و ابعاد ”
u8g.drawTriangle(38,45, 48,34, 58,45); // (x0,y0, x1,y1, x2,y2)
” نمایش مثلث با استفاده دستور فوق و مشخص کردن مختصات هر سه راس”
u8g.drawLine(0, 47, 83, 47); // (x0,y0,x1,y1)
“رسم خط با استفاده از دستور فوق و مشخص کردن مختصات ابتدایی و انتهایی”
u8g.drawFrame(59, 10, 25, 13); // (x,y,width,height)
“نمایش مربع با استفاده دستور فوق و مشخص کردن مختصات و ابعاد ”
u8g.setPrintPos(63, 20); // (x,y)
“تعیین موقعیت نوشتن”
u8g.print(Variable1);
“نمایش مقدار متغییر”
u8g.drawRFrame(59, 26, 25, 13, 3); // (x,y,width,height,radius)
” نمایش مربع دارای لبه نرم با استفاده دستور فوق و مشخص کردن مختصات و ابعاد ”
u8g.setPrintPos(63, 36); // (x,y)
“تعیین موقعیت نوشتن”
u8g.print(string);
“نمایش مقدار متغییر راست چین شده”
} while(u8g.nextPage()); // End of the picture loop}
خروجی کد پروژه راه اندازی نمایشگر نوکیا ۵۱۱۰, به شکل زیر است بدین صورت که عدد بالایی چپ چین و عدد پایینی راست چین می باشد:

سخن پایانی
امیدوارم از این آموزش لذت برده باشین. شما می توانید تمامی قطعات این پروژه را از فروشگاه اینترنتی ما تهیه کنید. لطفا نظراتتون را در پایین همین پست قرار دهید.
لینک های کمکی: