آردوینو آموزش آردوینو

آموزش کامل راه اندازی ال سی دی گرافیکی Nokia5110 با آردوینو Arduino

nokia5110 basic tutorial with arduino digispark
نوشته شده توسط پریسا پوربلورچیان

ال سی دی برای نمایش محتوا و داده ها در پروژه های الکترونیکی استفاده میشود. قطعا ال سی دی های تلفن های همراه نوکیا را به خاطر دارید. پس از اتمام خط تولید نوکیا، ال سی دی های استوک در بازار الکترونیک در سراسر دنیا مورد استفاده قرار گرفته است و با توجه به قیمت مناسب و کیفیت تصویر مطلوب یکی از انتخاب های تولیدکنندگان شده است. در ادامه روش راه اندازی ال سی دی گرافیکی Nokia5110 را با بردهای آردوینو بررسی میکنم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


معرفی ال سی دی گرافیکی Nokia5110


ال سی دی گرافیکی نوکیا مخصوص تلفن همراه نوکیا است که از طریق درایور میتوانید با انواع میکروکنترلر تست و راه اندازی کنید. قیمت ارزان، کیفیت تصویر مطلوب و راه اندازی ساده با درایور جای خود را در ساخت پروژه های DIY الکترونیکی باز کرده است. از نمایشگر نوکیا برای نمایش متن و BITMAP میتوان استفاده کرد. تراشه ی قدرتمند PCD8544 CMOS در ساختار ال سی دی به کار رفته است که به همین دلیل ارتباط با میکروکنترلرها جهت راه اندازی را بسیار ساده کرده است. توسط درایور PCD8544 میتواهنید نمایشگر با ۴۸X84 پیکسل را درایو و راه اندازی کنید. ارتباط بین نمایشگر و میکروکنترلر توسط پروتکل ارتباطی SPI شکل میگیرد. درایور PCD8544 بسیار کم مصرف است و در مدار جریانی بین ۶ تا ۷ میلی آمپر مصرف می‌کند. طبق اطلاعات درج شده در دیتاشیت از درایور PCD8544 برای راه اندازی و درایو ال سی دی LCD استفاده می‌شود. خروجی درایور پیکسل های ۴۸X84 است. درایور دارای پایه ریست RESET ورودی داخلی است و سرعت ارتباط سریال m 4.0 Mbits/s است. رنج ولتاژ راه اندازی درایور بین ۲٫۷ تا ۳٫۳ ولت است. برای استفاده در آردوینو از پایه ی ۳٫۳ ولت برای راه اندازی ال سی دی استفاده می‌کنیم. نمایشگر ال سی دی از یک GDDRAM داخلی با حافظه ۵۰۴ بیتی تشکیل شده است. هر حافظه مموری از ۶ بانک تشکیل شده است که از ۸۴ ستون ( سگمنت ) تشکیل شده است که هر ستون ۸ بیت دیتا را در خود ذخیره می‌کند. تکنولوژی به کار رفته برای ساخت ال سی دی دات ماتریس است و پروتکل ارتباطی MCU به صورت SPI است. سایز صفحه نمایش ۱٫۵ اینچ و رزولوشن تصویر ۸۴X48 پیکسل است. ولتاژ ورودی ۲٫۷ تا ۳٫۳ ولت و ماکزیمم جریان کاری ۵۰ میلی آمپر است. زاویه دید صفحه نمایش ۱۸۰ درجه است.

۶ banks x 84 segments x 8 bits of data = 4032 bits = 504 bytes

 

راه اندازی LCD نوکیا با آردوینو - دیجی اسپارک

 


پایه های LCD NOKIA5110


ترتیب پایه های نمایشگر ال سی دی طبق اطلاعات چاپ شده بر روی ال سی دی به صورت زیر است.

پایه های ال سی دی نوکیا 5110 برای راه اندازی با آردوینو - دیجی اسپارک

 

  • پایه RST : پایه RESET برای ریست کردن نمایشگر استفاده می‌شود.
  • پایه CE: پایه CE مخفف CHIP ENABLE است که برای ارتباط با یکی از دیوایس هایی که از طریق پروتکل SPI با دستگاه اتصال دارد، استفاده می‌شود. این پایه به صورت پیشفرض ACTIVE LOW است.
  • پایه D/C: مخفف DATA / COMMAND است که برای ال سی دی مشخص می‌کند دیتای ارسالی به صورت کامند و یا دیتای نمایشی است.
  • پایه DIN: پایه دیتا سریال است که برای ارتباط SPI استفاده می‌شود.
  • پایه CLK: پایه کلاک سریال است که برای ارتباط SPI استفاده می‌شود.
  • پایه VCC: پایه تغذیه است که برای تامین ولتاژ کافی برای ارتباط با آردوینو استفاده می‌شود.
  • پایه BL: مخفف BACKLIGHT است که برای کنترل بک لایت صفحه نمایش استفاده می‌شود و توسط یک پتانسیومتر میتوانید شدت نور صفحه را تنظیم کنید.
  • پایه GND: پایه GND برای ارتباط با GND آردوینو استفاده می‌شود.

