پروژه راه اندازی LCD نوکیا 5110 با آردوینو
LCD نوکیا 5110 با آردوینو
در این آموزش قراره پروژه ی راه اندازی LCD نوکیا 5110 با آردوینو رو آموزش بدیم که یک سری تصویر و کاراکتر روی lcd نمایش میدیم و با معرفی کتابخونه ، دستورات این lcd رو معرفی میکنیم و با نحوه اتصال پایه های lcd nokia 5110 به آردوینو هم آشنا میشیم.
ما برای استفاده از این آی سی از کتابخونه ی سایت adafruit استفاده میکنیم که و باید برای تعیین پایه های lcd برای آردوینو از تابع زیر استفاده کنیم:
1 2 3 4 5 6 |
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3); // pin 7 - Serial clock out (SCLK) // pin 6 - Serial data out (DIN) // pin 5 - Data/Command select (D/C) // pin 4 - LCD chip select (CS) // pin 3 - LCD reset (RST) |
دانلود کتابخانه LCD 5110:
برای راه اندازی این lcd به 3 کتابخونه نیاز داریم ، یکی spi که دیفالت روی نرم افزار آردوینو وجود داره و 2 کتابخونه ی زیر که بهتره از لینک زیر و از وبسایت github کتابخانه رو دانلود کنین تا اخرین ورژن اون رو داشته باشین.
و کتابخونه راه اندازی گرافیکی :
اسم display هم در تابع بالا ، درواقع کلاسیه که تعریف میکنیم و بقیه دستور هارو باید با display معرفی کنیم ، مثل تابع begin:
1 |
display.begin(); |
توابع کتابخانه LCD نوکیا 5110 در آردوینو
تابع رسم خط
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 همیشه به همین شکله ، پس روی دستورات پایین تکرار نمیکنم که 2 حالت داره فقط 😉
تابع رسم نقطه
1 |
drawPixel(int16_t x, int16_t y, uint16_t color) |
x و y : مختصات نقطه
تابع رسم مستطیل تو خالی
1 |
drawRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color) |
x و y : مختصات نقطه بالا و گوشه سمت چپ مربع یا مستطیل
w : طول
h : عرض(ارتفاع)
تابع رسم مستطیل تو پر
1 |
fillRect(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t color) |
x و y : مختصات نقطه بالا و گوشه سمت چپ مربع یا مستطیل
w : طول
h : عرض(ارتفاع)
تابع رسم دایره تو خالی
1 |
drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color) |
x و y : مختصات مرکز دایره
r : شعاع دایره
تابع رسم دایره تو پر
1 |
fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color) |
x و y : مختصات مرکز دایره
r : شعاع دایره
تابع رسم مثلث تو خالی
1 |
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 : مختصات راس سوم مثلت
تابع رسم مثلث تو پر
1 |
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 : مختصات راس سوم مثلت
تابع رسم مربع با گوشه های گرد شده
1 |
drawRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,int16_t radius, uint16_t color) |
x و y : مختصات نقطه بالا و گوشه سمت چپ مربع یا مستطیل
w : طول
h : عرض(ارتفاع)
radius برای تعیین میزان گردی گوشه های مربع
تابع رسم یه مربع تو پر با گوشه های گرد شده
1 |
fillRoundRect(int16_t x0, int16_t y0, int16_t w, int16_t h,int16_t radius, uint16_t color) |
x و y : مختصات نقطه بالا و گوشه سمت چپ مربع یا مستطیل
w : طول
h : عرض(ارتفاع)
radius برای تعیین میزان گردی گوشه های مربع
تابع تعیین اندازه متن
1 |
setTextSize(uint8_t s) |
s : اندازه متن (0 تا 5)
تابع تعیین موقعیت مکان نما
1 |
setCursor(int16_t x, int16_t y) |
x و y : مختصات مد نظر
تابع تعیین رنگ متن
1 |
setTextColor(uint16_t c) |
c : رنگ متن
تابع تعیین رنگ متن و پس زمینه متن
1 |
setTextColor(uint16_t c, uint16_t bg) |
c : رنگ متن
bg : رنگ پیش(پس!) زمینه متن
تابع تعیین نحوه نمایش اطلاعات(چرخش)
1 |
setRotation(uint8_t r) |
0 : بالا به پایین
1 : چپ به راست
2 : پایین به بالا
3 : راست به چپ
تابع نمایش متن و رفتن به خط بعدی
1 |
println(“Matn”) |
توضیح میخواد واقعا ؟ 😀
تابع نمایش متن
1 |
print(“matn”) |
این هم؟ 😀
تابع نمایش تک کاراکتر
1 |
write(70) |
بجای عدد 70 میتونید کد اسکی کاراکتر مورد نظرتون رو بنویسین.
تابع نمایش تصویر
1 |
drawBitmap (int16_t x, int16_t y, uint8_t *bitmap,int16_t w, int16_t h, uint16_t color) |
x , y : مختصات شروع نمایش عکس(مختصات نقطه گوشه سمت چپ بالای عکس)
W : طول عکس
H : عرض(ارتفاع) عکس
تابع پاک کردن اطلاعات از صفحه نمایش
1 |
clearDisplay() |
خب این ها تابع هایی بودن که با کتابخونه ی زیر میتونیم ازشون استفاده کنیم.
حالا با توجه به این تابع ها 2 پروژه زیر رو میبندیم :
پروژه LCD نوکیا 5110 با آردوینو
در پروژه اول از تابع های معرفی شده بالا استفاده میکنیم تا عملکرد همشو ببینیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
#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("levinic.ir"); display.display(); delay(1500); display.clearDisplay(); display.setTextSize(1); for (int i = 0; i <= 4; i++) { display.setRotation(i); display.println("Levinic.ir"); display.display(); display.display(); delay(1500); display.clearDisplay(); } } void loop(){} |
سعی کردم کد رو خیلی ساده بنویسم تا مبتدی ها هم به مشکل نخورن ، در بعد از استفاده از هر تابع یک تابع تاخیر و دستور پاک کردن lcd اومده که اگر میخواین کدتون حرفه ای تر بنظر برسه و مرتب تر باشه میتونین اون کد هارو یک تابع تعریف کنین و هر دفعه بجای 3 خط کد ، اون تابع رو صدا بزنین.
پروژه نمایش تصویر LCD نوکیا 5110 با آردوینو
برای نمایش تصویر باید یک تصویر رو در سایز 88*44 داشته باشین یا ضریبی از این سایز و اون رو با نرم افزار paint با فرمت BMP ذخیره کنین.
سپس اون رو در نرم افزار زیر باز کنین:
اگر تصویرتون عمودیه در نرم افزار گزینه Vertical رو انتخاب کنین و در صورتی که افقیه گزینه ی Horizontal رو انتخاب کنین.
تصاویر و خروجی نرم افزار کد زیر رو میتونین ازین جا دانلود کنین:
بعد از ذخیره کردن ، خروجی کدی هست که باید به شکل زیر در کد قرار بدین:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
#include <SPI.h> #include <Adafruit_GFX.h> #include <Adafruit_PCD8544.h> // Software SPI (slower updates, more flexible pin options): // pin 7 - Serial clock out (SCLK) // pin 6 - Serial data out (DIN) // pin 5 - Data/Command select (D/C) // pin 4 - LCD chip select (CS) // pin 3 - LCD reset (RST) Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3); // Hardware SPI (faster, but must use certain hardware pins): // SCK is LCD serial clock (SCLK) - this is pin 13 on Arduino Uno // MOSI is LCD DIN - this is pin 11 on an Arduino Uno // pin 5 - Data/Command select (D/C) // pin 4 - LCD chip select (CS) // pin 3 - LCD reset (RST) // Adafruit_PCD8544 display = Adafruit_PCD8544(5, 4, 3); // Note with hardware SPI MISO and SS pins aren't used but will still be read // and written to during SPI transfer. Be careful sharing these pins! unsigned char levinic_Horizontal [] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x3F, 0xEF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x1F, 0xEF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x0F, 0xCF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x03, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x03, 0x8F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xF0, 0x00, 0x03, 0x8F, 0x80, 0x03, 0xFF, 0x78, 0xF7, 0x9C, 0x7B, 0xF3, 0xFF, 0x03, 0x0F, 0x80, 0x07, 0xFF, 0x78, 0xF7, 0xBC, 0x7B, 0xF7, 0xFF, 0x0F, 0x0F, 0x80, 0x07, 0xFF, 0x78, 0xF7, 0xBE, 0x7B, 0xF7, 0xFF, 0xFF, 0x0F, 0x80, 0x07, 0xFF, 0x78, 0xF7, 0xBE, 0x7B, 0xF7, 0xFF, 0xFF, 0x0F, 0x80, 0x07, 0x80, 0x78, 0xF7, 0xBF, 0x7B, 0xF7, 0x80, 0xFF, 0x0F, 0x80, 0x07, 0xF0, 0x78, 0xF7, 0xBF, 0xFB, 0xF7, 0x80, 0xFF, 0x0F, 0x80, 0x07, 0xF0, 0x78, 0xF7, 0xBF, 0xFB, 0xF7, 0x80, 0x0F, 0x0F, 0x80, 0x07, 0xF0, 0x78, 0xF7, 0xBF, 0xFB, 0xF7, 0x80, 0x03, 0x0F, 0x80, 0x07, 0xF0, 0x78, 0xF7, 0xBF, 0xFB, 0xF7, 0x80, 0x03, 0x0F, 0xFF, 0xE7, 0x80, 0x78, 0xF7, 0xBD, 0xFB, 0xF7, 0x80, 0x03, 0x8F, 0xFF, 0xE7, 0xFF, 0x7F, 0xE7, 0xBD, 0xFB, 0xF7, 0xFF, 0x03, 0x8F, 0xFF, 0xE7, 0xFF, 0x3F, 0xC7, 0xBC, 0xFB, 0xF7, 0xFF, 0x0F, 0xC7, 0xFF, 0xE7, 0xFF, 0x1F, 0x87, 0xBC, 0xFB, 0xF7, 0xFF, 0x1F, 0xC7, 0xFF, 0xE3, 0xFF, 0x0F, 0x07, 0xBC, 0x71, 0xE3, 0xFF, 0x3F, 0xE0, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xF0, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x38, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x03, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xC0, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x3F, 0xC7, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x0F, 0x83, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x0F, 0x83, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x0F, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char levinic_Vertical [] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x0E, 0x00, 0x7F, 0xC0, 0x00, 0x00, 0x0E, 0x00, 0xFF, 0xE0, 0x00, 0x00, 0x0E, 0x00, 0xF0, 0xF0, 0x00, 0x00, 0x0E, 0x01, 0xC0, 0x38, 0x00, 0x00, 0x0E, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x0E, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x0E, 0x01, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x70, 0x00, 0x00, 0x00, 0x01, 0xE0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE0, 0x00, 0x00, 0x00, 0x00, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x71, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x71, 0xC0, 0x03, 0x00, 0x00, 0x00, 0x3B, 0x80, 0x03, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x01, 0x80, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0x00, 0x0E, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x73, 0xC0, 0x00, 0x00, 0x03, 0x80, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xF0, 0x03, 0x00, 0x00, 0x00, 0x78, 0xF0, 0x03, 0x80, 0x00, 0x00, 0x70, 0x70, 0x03, 0x80, 0x00, 0x00, 0x70, 0x70, 0x01, 0x80, 0x00, 0x00, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x03, 0x80, 0x00, 0x00, 0x70, 0x70, 0x03, 0x80, 0x00, 0x00, 0x70, 0x70, 0x03, 0x80, 0x00, 0x00, 0x70, 0x70, 0x03, 0x80, 0x00, 0x00, 0x70, 0x70, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x03, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x40, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x40, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; void setup() { display.begin(); // you can change the contrast around to adapt the display // for the best viewing! display.setContrast(50); display.display(); delay(1500); display.clearDisplay(); display.setRotation(1); display.drawBitmap(0, 0, levinic_Vertical, 48, 84, BLACK); display.display(); delay(2500); display.clearDisplay(); display.setRotation(3); display.drawBitmap(0, 0, levinic_Vertical, 48, 84, BLACK); display.display(); delay(2500); display.clearDisplay(); // namayesh aks display.setRotation(2); // namayesh aks az bala be paiin display.drawBitmap(0, 0, levinic_Horizontal, 84, 48, BLACK); display.display(); delay(1500); display.clearDisplay(); display.setRotation(0); //namayesh akas az paiin be bala display.drawBitmap(0, 0, levinic_Horizontal, 84, 48, BLACK); display.display(); delay(1500); display.clearDisplay(); } void loop(){} |
فیلم از نحوه کار lcd : (میزم خیلی نا مرتب بود ، ببخشید برای فیلم برداری بد 😀 )
آموزش راه اندازی LCD نوکیا 5110 جلسه اول به پایان رسید ، در جلسه آینده کد هارو حرفه ای تر میزنیم و این lcd رو با آی سی لاجیک کانورتر طراحی میکنیم ، بدون این آی سی تصویر برای مدت های طولانی پایدار نیست و برای کاربرد غیر آزمایشگاهی خیلی مناسب نیست (که خیلی از سایت های فارسی اصلا این رو ذکر نکردن در آموزش هاشون!)
پس جلسه دوم رو هم از دست ندین!
آرزوی موفقیت برای همه 🙂
خیلی کامل توضیح داداید و عالی منتظر آموزش دومتونم هستیم .بایک دنیا سپاس
سلام. مخلصیم. آموزش دوم هم آماده شده! پایین مطلب لینکش هست
سلام
در پی سوالات گذشته درمورد فارسی نویسی:
نظرتون در مورد کدنویسی اردوینو در کدویژن و پروگرام کردن اردوینو توسط این نرم افزار چیه؟
فکر می کنم با کد ویژن میشه روی فارسی نویسی کار کرد
چون کتاب خانه هاش موجود هست
راستی یه سوال دیگم در رابطه با اتصال locgic levelconverterدوکاناله به ال سی دی
همینی که اموزششو گذاشتین
ببخشید ولی من نفهمیدم کدوم پایه اردوینو و کدوم پایه ال سی دی هش وصل میشه
سلام .
اینم یک راه هست که میتونین امتحان کنین ، ولی خب ممکنه یک نفر کدویژن بلد نباشه…
+چون گفتم شکل پایه ها در lcd متفاوته متوجه نشدین احتمالا. توی شکل مدار lcd 5110 نیست و lcd 3110 استفاده شده ، تفاوتی باهم در چیپست ندارن ، فقط پایه های 3310 طبق توضیح زیر تصویره .یعنی باید به این نکته توجه کنین که ترتیب پایه های lcd در 5110 تفاوت داره.
بخشید .ایا تابعی است که برای نوشتن متن(از نظر کمرنگی یا پر رنگی)داشته باشه؟
ممنون
سلام! یعنی میخاین با چند کنتراست بنویسین؟
برای تغییر کلی کنتراست چند خط توی کتابخونه هست ک میشه تغییرش داد ولی همزمان ۲نوع کنتراست داشتن شدنی نیست!
سلام
من فکر کردم که باید برای فارسی نویسی متن فارسی رو تبدیل به کد هگز کرد واون رو توی دستورprintln(“کد هگز متن فارسی ”)قرارداد آیا درست فکر کردم؟
این کار رو انجام دادم ولی نمایشگر عینا حروف هگز رو نمایش داد( به طور مثال: میخوام عبارت به نام خدا رو نمایش بدم کدهگزش هست=>d8-a8-d9-87-20-d9-86-d8-a7-d9-85-20-d8-ae-d8-af-d8-a7-)
نمایشگر همین کد رو عینا نمایش داد
نمی دونم چی کار کنم کل پروژه گیر همین متن فارسیه
اگه بخوام از عکس استفاده کنم هم به دلایلی مطلوب برای پروژه نیست
کتاب خانه ای چیزی نداره که فارسی رو بشناسه؟
همین الان وقتی تو دستور println(“Matn”)متن فارسی مینویسم به صورت حروف نمدونم چینیه ژاپنیه خط خطیه نمایش میده خخخ
print(“Matn”) هم همین جوریه
میدونم سرتون شلوغه ولی ممنون میشم اگه راهنماییم کنین
سلام.همه چیو تست کردی 😀 فکر میکنم منظورم رو بد رسوندم . منظورم از همون کد های هگز تبدیل عکس به تابع ای از کد های هگز بود.
غیر از استفاده از تصویر فقط یک راه وجود داره(شاید راه دیگه ای هم وجود داره که من اشنا نباشم) اونم استفاده از متغیر های String هستش. یادمه این کارو با Avr انجام میدادم و راحت میشد فارسی نمایش داد اما متاسفانه الان نمیتونم برای آردوینو تستش کنم..
این کتابخونه رو تست کن:
https://github.com/arduino/Arduino/issues/5724
از صحت عملکرد کتابخونه خبر ندارم ، امیدوارم جواب بده ؛ اگه نده کتابخونه ی مشابه در Avr وجود داره ، باید مشابه همون برای آردوینو نوشته بشه.
با سلام و تشکر . من کدی که شما(کد نمایش تصویر)که گذاشته بودید را اپلود کردم و مشکلی نداشت.اما وقتی میخواهم عکس مورد نظر خودم را نشان دهم,عکسی نقطه ای یا همان دون دونی می اید.مشکل این چیه؟ با تشکر
سلام
نمیتونم دقیقا نظر بدم چون ممکنه خیلی دلیل ها باشه!
ولی توی تبدیل عکس حتما دقت کنین و به سایز و گزینه ی Vertical و Horizontal توجه کنین. حتی طول و عرض اشتباه باعث ایجاد مشکل توی نمایش تصویر میشه.
سلام
من درحال ساخت پروژه هستم
میشه بفرمایید تابع فارسی نویسیش چه طور هست؟؟
خسته نباشید
سلام ، برای فارسی نویسی باید از کد های هگز استفاده کنین. برنامه هایی هستن که به صورت مجزا کد هگز رو میسازن و باید اونهارو فقط نمایش بدین.
سلام
اگه بخوایم از بورد اردوینو نانو استفاده کنیم کدوم بایه ها رو باید به ال سی دی متصل کنیم؟
ممنونم اگه جواب بدید
سلام.
تفاوتی نداره
مثل Uno
طبق آموزش باید با پایه های دیجیتال کارکنین و با دستور
Adafruit_PCD8544();
مشخص کنین lcd به کدوم پایه ها متصل شده.
خیلی متشکر از شما .واقعا از شما متشکرم.مشکل حل شد اما متاسفانه مینویسد که برد من (اردینوUNO) حافظه کافی ندارد اما برنامه بی نقص بود.
خواهش میکنم.
اونو نمیشه کاریش کرد دیگه !اگه امکان داره باید حجم برنامتون رو کم کنین یا از حافظه جانبی یا برد دیگه استفاده کنین.
موفق باشین
با سلام و تشکر . بسیار عالی و واضح بود ولی برنامه این ارور را میدهد:Arduino: 1.8.4 (Windows 10), Board: “Arduino/Genuino Uno”
Error compiling for board Arduino/Genuino Uno.
در ضمن تمام کتابخانه هایی که گذاشته بودید را بطور کامل نصب کردم.
با تشکر.
سلام ، خواهش میکنم.
متن ارور کامل نیست فکر میکنم.
لینک کتابخونه هارو توی مطلب تغییر دادم. ان شا ا.. مشکلتون حل میشه. تست کردم مشکل نداشت 🙂
بسیار جامع بود ممنون
بله این مطلب ی قسمت دیگه هم داره. خواهش میکنم 🙂