آردوینو Arduino Uno آموزش آردوینو نمایشگر LCD

آموزش جامع کار با LCD کاراکتری در آردوینو

آموزش جامع lcd کاراکتری
نوشته شده توسط علیرضا قربانی

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

آموزش جامع کار با LCD کاراکتری – آموزش – آموزش آردوینو – پروژه آردوینو -arduino -آموزش-آموزش جامع کار با LCD کاراکتری-دیجی اسپارک

سخت افزار مورد نیاز

LCD 2*16

آردوینو Uno

 

توضیحات پایه‌ها

آموزش جامع راه اندازی LCD کاراکتری - دیجی اسپارک

نمایی از پین‌های یک LCD 2*16

همانطور که در تصویر بالا مشاهده میکنید، یک LCD 2*16 دارای ۱۶ پین می باشد که پین GND ، پیم شماره‌ی صفر و پین -Led ، پین شماره‌ی۱۶ میباشد. در ادامه به توضیح هرکدام از پین‌ها می‌پردازیم.

GND : این پین باید به زمین مدار متصل شود

Vcc : تغذیه  ال‌سی‌دی  می‌باشد که باید به ۵+ ولت DC متصل  شود

VEE : از این پین برای تنظیم کانتراست صفحه نمایش استفاده میشود و باید این پین را توسط یک پتانسومتر یا یک عدد مولتی‌ترن ۱۰ کیلواهم به زمین متصل کرد

Rs : این پین مربوط به رجیسترهای درایور LCD می‌باشد و آدرس خواندن و نوشتن در ال سی دی توسط این پایه مشخص میشود

R/W : هنگامی در حال نوشتن بر روی ال‌سی‌دی باشیم  این پین را صفر  و هنکامی در حال خواندن از روی ال‌سی‌دی باشیم،این پین را یک میکنیم . در پروژه‌های ساده و سطح پاین معمولا فقط بر روی LCD عملیات write انجام می‌شود بنابراین بهتر است برای صرفه جویی در پین‌های آردوینو ، پین R/W  را به زمین متصل کنیم.

EN : از این پین برای فعال یا غیرفعال کردن LCD استفاده می‌شود

پین‌های D0 تا D7  برای انتقال اطلاعات بر روی ال‌سی‌دی می‌باشند  که هم  میتوانیم از ۸ پین  و هم ۴ پین برای این عملیات استفاده کنیم.(در هنگام استفاده از ۸ پین کمی سرعت انتقال اطلاعات بر روی ال‌سی‌دی افزایش می‌یابد  و در مقابل مجبور به استفاده از پین‌های بیشتری می‌باشیم ، بنابر این ما برای نمایش اطلاعات از ۴ پین D4  تا D7 استفاده می‌کنیم)

led/+led- : این دو پین برای نور پیش‌زمینه LCD می باشد . Led+ باید به ۵+ ولت DC و Led- باید به GND متصل  شود(قابل  ذکر است میتوان این دو پین را آزاد گذاشت ولی در صورت استفاده نکردن از نور پس زمینه ، مشاهده متن درون ال‌سی‌دی بسیار دشوار می‌باشد).

 

برنامه‌نویسی

پلت‌فرم آردوینو دارای کتابخانه بسیار جامعی برای کار با ال سی دی می باشد.برای کد نویسی ال سی دی ابتدا باید  توسط دستور زیر کتابخانه Liquid Crystal Display را به فراخوانی کنیم.

#include <LiquidCrystal.h>

 

مرحله‌ی‌ بعدی ساخت یک شی از کلاس LiquidCrystal و همچنین تنظیم پایه‌های LCD می‌باشد . و باید همانند یکی از روش های زیر پایه‌های LCD را تنظیم نمود.

راه اندازی LCD دارای دو مد ۴ بیتی( استفاده از ۴ پین برای انتقال دیتا ) و مد ۸ بیتی(استفاده از ۸ پین برای انتقال دیتا) می باشد.

برای مد ۴ بیتی میتوان از دو نمونه‌ی زیر استفاده کرد  ، که نمونه اول هنگامی است که پین R/W را به زمین وصل کرده و فقط قصد نوشتن بر روی LCD را داریم  و نمونه‌ی دوم مربوط به زمانی است که  پین R/W به آردوینو متصل شده و هم قصد نوشتن بر روی LCD و هم خواندن دیتا از روی ال‌سی‌دی را داریم.

LiquidCrystal lcd(Rs, EN, D4, D5, D6, D7);
LiquidCrystal lcd(Rs, R/W, EN, D4, D5, D6, D7);

 