اتصالات LCD Nokia5110 به آردوینو - دیجی اسپارک

 

برای اتصال نمایشگر ال سی دی گرافیکی NOKIA5110 به آردوینو از جدول زیر استفاده کنید. در نظر داشته باشید برای اتصال BL یا همان BACKLIGHT میتوانید بین دو پایه VCC و BL اشتراک گرفته و سپس به پایه ۳٫۳ ولت آردوینو متصل کنید. از دیگر پایه های دیجیتال آردوینو برای اتصال میتوانید استفاده کنید اما بایستی در کد برنامه هر پایه را تعریف کنید.

nokia 5110 lcd arduino - دیجی اسپارک

 


نصب کتابخانه Adafruit PCD8544 Nokia 5110


برای راه اندازی ال سی دی گرافیکی Nokia5110 از کتابخانه ی Adafruit استفاده می‌کنیم. کتابخانه Adafruit pcd8544 توسط کمپانی آدافروت توسعه یافته است که به صورت پیش فرض در لیست کتابخانه نرم افزار آردوینو قرار دارد و با تایپ نام کتابخانه در منو نرم افزار نصب کتابخانه ها نمایش داده می‌شود. برای نصب کتابخانه از مسیر زیر اقدام کنید.

Arduino / Tools / Manage Libraries

نصب کتابخانه Adafruit PCD8544 Nokia 5110 - دیجی اسپارک

 

نصب کتابخانه Adafruit GFX Library

 برای نمایش نقطه، خط، دایره و مستطیل در نمایشگرها از کتابخانه Adafruit GFX استفاده می‌کنیم. کتابخانه را به روش زیر نصب کنید.

مراحل نصب کتابخانه در آردوینو - دیجی اسپارک

 


کد آردوینو نمایش متن ال سی دی Nokia5110


برای نمایش متن در ال سی دی گرافیکی Nokia5110 از کتابخانه ی PCD8544 Nokia 5110 استفاده می‌کنیم. در ابتدا دو کتابخانه را فراخوانی می‌کنیم. انتخاب پایه های آردوینو برای هر ال سی دی دلخواه است و فقط طبق پایه های چاپ شده بر روی برد اتصالات را مشخص و در متن کد وارد کنید.

#include <SPI.h>
#include <Adafruit_GFX.h> // فراخوانی کتابخانه
#include <Adafruit_PCD8544.h> // فراخوانی کتابخانه

// معرفی پایه های ال سی دی برای ارتباط spi
// Adafruit_PCD8544(CLK,DIN,D/C,CE,RST);
// طبق ترتیب بالا پایه های متصل به آردوینو رامشخص کنید
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

int rotatetext = 1;

void setup()   {
  Serial.begin(9600); // ارتباط سریال

  // معرفی نمایشگر
  display.begin();

  // تنظیم کنترا
  display.setContrast(57);

  // پاک کردن حافظه بافر
  display.clearDisplay();

  // نمایش متن
  display.setTextSize(2); // سایز نمایش محتوا
  display.setTextColor(BLACK); // رنگ متن
  display.setCursor(5,5); // مشخص کردن سطر و ستون
  display.println("ladypi"); // پیام مورد نظر 
  display.display();
  delay(2000);
  display.clearDisplay();


}

void loop() {}

 

در شروع برنامه از سه کتابخانه استفاده شده است. برای نمایشگر ال سی دی از آبجکت استفاده می‌کنیم. آبچکت از ۵ پارامتر و مشخص کردن پایه های ال سی دی تشکیل شده است.

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

// Initialize LCD object for software SPI
// Adafruit_PCD8544(CLK,DIN,D/C,CE,RST);
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

 

در فانکشن void Setup، به ترتیب سریال مانیتور، دستور فعال شدن ال سی دی،تنظیم کنتراست نمایشگر انجام می‌شود.

 Serial.begin(9600); // ارتباط سریال

  // معرفی نمایشگر
  display.begin();

  // تنظیم کنترا
  display.setContrast(57);

 

نمایش یک متن در نمایشگر LCD NOKIA5110

برای نمایش متن در نمایشگر دقیقا از دستورات OLED استفاده می‌کنیم. سایز نمایش متن، رنگ نمایش متن، انتخاب مکان نما مشخص می‌شود.

// نمایش متن
  display.setTextSize(2); // سایز نمایش محتوا
  display.setTextColor(BLACK); // رنگ متن
  display.setCursor(5,5); // مشخص کردن سطر و ستون
  display.println("ladypi"); // پیام مورد نظر 
  display.display();
  delay(2000);
  display.clearDisplay();
