آردوینو Arduinoمطالب علمیویدیو

راه اندازی نمایشگر Nokia5110 با آردوینو

NOKIA 5110 یک نمایشگر ( LCD ) کوچک ، اما فوق العاده !

6663

کارایی، قیمت مناسب و سازگاری کامل با برد آردوینو ، باعث شده است نمایشگر نوکیا 5110  به سرعت به یک نمایشگر معروف و پرکاربرد در بسیاری از پروژه ها تبدیل گردد. این نمایشگر که در ابتدا ویژه گوشی های تلفن همراه تولید شده است با قرار گرفتن بر روی برد کمکی به شما این امکان را می دهد به سادگی از آن در پروژه خود استفاده نمایید.

این نمایشگر از کنترلر PCD8544  استفاده می نماید که در نمایشگر های Nokia 3310 نیز استفاده شده است. PCD8544 یک کنترلر کم مصرف می باشد که برای به کارگیری نمایشگر های دارای 84 ردیف و  84 ستون طراحی گردیده است. ارتباط PCD8544 با میکروکنترل ها از طریق یک رابط سریال باس انجام می پذیرد و برخلاف نمایشگرهای ماتریسی موجود در بازار ایران برای اتصال نمایشگر به برد آردوینو تعداد کمتری از پین ها (حداکثر 5 پین) اشغال می گردد، همچنین بک لایت نمایشگر باعث می شود استفاده از آن در محیط های کم نور و یا شب به راحتی امکان پذیر باشد.

 

ویژگی ها:

  1. ولتاژ اعمالی : 2.7 تا 3.3 ولت
  2. اندازه : 46x46x5 میلیمتر
  3. جریان اعمالی : کمتراز 5 میلی آمپر(برای نوز زمینه خاموش) و کمتر از 20 میلی آمپر برای نور زمینه روشن
  4. دمای نگه داری : -10 تا 70 درجه سانتی گراد
  5. رابط : سریال SPI
  6. کنترلر LCD : PCD8544
  7. دمای کاری : 0 تا 50 درجه سانتی گراد

photo 2017 12 24 12 12 27

پایه ها:

1. RST——— reset
2. CE———- chip selection
3. DC———- data/commands choice
4. DIN——— serial data line(MOSI)
5. CLK——— serial Clock
6. 3.3V——– VCC
7. LIGHT——- backlight control terminal
8. GND——— power negative

 

photo 2017 12 24 12 08 06

توضیحات

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

 

اتصالات :

Untitled Sketch bb

 

فیلم راه اندازی :

توضیحات بیشتر به همراه نحوه عملکرد پروژه را میتوانید در ویدئوی زیر مشاهده کنید

 

 

کد برنامه:

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
 
 
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);
 
void setup()   {
  display.begin();
  // init done
  
  // you can change the contrast around to adapt the display
  // for the best viewing!
  display.setContrast(50);
 
  display.display(); // show splashscreen
  delay(2000);
  display.clearDisplay();
 
  //2 noghte ba 4 pixel
  display.drawPixel(15, 15, BLACK);
  display.drawPixel(15, 16, BLACK);
  display.drawPixel(16, 15, BLACK);
  display.drawPixel(16, 16, BLACK);
  
  display.drawPixel(15, 25, BLACK);
  display.drawPixel(15, 26, BLACK);
  display.drawPixel(16, 25, BLACK);
  display.drawPixel(16, 26, BLACK);
  
  display.display();
  delay(2000);
  display.clearDisplay();
  
 
 
  
 display.drawRect(20, 20, 40, 20, BLACK);
    display.display();
    delay(1500);
    display.clearDisplay();
 
  display.fillRect(00, 00, 88, 44, BLACK);
    display.display();
    delay(1500);
 
  display.drawCircle(42, 24, 15, WHITE);
   display.display();
   delay(1500);
   display.clearDisplay();
  display.drawRoundRect(10, 10, 65, 22, 8, BLACK);
   display.display();
   delay(1500);
   display.clearDisplay();
 
 
 display.fillTriangle(0, 0, 5, 40, 50, 40, BLACK);
   display.display();
   delay(1500);
   display.clearDisplay();
  
  display.drawTriangle(3, 3, 3, 15, 25, 30, BLACK);
  display.display();
  delay(1500);
  display.clearDisplay();
 
 
 
  display.setTextColor(WHITE, BLACK); // 'inverted' text
  display.setCursor(3,0);
  display.println("ARDUINO With:");
  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(10,25);
  display.println("www.ECA.ir");
  
  display.display();
  delay(1500);
  display.clearDisplay();
  
display.setTextSize(1);
 for (int i = 0; i <= 4; i++)
  {
    
   display.setRotation(i);
   display.println("www.ECA.ir");
   display.display();
      display.display();
      delay(1500);
      display.clearDisplay();
  }
  }
  
 