برای راه اندازی LCD در مد ۸ بیتی نیز می‌توان از دو نمونه‌ی زیر استفاده نمود که نمونه ی اول حالتی است که فقط قصد نوشتن بر روی LCD  و نمونه‌ی دوم حالتی است که هم قصد نوشتن و هم خواندن داریم ( مد ۴ بیتی به علت استفاده از پین های کمتر بیشتر مورد استفاده قرار می‌گیرد)

LiquidCrystal lcd(Rs, EN, D0, D1, D2, D3, D4, D5, D6, D7);
LiquidCrystal lcd(Rs, R/W, EN, D0, D1, D2, D3 , D4 , D5 , D6, D7);

 

 

کد زیر ، مثالی از تنظیم کردن پایه‌های LCD می‌باشد

۱۲->Rs

۱۱->R/W

۱۰->EN

و پین‌های ۵ تا ۲ به ترتیب به پین های D4 تا D7 نمایشگر متصل شده است

 

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

void setup()
{
  lcd.begin(16,1);
  lcd.print("hello, world!");
}

void loop() {}

 

 

توضیح توابع کتابخانه

 

 

begin()

توسط این تابع ، LCD را به آردوینو معرفی میکنیم .

lcd.begin(cols, rows)

cols تعداد ستون ها و rows تعداد سطر های ال‌سی‌دی را مشخص میکند.برای مثال برای راه اندازی یک  ال‌سی‌دی۲*۱۶  از قطعه کد زیر استفاده میکنیم:

lcd.begin(16 , 2);

 

 

 

clear()

توسط این تابع صفحه نمایش ال‌سی‌دی پاک می‌شود و مکان نما  به بالاترین نقطه سمت چپ LCD منتقل می‌شود.این تابع دارای فرمی به صورت زیر می‌باشد:

lcd.clear()

 

 

home()

این تابع مکان نما را به ابتدای ال‌سی‌دی یعنی همان ستون و سطر شماره صفر منتقل می‌کند.

lcd.home();

setCursor()

این تابع موقعیت مکان نما را بر روی صفحه نمایش مشخص میکند. از این تابع هنگامی که بخواهیم متنی را در یک موقعیت خاصی از LCD نمایش دهیم استفاده میشود.

فرم کلی تابع به صورت زیر می‌یاشد:

lcd.setCursor(col, row);

نکته بسیار مهم: شماره ی سطر و ستون از عدد صفر شروع می‌شود.

برای مثال هنگامی که میخواهیم به اولین ستون از سطر دوم برویم باید همانند قطعه کد زیر عمل کنیم:

lcd.setCursor(0, 1);

 

 

write()

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

int size=lcd.write('a');//این قطعه کد کاراکتر a را چاپ میکند و سایز آن را درون متغیر size میریزد

 

 

print()

توسط این تابع می‌توان رشته یا عدد را بر روی LCD به نمایش گذاشت. این تابع دارای دو ساختار مانند زیر می باشد:

lcd.print(data);
lcd.print(data, BASE);

در ساختار دوم هنگامی که از عدد استفاده میکنیم ، BASE فرمت نمایش عدد را مشخص میکند. برای مثال برای نمایش در مبنای ۲باید به جای BASE  کلمه BIN را قرار داد. همچنین برای نمایش در مبنای ۱۰ از DEC  ، در مبنای  ۸ از OCT  و مبنای ۱۶ از HEX استفاده میکنیم.

 

 

cursor()

توسط این تابع مکان‌نما به صورت یک underscore (زیر خط  مانند _ ) در مکانی که قرار است کاراکتری بعدی نوشته شود ، بر روی LCD نمایش داده می‌شود.

همچنین توسط  تابع noCursor زیر خط از روی صفحه نمایش حذف میشود.

lcd.cursor();// نمایش زیر خط
lcd.noCursor();//عدم نمایش زیر خط

 

 

blink()

توسط این تابع مکان نما به صورت یک مربع چشمک زن بر روی LCD نمایش داده میشود. توسط تابع noBlink نیز می‌توان مکان نما را از روی صفحه نمایش محو نمود.

lcd.blink();//نمایش مکان نما
 lcd.noBlink();//عدم نمایش مکان نما

 

 

 

noDisplay()

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

lcd.display();//خاموش کردن صفحه نمای
lcd.noDisplay();//روشن کردن صفحه نمایش

 

scrollDisplayRight()