#include <SPI.h>
#include <Adafruit_GFX.h> // فراخوانی کتابخانه
#include <Adafruit_PCD8544.h> // فراخوانی کتابخانه

// معرفی پایه های ال سی دی برای ارتباط spi
// Adafruit_PCD8544(CLK,DIN,D/C,CE,RST);
// طبق ترتیب بالا پایه های متصل به آردوینو رامشخص کنید
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

int rotatetext = 1;

void setup()   {
  Serial.begin(9600); // ارتباط سریال

  // معرفی نمایشگر
  display.begin();

  // تنظیم کنترا
  display.setContrast(57);

  // پاک کردن حافظه بافر
  display.clearDisplay();

// Scaling Font Size
display.setTextColor(BLACK);
display.setCursor(0,0);
display.setTextSize(2);
display.println("LADYPI");
display.display();
delay(2000);
display.clearDisplay();
}

void loop() {}

 

نمایش متن روی ال سی دی Nokia5110 - دیجی اسپارک

 

نمایش عدد در نمایشگر LCD NOKIA

برای نمایش عدد در نمایشگر LCD از کد زیر استفاده می‌کنیم.

// Display Numbers
display.setTextSize(1);
display.setCursor(0,0);
display.println(123456789);
display.display();
delay(2000);
display.clearDisplay();
#include <SPI.h>
#include <Adafruit_GFX.h> // فراخوانی کتابخانه
#include <Adafruit_PCD8544.h> // فراخوانی کتابخانه

// معرفی پایه های ال سی دی برای ارتباط spi
// Adafruit_PCD8544(CLK,DIN,D/C,CE,RST);
// طبق ترتیب بالا پایه های متصل به آردوینو رامشخص کنید
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

//int rotatetext = 1;

void setup()   {
  Serial.begin(9600); // ارتباط سریال

  // معرفی نمایشگر
  display.begin();

  // تنظیم کنترا
  display.setContrast(57);

  // پاک کردن حافظه بافر
  display.clearDisplay();

 // Display Numbers
display.setTextSize(1);
display.setCursor(0,0);
display.println(123456789);
display.display();
delay(2000);
display.clearDisplay();

}

void loop() {}

 

نمایش اعداد روی ال سی دی Nokia5110 - دیجی اسپارک

 

چرخش متن در نمایشگر LCD NOKIA5110

برای چرخش متن در نمایشگر LCD از کد زیر استفاده می‌کنیم.

// Text Rotation
while(1)
{
	display.clearDisplay();
	display.setRotation(rotatetext);
	display.setTextSize(1);
	display.setTextColor(BLACK);
	display.setCursor(0,0);
	display.println("Text Rotation");
	display.display();
	delay(1000);
	display.clearDisplay();
	rotatetext++;
}
#include <SPI.h>
#include <Adafruit_GFX.h> // فراخوانی کتابخانه
#include <Adafruit_PCD8544.h> // فراخوانی کتابخانه

// معرفی پایه های ال سی دی برای ارتباط spi
// Adafruit_PCD8544(CLK,DIN,D/C,CE,RST);
// طبق ترتیب بالا پایه های متصل به آردوینو رامشخص کنید
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

int rotatetext = 1;

void setup()   {
  Serial.begin(9600); // ارتباط سریال

  // معرفی نمایشگر
  display.begin();

  // تنظیم کنترا
  display.setContrast(57);

  // پاک کردن حافظه بافر
  display.clearDisplay();

 // Text Rotation
while(1)
{
 display.clearDisplay();
  display.setRotation(rotatetext);
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0,0);
  display.println("Text Rotation");
  display.display();
  delay(1000);
  display.clearDisplay();
  rotatetext++;
}

}

void loop() {}

 

چرخش متن روی ال سی دی Nokia 5110 - دیجی اسپارک

 

نمایش مستطیل در نمایشگر LCD NOKIA5110

برای نماش مستطیل در نمایشگر LCD از کد زیر استفاده می‌کنیم.

// Draw Rectangle
display.drawRect(0, 0, 60, 40, BLACK);
display.display();
delay(2000);
display.clearDisplay();


//Draw Filled Rectangle
display.fillRect(0, 0, 60, 40, BLACK);
display.display();
delay(2000);
display.clearDisplay();
#include <SPI.h>
#include <Adafruit_GFX.h> // فراخوانی کتابخانه
#include <Adafruit_PCD8544.h> // فراخوانی کتابخانه

// معرفی پایه های ال سی دی برای ارتباط spi
// Adafruit_PCD8544(CLK,DIN,D/C,CE,RST);
// طبق ترتیب بالا پایه های متصل به آردوینو رامشخص کنید
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

int rotatetext = 1;

