راه اندازی نمایشگر Nokia5110 با آردوینو
NOKIA 5110 یک نمایشگر ( LCD ) کوچک ، اما فوق العاده !
کارایی، قیمت مناسب و سازگاری کامل با برد آردوینو ، باعث شده است نمایشگر نوکیا 5110 به سرعت به یک نمایشگر معروف و پرکاربرد در بسیاری از پروژه ها تبدیل گردد. این نمایشگر که در ابتدا ویژه گوشی های تلفن همراه تولید شده است با قرار گرفتن بر روی برد کمکی به شما این امکان را می دهد به سادگی از آن در پروژه خود استفاده نمایید.
این نمایشگر از کنترلر PCD8544 استفاده می نماید که در نمایشگر های Nokia 3310 نیز استفاده شده است. PCD8544 یک کنترلر کم مصرف می باشد که برای به کارگیری نمایشگر های دارای 84 ردیف و 84 ستون طراحی گردیده است. ارتباط PCD8544 با میکروکنترل ها از طریق یک رابط سریال باس انجام می پذیرد و برخلاف نمایشگرهای ماتریسی موجود در بازار ایران برای اتصال نمایشگر به برد آردوینو تعداد کمتری از پین ها (حداکثر 5 پین) اشغال می گردد، همچنین بک لایت نمایشگر باعث می شود استفاده از آن در محیط های کم نور و یا شب به راحتی امکان پذیر باشد.
ویژگی ها:
- ولتاژ اعمالی : 2.7 تا 3.3 ولت
- اندازه : 46x46x5 میلیمتر
- جریان اعمالی : کمتراز 5 میلی آمپر(برای نوز زمینه خاموش) و کمتر از 20 میلی آمپر برای نور زمینه روشن
- دمای نگه داری : -10 تا 70 درجه سانتی گراد
- رابط : سریال SPI
- کنترلر LCD : PCD8544
- دمای کاری : 0 تا 50 درجه سانتی گراد
پایه ها:
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
توضیحات
پروژه ای که ما در نظر گرفتیم یک پروژه ی ساده برای کسایی که تازه وارد آموزش آردیونو شدن مناسب می باشد پروژه ی ما مربوط به نمایش اشکال هندسی و نمایش متن روی ال سی دی نوکیا می باشد نمایش اشکال هندسی نسبت به نمایش متن ، روی ال سی دی کمی سخت می باشد که ما آموزش قرار دادن این شکل های مختلف را قرار داده ایم در این پروژه شما میتوانید با مطالعه دقیق این بخش در سایت ECA مواردی همچون ترتیب اجرا شدن شکل ها ، اندازه شکل ها ، اندازه ضلع های مربع مستطیل و مثلث تغیر قطر دایره و یا حتی تو پر و تو خالی کردن اشکال در برنامه رو یاد بگیرید همچینین شما میتونید متن ECA که در اخر پروژه میاد رو به متن دل خواه خودتون تغیر بدین.
اتصالات :
فیلم راه اندازی :
توضیحات بیشتر به همراه نحوه عملکرد پروژه را میتوانید در ویدئوی زیر مشاهده کنید
کد برنامه:
#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 در آردوینو
تابع رسم خط
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()
سلام
نحوه نمایش متغیر روی ال سی دی چطوریه؟
باتشکر