با استفاده از این تابع تمام اطلاعات بر روی صفحه نمایش یک واحد ( یک ستون) به سمت راست منتقل می‌شود.فرم کلی این تابع به صورت زیر می‌باشد:

lcd.scrollDisplayRight();

 

scrollDisplayLeft()

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

lcd.scrollDisplayleft();

autoscroll()

این تابع باعث میشود که هر کاراکتر ، به سمت چپ جایی که مکان‌نمای LCD قرار دارد چاپ شود.

همچنین به وسیله ی تابع autoscroll می‌توان این حالت را غیر فعال کرد.

 

rightToLeft()

 

 

با استفاده از این تابع نوشته‌ها از سمت راست LCD به سمت چپ توشته می‌شوند.

تابع  rightToLeft نیز باعث به نمایش در آمدن نوشته‌ها از سمت چپ به راست می‌شود.

 

 

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

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 

 

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

 

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

 

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

علیرضا قربانی

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

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

۱۰۲ دیدگاه

    • سلام خیر
      oled دارای کتابخونه ای جدا می باشد. oled هم در لیست آموزش های پیش بینی شده قرار دارد.

  • سلام اقای قربانی ممنون بابت آموزشتون
    سوالی داشتم. از این کتابخانه میتوان در کدویژن هم استفاده کرد؟

  • آیا پروژه ها مختص یک برد آردوینو میباشند؟ یعنب این پروژه با آردوینو مگا ۲۵۶۰ قابل اجراست؟

  • درود
    ممنون بخاطر آموزش مفیدی که به اشتراک گذاشتید
    اگر پروژه ای درباره کنترل هوشمند کولر های آبی پیدا کردید لطفا منتشر کنید
    Swamp cooler همون کولرآبی است

  • با سلام
    ببخشید این را اینجا مطرح می کنم
    من با LCD nokia 5110 کار می کنم و از کتاب خونه ی #include کار می کنم می خوام که اندازه فونت را ت؛ییر بدم ولی هیچ جا کد مورد نظر را پیدا نکردم اگه میشه راهنمایی کنید

  • با سلام
    ببخشید این را اینجا مطرح می کنم
    من با LCD nokia 5110 کار می کنم و از کتاب خونه ی PCD8544 کار می کنم می خوام که اندازه فونت را تغییر بدم ولی هیچ جا کد مورد نظر را پیدا نکردم اگه میشه راهنمایی کنید

    • با سلام
      ضمن تشکر از توجه شما، برای راه اندازی این ال سی دی با برد راه انداز وبدون برد راه انداز نیاز به کتابخانه LiquidCrystal میباشد. تفاوت در راه اندازی با برد راه انداز این است که فقط ۴ پایه از آردوینو را اشغال میکند. ولی در حالت بدون راه انداز باید تمامی ۱۶ پایه را استفاده کنید.

  • سلام خسته نباشید
    دستتون درد نکنه بابات آموزش های خوبتون
    میخواستم بگم که در مورد پیکسل های ال سی دی توضیح بدید یا همان custom characters
    مثلا با استفاده از آن بتوان یک کلمه رو با انیمیشن یا بهش افکت داد نوشت…

  • سلام ببخشید یک سوال داشتم
    این توابعی که اینجا معرفی کردید رو میشه وقتی ال سی دی رو با تبدیل i2c وصل کردیم هم استفاده کرد؟
    چه جایی باید تغییر انجام بدیم؟
    پایه ها چه تغییری می‌کنند؟
    البته اگر بشه اتصال به node mcu رو بگید که عالی میشه چون فعلا Uno ندارم.
    ممنون

  • سلام من تمام این مراحل رو رفتم البته بدون مقاومت مشکل من اینه که ال سی دی ۱۶٫۲ من روشن میشه اما متن نمایش داده نمیشه از مثال خود اردوینو هم استفاده کردم نشد برای نشان دادن متن کدوم پین باد کار کنم یا چ کنم کلا ممنون

    • سلام
      در ابتدا کتابخانه LiquidCrystal را فرخوانی کنید. سپس مجددا اتصالات را بررسی کنید و اینکه در حالت عادی نیازی به استفاده از مقاومت و پتانسیومتر نیست. حال پس از اطمینان از اتصالات باید پین های مورد استفاده LCD، در کدها تعریف شود. به عنوان مثال اگر از پایه های ۱۲, ۱۱, ۵, ۴, ۳, ۲ استفاده کرده اید، در کدها باید صورت ;(LiquidCrystal lcd(12, 11, 5, 4, 3, 2 تعریف شود. مراحل را مجددا انجام دهید و در صورت برطرف نشدن مشکل از همین طریق اعلام نمایید تا بررسی گردد.

      • منم مشکل همین دوستمونو دارم اتصلاتو چک کردم توابع رو چک کردم سیم ها رو عوض کردم کاراکترهارو نشون میده ولی هرچی برنامه روش می ریزم اصلا تغییری نمیکنه

    • برنامه کاملا درسته تو پرتئوس شبیه سازیش کردم کار کرد وقتی برنامه رو اردوینو می ریزم ال سی دی روشن میشه ولی چیزی نشون نمیده برا اردوینو سالمه اتصلاتشو چندین بار عوض کردم چه با مقاومت چه با پتانسیومتر روشن میشه ولی چیزی نشون نمیده

  • سلام من طبق دستورات پیش رفتم اما ال سی دی هیچ واکنشی نشان نمیدهد و خطای از کامپایل کردن کد نیز ندارم ممنون میشم راهنمایی بفرمایید

  • با سلام و خسته نباشید.
    من ۲تا LCD 16*1 دارم هردوشون نصف کاراکترهاش خاموشه و نصفش روشن. هر دوشونم نو هستن.
    آیا LCD ها هر دوشون سوختن؟
    (میخواستم عکسشم براتون بفرستم ولی لینک مربوطه برای ارسال عکسو پیدا نکردم)

    ممنون میشم اگه پاسخ بدین. باتشکر از سایت خوبتون

    • با سلام و تشکر از شما
      لطفا مدل ال سی دی را اعلام کنید. همچنین دقت داشته باشید که برای راه اندازی LCD کاراکتری تمامی مدل‌هایی که ما تست کرده‌ایم با کتابخانه LiquidCrystal کارایی دارند. تنها مشکل عمده عدم اتصالات صحیح به برد می‌باشد.

        • با عرض سلام و خسته نباشید.
          مدل LCD: TS1610A-7/B
          از برد آردوینو Mega2560 استفاده میکنم.
          نحوه اتصالات هم :
          #include
          LiquidCrystal lcd(22, 23, 24, 25, 26, 27);
          void setup()
          {
          lcd.begin(16,1);
          }

          پایه های LCD به ترتیب:
          Rs=22
          EN=23
          D4=24
          D5=25
          D6=26
          D7=27

          • سلام مجدد
            از این کدها استفاده کنید و نتیجه را اعلام بفرمایید.
            #include

            LiquidCrystal lcd(………………….);
            void setup()
            {
            lcd.begin(16, 1); // put your LCD parameters here
            for (char i=47; i<۱۲۷; i++) // send 80 consecutive displayable characters to the LCD { lcd.print(i); delay(100); // this delay allows you to observe the addressing sequence } } void loop() { }

            • با سلام
              کدی که فرمودید رو زدم بازم همونطور ۸ ستون روشن میشن
              با این کد روی LCD نوشت:
              ۱۲۳۴۵۶/

                • با سلام.
                  char i = 40 :
                  ابتدا این علامتها نوشته میشه= /.,+*()
                  پس از ۸ ثانیه این علامتها نوشته میشه= /<-{|}xyz

                  • سلام مجدد
                    آقای مهندس وقتی برنامه خود مثال آردوینو رو لود میکنم بیشتر از ۸تا روشن میشه.
                    برنامش اینه
                    /*
                    LiquidCrystal Library – Hello World

                    Demonstrates the use a 16×2 LCD display. The LiquidCrystal
                    library works with all LCD displays that are compatible with the
                    Hitachi HD44780 driver. There are many of them out there, and you
                    can usually tell them by the 16-pin interface.

                    This sketch prints “Hello World!” to the LCD
                    and shows the time.

                    The circuit:
                    * LCD RS pin to digital pin 12
                    * LCD Enable pin to digital pin 11
                    * LCD D4 pin to digital pin 5
                    * LCD D5 pin to digital pin 4
                    * LCD D6 pin to digital pin 3
                    * LCD D7 pin to digital pin 2
                    * LCD R/W pin to ground
                    * LCD VSS pin to ground
                    * LCD VCC pin to 5V
                    * ۱۰K resistor:
                    * ends to +5V and ground
                    * wiper to LCD VO pin (pin 3)

                    Library originally added 18 Apr 2008
                    by David A. Mellis
                    library modified 5 Jul 2009
                    by Limor Fried (http://www.ladyada.net)
                    example added 9 Jul 2009
                    by Tom Igoe
                    modified 22 Nov 2010
                    by Tom Igoe

                    This example code is in the public domain.

                    http://www.arduino.cc/en/Tutorial/LiquidCrystal
                    */

                    // include the library code:
                    #include

                    // initialize the library with the numbers of the interface pins
                    LiquidCrystal lcd(22, 23, 24, 25, 26, 27);

                    void setup() {
                    // set up the LCD’s number of columns and rows:
                    lcd.begin(16, 2);
                    // Print a message to the LCD.
                    lcd.print(“hello, world!”);
                    }

                    void loop() {
                    // set the cursor to column 0, line 1
                    // (note: line 1 is the second row, since counting begins with 0):
                    lcd.setCursor(0, 1);
                    // print the number of seconds since reset:
                    lcd.print(millis() / 1000);
                    }
                    فقط “hello, world!” رو کامل نمینویسه و ۸تا کاراکترشو مینویسه ولی بعد hello, w و بعد از w شمارنده هر ثانیه میشماره و عددو نشون میده

                • جناب مهندس دوتا lcd 16*1 دیگه هم خریدم اونام مثل اینا هستن. همینکه تغذیه میدم بهش نصفش روشن و نصفش خاموشه. سخت افزارمم چندبار کنترل کردم درسته.
                  پایه۱= GND
                  پایه۲= VCC
                  پایه۳= کنتراست: با مقاومت ۴٫۷K به زمین
                  پایه۴= RS: به آردوینو
                  پایه۵= GND
                  پایه۶= E: به آردوینو
                  پایه۱۱= D4: به آردوینو
                  پایه۱۲= D5: به آردوینو
                  پایه۱۳= D6: به آردوینو
                  پایه۱۴= D7: به آردوینو
                  پایه۱۵= VCC
                  پایه۱۶= GND

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

    • سلام
      آیا فقط برای نمایش محتوا بر روی LCD مشکل به وجود آمده است؟
      نوع LCD را مشخص نمایید.

  • با سلام و خسته نباشید
    عرض کنم من یک شخص بسیار مبتدی در رشته الکترونیک هستم ک مدتیه ب این رشته شیرین و بی پایان روی اوردم, میخاستم عرض کنم بعنوان یک شخص مبتدی از وقتی ک در سایتهای مختلف در مورد کار با قطعات مختلف سرچ کردم با توجه ب توضیحی ک دوستان و اساتید میدادن متاسفانه هیچی متوجه نمیشدم تقریبا, ولی برای اولین بار با توجه ب توضیحات جامع شما خیلی راحت متوجه موضوع شدم ومیخاستم ازتون تشکر کنم و ارزوی موفقیت براتون دارم, واقعا ب روش بسیار جامع و قابل قبولی حداقل برای من توضیح دادین, لطفا ب اینکارتون ادامه بدین, متشکرم

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

  • سلام.
    ال سی دی من نمایشگر کاراکتری ۱×۱۶ LCD صنعتی بدون بک لایت تایوانی مدل MTC-S16101XRYHS بود.
    راه اندازیش الان حدود ۱ ساعت وقت گرفت و آخر متوجه شدم که پایه Vo یا به قول شما Vee رو به زمین متصل نکردم. این اتصال رو زدم و روشن شد اما فقط ۸ کارکتر اول نمایش داده شدند و ۸ تای دوم خاموش موندند!
    باز کلی ور رفتم و مسیری که Reza در کامنت ها طی کرده بود رو هم خوندم و راه حل مشخص شد. گویا در این مدل سایز نمایشگر ۱۶ در ۱ در نظر گرفته نمیشه و در اصل ۸ در ۲ در نظر گرفته میشه؛ یعنی دو ردیف ولی بصورت متوالی و مساله اینطوری حل شد و در معرفی ال سی دی هم از این دستور استفاده کردم و مساله حل شد 🙂
    lcd.begin(8, 2);
    lcd.setCursor(0, 0);
    lcd.print(“edameh”);
    lcd.setCursor(0, 1);
    lcd.print(“aghaz”);

    • البته aghaz و edameh رو در کد جابجا نوشتم
      نکته دیگر هم اینکه در این مدل وقتی فقط ۴ سیم وصل باشه کارکترهای ناخوانا نمایش داده میشه ولی وقتی هر هشت سیم DB0 تا DB7 وصل شه درست کار میکنه

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

  • با سلام
    میخواستم بدونم این امکان وجود داره که یک فایل متنی با فرمت txt رو لینک کنیم به آردوینو و روی LCD نمایش بدیم !!!؟

    • سلام
      امکان خوانده شدن فایل متنی توسط Sd وجود دارد و نمایش داده می‌شود. توضیحات کامل تری ارائه دهید تا راهنمایی گردد.

  • سلام من ال سی دی رو برد آردینو اونو وصل کردم ولی هر سورسی که روش می فرستم نمایش نمی و بعد از ۲ ثانیه ال سی دی خاموش می شه .
    ضمنا هنگام آپلود کد ال سی دی روشن میشه و فقط ردیف اولی تمام مستطیل نمایش می ده.
    ممنون می شم که کسی راهنمایی کنه.

  • سلام و خسته نباشید
    من اتصالات رو چک کردم برنامه رو هم کامپایل کردم درسته ولی وقتی lcd روشن میشه به جای نمایش متن من کاراکتر های نامربوط نشون میده مشکل از کجا میتونه باشه؟ متشکر

  • سلام خدمت شما دوست عزیز من میخوام کیپد ۴ در ۴ رو به ال سی دی ۱۶ در ۲ و اردوینو وصل کنم طوری که هر حرفی رو روی دکمه فشار بدم روی ال سی دی به نمایش در بیاد ممنونم میشم بهم اموزش بدین

  • باسلام خدمت سایت بسیار خوب دیجی اسپارک من وقتی میخوام کد هارو vrify یا آپلود کنم این ارور رو میده:
    Error compiling for board Arduino/GenuinoUno
    این ارور فقط برای این ماژول هستش حتی کتابخانه این ماژول رو هم نصب کردم حتی اتصال پورت هم چک کردم درست بود ولی نمیدونم چرا این ارور رو میده ممنون میشم راهنماییم کنید

    • با سلام
      ارور کامل را کپی کنید تا بررسی شود. همچنین از کدام مدل آردوینو استفاده می‌کنید؟

  • سلام ببخشید همون طور گفتید ما اگر پین R/w رو یک بدیم یعنی باید از روی lcd چیزی را بخوانیم خب حالا لطفا میشه یه مثالی بزنید و یا این که کد های مربوط به خواندن رو بدید؟

    ممنون از لطفتون

    • با سلام
      از توجه شما ممنونیم. دقت داشته باشید در کامنت ها امکان تحلیل کد وجود ندارد.
      جهت نوشتن متن بر روی ال سی دی پین صفر شده و در زمان خواندن یک تنظیم می‌شود

  • سلام
    تمامی اتصالات را به درستی بر قرار کرده ام ولی کاراکتری روی lcd نمایش داده نمیشود
    مشکل چیست؟
    ممنون

  • سلام ممنون از آموزش زیباتون فرق بین وصل کردن صفحه نمایش به صورت ۴ بیتی و ۸ بیتی در چیست

    • با سلام
      تفاوت چندانی ندارد و تنها بایستی طبق دیتاشیت پایه ها را به آردوینو متصل کنید.

      • سلام و وقت بخیر من lcd کاراکتری رو به هر نحوی سیمکشی کردم و متصل کردم فقط مربع نمایش داده میشه و هیچ چیزی مشاهده نمیشه مدل lcd1602A و آردینو uno

        • با سلام
          در این خصوص ممکن است در اتصالات خطایی وجود داشته باشد. همچنین کتابخانه را بررسی و آپدیت کنید.

  • سلام و عرض ادب
    ببشخشید من میخوام در ال سی دی یک کارکتر در اول ال سی دی نمایش داده شود و یک جلمه بعد از اون ولی جمله به چپ بره ولی اون کارکتر سر جاش بمونه ممنون میشم کمک کنید

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

  • سلام ببخشید چگونه در این لا سی دی های کاراکتری شکل های مختلف یا حروف فارسی رانوشت کد اردونیو اش چیست
    ممنون

  • سلام و خسته نباشید
    ممنون بابت اظلاعات خوبتون
    اگر بخوام که چند متغیر را باهم نشان بدهم چجوری باید انجام بدم مثلا برای نوشتن ساعت در ccs مینویسم:
    printf(lcd_putc,”%d:%d:%d”,h,m,s);
    اما در آردوینو که %d را میزنم ایراد میگیره آیا روشی هست که بشه اینطور نشون داد مثل ساعت؟؟؟؟

    • با سلام
      در این خصوص دیتاها را طبقه بندی کنید. چه اروری نمایش داده می‌شود؟