void setup()   {
  Serial.begin(9600); // ارتباط سریال

  // معرفی نمایشگر
  display.begin();

  // تنظیم کنترا
  display.setContrast(57);

  // پاک کردن حافظه بافر
  display.clearDisplay();

// Draw Rectangle
display.drawRect(0, 0, 60, 40, BLACK);
display.display();
delay(2000);
display.clearDisplay();


//Draw Filled Rectangle
display.fillRect(0, 0, 60, 40, BLACK);
display.display();
delay(2000);
display.clearDisplay();

}

void loop() {}

 

نمایش مستطیل در نمایشگر LCD NOKIA5110 - دیجی اسپارک

 

نمایش مستطیل در نمایشگر LCD NOKIA5110 - دیجی اسپارک

 

نمایش دایره در نمایشگر LCD NOKIA5110

برای نماش دایره در نمایشگر LCD از کد زیر استفاده می‌کنیم.

//Draw Circle
display.drawCircle(20, 20, 20, BLACK);
display.display();
delay(2000);
display.clearDisplay();

//Draw Filled Circle
display.fillCircle(20, 20, 20, BLACK);
display.display();
delay(2000);
display.clearDisplay();
#include <SPI.h>
#include <Adafruit_GFX.h> // فراخوانی کتابخانه
#include <Adafruit_PCD8544.h> // فراخوانی کتابخانه

// معرفی پایه های ال سی دی برای ارتباط spi
// Adafruit_PCD8544(CLK,DIN,D/C,CE,RST);
// طبق ترتیب بالا پایه های متصل به آردوینو رامشخص کنید
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

int rotatetext = 1;

void setup()   {
  Serial.begin(9600); // ارتباط سریال

  // معرفی نمایشگر
  display.begin();

  // تنظیم کنترا
  display.setContrast(57);

  // پاک کردن حافظه بافر
  display.clearDisplay();

//Draw Circle
display.drawCircle(20, 20, 20, BLACK);
display.display();
delay(2000);
display.clearDisplay();

//Draw Filled Circle
display.fillCircle(20, 20, 20, BLACK);
display.display();
delay(2000);
display.clearDisplay();
}

void loop() {}

 

نمایش دایره در نمایشگر LCD NOKIA5110 - دیجی اسپارک

 

نمایش مثلث در نمایشگر LCD NOKIA5110

برای نماش مثلث در نمایشگر LCD از کد زیر استفاده می‌کنیم.

//Draw Triangle
display.drawTriangle(20, 0, 0, 40, 40, 40, BLACK);
display.display();
delay(2000);
display.clearDisplay();


//Draw Filled Triangle
display.fillTriangle(20, 0, 0, 40, 40, 40, BLACK);
display.display();
delay(2000);
display.clearDisplay();
#include <SPI.h>
#include <Adafruit_GFX.h> // فراخوانی کتابخانه
#include <Adafruit_PCD8544.h> // فراخوانی کتابخانه

// معرفی پایه های ال سی دی برای ارتباط spi
// Adafruit_PCD8544(CLK,DIN,D/C,CE,RST);
// طبق ترتیب بالا پایه های متصل به آردوینو رامشخص کنید
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);

int rotatetext = 1;

void setup()   {
  Serial.begin(9600); // ارتباط سریال

  // معرفی نمایشگر
  display.begin();

  // تنظیم کنترا
  display.setContrast(57);

  // پاک کردن حافظه بافر
  display.clearDisplay();

//Draw Triangle
display.drawTriangle(20, 0, 0, 40, 40, 40, BLACK);
display.display();
delay(2000);
display.clearDisplay();


//Draw Filled Triangle
display.fillTriangle(20, 0, 0, 40, 40, 40, BLACK);
display.display();
delay(2000);
display.clearDisplay();
}

void loop() {}

 

نمایش مثلث در نمایشگر LCD NOKIA5110 - دیجی اسپارک

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۹ دیدگاه

  • سلام این ال سی دی رو از دانشجوکیت خریدم و نتونستم با کدهای اینترنت ازش دیتا بگیرم الان با کد شما راه اندازی شد
    پس از مدت ها دارم ازش استفاده میکنم سپاس فراوان

  • سلام
    ممنون از سایت خوبتون من وقتی میخواهم کتابخانه را نصب کنم خطایFailed to install library: Adafruit PCD8544 Nokia 5110 LCD library:1.0.2.
    Error: 13 INTERNAL: Library install failed: creating temp dir for extraction: mkdir C:\Users\Amirali\Documents\Arduino\libraries: The system cannot find the file specified. را میده من باید چه کار کنم؟

  • با سلام
    من میخواهم ورودی رو از کاربر بگیرم و متن رو در ال سی دی نمایش بدم لطفاً راهنمایی فرمایید

    • با سلام
      کاربر گرامی امکان بررسی کد جدید در آموزش ها فراهم نیست. در صورت امکان آموزش داده خواهد شد.