void loop(){}

کتابخانه مورد استفاده در این برنامه SPI و Adafruit_GFX  میباشد.

https://github.com/PaulStoffregen/SPI/archive/master.zip

https://github.com/adafruit/Adafruit-GFX-Library/archive/master.zip

جهت اضافه کردن کتابخانه در آردوینو از آموزش زیر استفاده کنید :

 

توابع کتابخانه  LCD نوکیا 5110 در آردوینو

Untitled 1

تابع رسم خط

drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color)

x0 و y0 : مختصات x و y ابتدای خط

x1 وy1 : مختصات x و y انتهای خط

Color : رنگ خط، BLACK یا WHITE میتونه بگیره

ورودی Color  همیشه به همین شکله برای همین در بخش های بعدی توضیحی داده نمیشه!

تابع رسم نقطه

drawPixel(int16_t x, int16_t y, uint16_t color)

و  y : مختصات نقطه

تابع رسم مستطیل تو خالی

drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)

x و y : مختصات نقطه بالا و گوشه سمت چپ مربع یا مستطیل

w : طول

h : عرض(ارتفاع)

تابع رسم مستطیل تو پر

fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color)

x و y : مختصات نقطه بالا و گوشه سمت چپ مربع یا مستطیل

w : طول

h : عرض(ارتفاع)

تابع رسم دایره تو خالی

drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)

x و y : مختصات مرکز دایره

r : شعاع دایره

تابع رسم دایره تو پر

fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color)

x و y : مختصات مرکز دایره

r : شعاع دایره

تابع  رسم مثلث تو خالی

drawTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,int16_t x2, int16_t y2, uint16_t color)

x0 و y0 : مختصات راس اول مثلت

x1 و y1 : مختصات راس دوم مثلت

x2 و y2 : مختصات راس سوم مثلت

تابع رسم مثلث تو پر

fillTriangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1,int16_t x2, int16_t y2, uint16_t color)

x0 و y0 : مختصات راس اول مثلت

x1 و y1 : مختصات راس دوم مثلت

x2 و y2 : مختصات راس سوم مثلت

تابع رسم مربع با گوشه های گرد شده

drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,int16_t radius, uint16_t color)

x و y : مختصات نقطه بالا و گوشه سمت چپ مربع یا مستطیل

w : طول

h : عرض(ارتفاع)

radius برای تعیین میزان گردی گوشه های مربع

تابع رسم یه مربع تو پر با گوشه های گرد شده

fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,int16_t radius, uint16_t color)

x و y : مختصات نقطه بالا و گوشه سمت چپ مربع یا مستطیل

w : طول

h : عرض(ارتفاع)

radius برای تعیین میزان گردی گوشه های مربع

تابع تعیین اندازه متن

setTextSize(uint8_t s)

s : اندازه متن (0 تا 5)

تابع تعیین موقعیت مکان نما

setCursor(int16_t x, int16_t y)

x و y : مختصات مد نظر

تابع تعیین رنگ متن

setTextColor(uint16_t c)

c : رنگ متن

تابع تعیین رنگ متن و پس زمینه متن

setTextColor(uint16_t c, uint16_t bg)

c : رنگ متن

bg : رنگ پیش(پس!) زمینه متن

تابع تعیین نحوه نمایش اطلاعات(چرخش)

setRotation(uint8_t r)

0 : بالا به پایین

1 : چپ به راست

2 : پایین به بالا

3 : راست به چپ

تابع نمایش متن و رفتن به خط بعدی

println(“Matn”)

تابع نمایش متن

print(“matn”)

تابع نمایش تک کاراکتر

write(70)

بجای عدد 70 میتونید کد اسکی کاراکتر مورد نظرتون رو بنویسین.

تابع نمایش  تصویر

drawBitmap (int16_t x, int16_t y, uint8_t *bitmap,int16_t w, int16_t h, uint16_t color)

x , y : مختصات شروع نمایش عکس(مختصات نقطه گوشه سمت چپ بالای عکس)

W : طول عکس

H : عرض(ارتفاع) عکس

 

تابع پاک کردن اطلاعات از صفحه نمایش

clearDisplay()

 

DSC03694

نوشته های مشابه

1 دیدگاه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا