آموزش راه اندازی LCD كاراكتری 2×16 با آردوینو

آموزش راه اندازی LCD كاراكتری 16×2 با آردوینو

آيا به دنبال نمایش خروجی سنسور‌های خود بر روی یک نمایشگر هستید؟ اگر این چنین است، LCD كاراكتری 2×16 یک انتخاب عالی برای شما خواهد بود. با این LCD شما به‌سرعت می‌توانید خروجی سنسور خود را با کاراکتر‌های مختلف نمایش دهید. در این مقاله هر چیزی را که برای راه اندازی LCD كاراكتری 2×16 با آردوینو نیاز داشته باشید، در اختیار شما قرار می‌دهیم. البته ما به عنوان نمونه، LCD کاراکتری 2×16 را انتخاب کرده‌ایم، اما شما می‌‌توانید از هر نوع LCD که بر مبنای چیپ کنترلر HD44780 هیتاچی است، استفاده کنید!

برای سهولت در راه اندازی LCD ، اپلیکیشنی را نیز برای شما در نظر گرفته‌ایم که در انتهای مقاله با آن آشنا خواهید شد.

بیشتر بدانید: آشنایی با LCD

LCD مخفف عبارت Liquid Crystal Display و به معنای”صفحه نمايش كريستال مايع” است. در حقیقت ال سی دی، نمايشگری است كه از كريستال مايع برای توليد تصوير استفاده می‌كند. کریستال مایع، نوعی ماده هست که هم ویژگی‌های جامدات و هم مایعات را دارد و این باعث شده است که در چنین تکنولوژی مورد استفاده قرار بگیرد.

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

مرور سخت افزار LCD كاراكتری 2×16

LCDهای کاراکتری همان‌طور که از نام آن پیدا است، تنها برای نمايش پيام متنی و يا كاراكتر طراحی شده اند. اين LCD دارای يک LED برای نور پس زمينه است كه می‌تواند 32 كاراكتر اسكی را در دو رديف 16 تايی نمايش دهد.

بلوک‌های مستطیلی شکل LCD كاراكتری 2×16که به صورت شبکه ای از 5×8 پيكسل هستند.


اگر با دقت به تصویر بالا نگاه كنيد، می‌توانید بلوک‌های مستطيلی شكل مربوط به هر كاراكتر و پيكسل‌های آن را مشاهده كنيد. هر يک از اين مستطيل‌‌ها به‌‍صورت شبكه ای از 5×8 پيكسل است.

با وجود اینکه اين صفحات نمايش تنها می‌توانند متن را نشان دهند، اما در ابعاد و رنگ‌های مختلفی وجود دارند، مانند صفحات نمايش 1×16، 4×16و 4×20 با متن سفيد در زمينه آبی يا متن سياه در زمينه سبز.

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

پين‌های ماژول LCD كاراكتری 2×16

پیش از اینکه راه اندازی LCD كاراكتری 2×16 با آردوینو را آغاز کنیم، بیایید نگاهی به پين‌های ماژول آن بیندازیم:

پین‌های ماژول LCD كاراكتری 2×16

پين GND به زمين آردوينو متصل می‌شود.

پين VCC تغذيه الكتريكی LCD است و به پين 5 ولت آردوينو متصل می‌شود.

پين Vo جهت كنترل كنتراست (Contrast) و نور LCD مورد استفاده قرار می‌گيرد. با استفاده از يک تقسيم كننده ولتاژ و يک پتانسيومتر می‌توانید كنتراست را به‌سادگی تنظيم کنید.

پين RS به آردوينو اجازه می‌دهد كه به LCD اطلاع دهد كه آيا در حال ارسال ديتا يا ارسال فرمان است. اين پين اصولا برای ايجاد تمايز بين فرمان و ديتا مورد استفاده قرار می‌گیرد. به عنوان مثال هنگامی‌كه مقدار پين RS به‌صورت LOW باشد، در واقع شما در حال ارسال فرمانی از آردوینو به LCD هستید (فرمان‌هايی مانند دستور تنظيم مكان نما در يک مكان خاص، دستور پاک كردن صفحه نمايش، دستور رفتن به سمت راست صفحه نمايش و يا …. ). اما زمانی‌كه پين RS به‌صورت High باشد، شما در حال ارسال ديتا يا كاراكتر از آردوینو بر روی LCD هستید.

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

پين E جهت فعال‌سازی LCD استفاده می‌شود. یعنی زمانی‎‌كه اين پين LOW باشد، در حقيقت LCD اهميتی به مقادير پين‌های R/W، RS و خطوط باس ديتا نمی‌دهد. اما با High شدن این پين، LCD اطلاعات دريافتی را پردازش خواهد کرد.

پين‌های D0-D7 (باس ديتا) برای انتقال ديتای 8 بيتی مورد استفاده قرار می‌گیرند که شما برای LCD ارسال می‌کنید. به عنوان مثال اگر بخواهيد كاراكتر A را بر روی LCD مشاهده کنید، باید این هشت پین‌‎ را با کد 0100 0001 (براساس جدول اسکی) تنظیم کنید. به این شکل LCD کاراکتر A را نمایش خواهد داد.

پين‌های A-K (آند و كاتد) برای كنترل نور پس زمينه LCD مورد استفاده قرار می‌گیرند.

تست LCD

در اینجا به قسمت هیجان انگیز پروژه می‌رسیم، زیرا شما باید LCD خود را تست کنید، اما اگر هنوز قطعات این پروژه را تهیه نکرده‌اید، می‌توانید از طریق لینک‌های زیر اقدام به خرید کنید:

اما برای تست کردن LCD، مراحل زیر را طی کنید:

  • ابتدا پين GND و 5 ولت آردوينو را به ريل‌های برد بورد و سوكت LCD را نیز به برد‌ بورد متصل کنید.
  • سپس، تغذيه الكتريكی را به LCD اعمال کنید. LCD دارای دو كانكشن برای اتصال تغذيه الكتريكی است. یکی از این کانکشن‌ها، پين 1 و 2 است که برای تغذيه الكتريكی LCD به کار می‌رود و دیگری، پين 15 و 16 که برای نور پس زمينه است. پين 1 و 16 LCD را به GND و پين 2 و 15 را به 5 ولت وصل کنید.

نکته:

اكثر ال سی دی‌ها در مسير تغذيه نور پس زمينه دارای مقاومت‌های داخلی هستند. چنانچه LCDای كه شما در اختيار داريد، فاقد اين مقاومت الكتريكی باشد، لازم است يک مقاومت را در مسير اتصال پين 5 ولت به پايه 15 در نظر بگيريد.

برای محاسبه مقدار اين مقاومت الكتريكی بايد به حداكثر جريان نور پس زمينه و افت ولتاژ معمول آن كه در ديتاشيت LCD مشخص شده است، دقت كنيد. پس از آن به سادگی می‌توانید با استفاده از قانون اهم مقدار مقاومت را محاسبه کنید. اگر به ديتا شيت دسترسی نداريد، به‌ جهت رعايت اصول ايمنی از يک مقاومت 220 اهمی استفاده كنيد. با این حال اگر برای LCD خاص شما اين مقدار مقاومت زياد باشد، ممكن است تاحدودی باعث ضعيف شدن نور پس زمينه شود.


  • در مرحله آخر، نوبت اتصالات پين شماره 3 ماژول LCD می‌رسد كه برای كنترل كنتراست و روشنايی صفحه نمايش مورد استفاده قرار می‌گیرد. برای تنظيم كنتراست، يک پتانسيومتر 10 كيلو اهمی را بين زمين و 5 ولت وصل كنيد و پین وسط پتانسيومتر را به پين شماره 3 LCD متصل نمائيد.

همان طور که مشاهده می‌کنید، با چرخاندن پتاسیومتر، می توانید کنتراست LCD را تنظیم کنید.

این تمام چیزی بود که برای تست کردن LCD باید انجام می‌دادید!

اکنون آردوینو را روشن کنید. با روشن کردن آردوینو، باید بتوانید نور پس زمینه LCD و با چرخاندن پتاسیومتر، باید بتوانید خط اول بلوک‌های مستطیلی را که بر روی صفحه نمایش ظاهر می‌شوند، مشاهده کنید. اگر چنین چیزی را مشاهده کردید، به شما تبریک می‌گوییم! LCD شما به خوبی در حال کار کردن است.

سيم كشی- راه اندازی LCD كاراكتری 2×16 با آردوینو

پس از تست ال سی دی، زمان راه اندازی LCD كاراكتری 2×16 با آردوینو است.

LCD دارای پين‌های زيادی است (مجموعا 16 پين) كه در ادامه نحوه اتصال هر كدام از آن‌ها را برای شما توضيح می‌دهیم. البته برای راه اندازی و استفاده از LCD با آردوينو نيازی به اتصال همه اين پين‌ها نیست.

همان طور که می‌دانید 8 خط ديتا برای انتقال ديتای خام به صفحه نمايش وجود دارد. اما LCDهای HD44780 به‌گونه‌ای طراحی شده‌اند كه به‌جای 8 پين، تنها با استفاده از 4 پين می‌توان انتقال ديتا را انجام داد (مد 4 بيتی). به این شکل، 4 پین دیگر برای شما باقی می‌ماند!

تفاوت بين مد 4 بيتی با مد 8 بيتی

انتقال ديتا در مد 8 بيتی سريعتر از مد 4 بيتی است. چرا كه در مد 8 بيتی كل ديتا را يكباره برای LCD می‌توان ارسال کرد. در حالی‌كه در مد 4 بيتی، يک بايت ديتا به دو بخش تقسيم بندی می‌شود. يک بخش به راست شيفت داده می‌شود و عمل نوشتن ديتا بر روی LCD دوبار انجام خواهد شد.

از مد 4 بيتی در مواقعی كه نياز به صرفه‌جويی در استفاده از تعداد پين‌های ورودی/خروجی داشته باشيم، می‌توان استفاده کرد. در كاربردهايی كه سرعت نوشتن ديتا بر روی LCD اهميت دارد و حداقل 10 عدد پين ورودی/خروجی در دسترس است، استفاده از مد 8 بيتی بهتر است. در ادامه، از مد 4 بيتی استفاده می‌کنیم.


بنابراين، برای نوشتن پيام بر روی LCD فقط به 6 پين نياز خواهيد داشت: پين RS، EN، D4، D5، D6 و D7.

اکنون زمان اتصال LCD به آردوینو است. چهار پين ديتای LCD يعنی پين‌های D4 تا D7 را به پين‌های ديجيتال شماره 4 تا 7 آردوينو متصل کنید. سپس، پين فعال‌سازی LCD را به پين شماره 2 آردوينو و پين RS را به پين شماره 1 آردوينو وصل کنید. در تصویر زير می‌توانید نحوه سيم كشی را مشاهده کنید:

نحوه اتصال LCD كاراكتری 2×16 به آردوینو

همان‌طور که می‌بینید پین‌های LCD با سیم‌های آبی رنگ به آردوینو متصل شده است.


پس از اتمام سیم‌کشی و اتصال پین‌ها به آردوینو ، همه چیز آماده است تا شما برای نمایش دیتا بر روی LCD، کد بنویسید.

كد آردوينو

بخشی از فرایند راه اندازی LCD كاراكتری 2×16 با آردوینو ، مربوط به کد نویسی است که در اینجا به آن می‌پردازیم.

كد زير پيام ‘Hello World!’ را بر روی صفحه نمايش LCD نشان خواهد داد. جزئيات اين كد را در ادامه بیشتر توضیح خواهیم داد.

// include the library code:
#include <LiquidCrystal.h>

// Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() 
{
	// set up the LCD's number of columns and rows:
	lcd.begin(16, 2);

	// Clears the LCD screen
	lcd.clear();
}

void loop() 
{
	// Print a message to the LCD.
	lcd.print(" Hello world!");

	// 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 a message to the LCD.
	lcd.print(" LCD Tutorial");
}


اگر همه چيز به‌درستی انجام گرفته باشد، خروجی که شما مشاهده می‎‌کنید، باید به شکل زیر باشد:

نمایش پیام Hello World پس از بارگذاری کد در LCD

توضيح كد

این كد، با فراخوانی كتابخانه LiquidCrystal آغاز می‌شود. همان‌طور كه قبلا گفتیم، آردوینو دارای کتابخانه‌ای با نام LiquidCrystal است که راه اندازی و برنامه ريزی ماژول LCD را به‌مراتب ساده‌تر می‌کند.

// include the library code:
#include <LiquidCrystal.h>

در قدم بعدی، شما باید شی LiquidCrystal را ايجاد کنید. اين شی از 6 پارامتر استفاده می‌كند و مشخص می‌کند که كدام يک از پين‌های آردوينو به هر يک از پين‌های RS، E و چهار پين ديتا D4  تا D7 متصل شده‌اند.

// Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

اكنون كه شی LiquidCrystal را تعریف کردید، می‎توانید به توابعی (توابع aka) كه مخصوص LCD هستند، دسترسی داشته باشید.

در بخش Setup، از دو تابع استفاده خواهیم کرد:

  • تابع اول ()begin نام دارد كه برای مشخص كردن ابعاد صفحه نمايش یا به‌ عبارتی تعداد سطر و ستون‌های آن به‌كار گرفته می‌شود. اگر از LCD كاركتری 2×16 استفاده می‌کنید، پارامترهای اين تابع را به‌صورت 16و 2 مشخص کنید. اما اگر از يک LCD كاراكتری 20×4  استفاده می‌کنید، بايد اين پارامترها را به‌صورت 20 و 4 لحاظ کنید.
  • تابع دوم ()clear نام دارد كه صفحه نمايش را پاک می‌كند و مكان نمای آن را در گوشه بالا سمت چپ قرار می‌دهد.
lcd.begin(16, 2);
lcd.clear();

در بخش loop، از تابع ()print برای نمايش پيام بر روی خط اول صفحه نمايش استفاده کنید.

// Print a message to the LCD.
lcd.print(" Hello world!");

در ادامه، به كمک تابع ()setCursor مكان نما را بر روی خط دوم تنظيم کنید. موقعيت مكان نما بر روی صفحه LCD، توسط اين تابع مشخص خواهد شد. به علاوه، مختصات گوشه بالا سمت چپ 0 و 0 خواهد بود.

lcd.setCursor(0, 1);
lcd.print(" LCD Tutorial");

ساير توابع مفيد در كتابخانه LiquidCrystal

توابع مفیدی وجود دارد كه شما می‌توانيد با شی LiquidCrystal از آن‌ها استفاده كنيد. برخی از اين توابع عبارتند از:

  • تابع ()home: اگر می‌خواهید به‌سادگی و بدون پاک كردن صفحه، مكان نما را در گوشه بالا سمت چپ قرار دهيد، از تابع ()home استفاده کنید.
  • تابع ()blink و ()lcd.cursor: اپليكيشن‌های زيادی نظير توربو C++ و يا notepad++ وجود دارند كه در آن‌ها با فشار كليد insert مكان‌نما تغيير خواهد كرد. چيزی مشابه همين عملكرد را می‌توانيد برای تغيير مكان نما LCD با استفاده از تابع ()blink يا ()lcd.cursor داشته باشيد.
    تابع ()blink، بلوک‌های چشمک زن از پيكسل‌های 5×8 را نمايش خواهد داد. در صورتی‌كه تابع ()lcd.cursor، يک خط در زير مكانی كه قرار است كاراكتر بعدی نوشته شود، نمايش خواهد داد.
  • تابع ()noBlink و ()lcd.noCursor: برای خاموش كردن مكان نمای چشمک زن می‌توانيد از تابع ()noBlink و برای مخفی كردن مكان نما نيز می‌توانید از تابع ()lcd.noCursor استفاده کنید.
  • تابع ()lcd.scrollDisplayRight و ()lcd.scrollDisplayLeft: با استفاده از این دو تابع می‌توانيد محتوای نمايش داده شده بر روی LCD را به اندازه يک space به سمت راست و يا سمت چپ شيفت دهيد. اگر می‌خواهيد محتوای نمايش داده شده بر روی صفحه LCD را به‌صورت پيوسته به يک سمت حركت دهيد، كافی است اين توابع را در يک حلقه for استفاده کنید.

توليد كاراكتر دلخواه برای نمایش در LCD كاراكتری 2×16

اگر کاراکتر‌هایی که بر روی LCD نمایش داده می‌شوند، برای شما جذابیت ندارد، می‌توانيد كاراكتر دلخواه خود را ایجاد کنید. اين قابليت زمانی که کاراکتر مورد نظر شما در جدول استاندارد کاراکترهای اسکی وجود ندارد، بسیار مفید است.

CGROM و CGRAM:

همه LCDهايی كه بر مبنای چيپ كنترلر هيتاچی HD44780 هستند، دارای دو نوع حافظه برای ذخيره كاراكترهای تعريف شده هستند. اين حافظه‌ها عبارتند از CGRAM (Character Generator RAM) و CGRAM .(Character Generator ROM) CGROM يک حافظه غير فرار است كه محتويات آن قابل ويرايش نيست. در مقابل، محتويات حافظه CGRAM را هر موقع كه بخواهيد می‌توانید ويرايش کنید.

حافظه CGROM برای ذخيره سازی همه فونت‌های دائمی كه با استفاده از كدهای اسكی مربوطه قابل نمايش هستند، به‌كار گرفته می‌شود. به عنوان نمونه اگر كد 0x41 نوشته شود، كاراكتر A نمايش داده خواهد شد. حافظه ديگر يعنی CGRAM برای ذخيره كاراكترهای تعريف شده كاربران استفاده می‌شود. اين حافظه دارای محدوديت ظرفيت 64 بايت است. بنابراين برای يک LCD كه دارای خانه‌های پيكسلی 5×8 است، حداكثر 8 كاراكتر دلخواه را می‌توان در حافظه GCRAM ذخيره نمود. در حالی‌كه در مورد LCD با خانه‌های پيكسلی 5×10 تنها می‌توان 4 كاراكتر دلخواه را ذخيره کرد.

همان‌طور كه در قسمت‌های قبلی اين آموزش گفتیم، تصوير هر كاراكتر بر روی LCD با استفاده از يک ماتريس 5×8 از پيكسل‌ها نمايش داده خواهد شد. بنابراين كاراكترهای دلخواه شما نيز بايد به‌صورت ماتريسی تعريف شوند. برای تعريف يک كاراكتر، از تابع ()createChar که از كتابخانه LiquidCrystal است، استفاده کنید.


برای استفاده از اين تابع، ابتدا يک آرايه 8 بايتی ايجاد کنید. هر بايت (كه البته فقط 5 بيت آن استفاده می‌شود) متناسب با يک رديف ماتريس 5×8  خواهد بود. درحالی‌که 0 و 1 هر بايت نشان دهنده پيكسل‌های روشن و خاموش هر رديف در بلوک 5×8 صفحه نمايش LCD است.

اپلیکیشن تولید کاراکتری های دلخواه

تا پیش از این، ايجاد كاراكترهای دلخواه كار ساده‌ای نبوده است. اما برای اين كار يک اپليكيشن كوچک به نام Custom character generator for character LCD ساخته شده است. این اپلیکیشن را می‌‍‌توانید در جدول زیر مشاهده کنید. با كليک بر روی هر يک از پيكسل‌های جدول می‌توانید آن‌ها را روشن یا خاموش کنید. با این کار، كد كاراكتر متناسب با آن ايجاد خواهد شد. اين كد را می‌توانید مستقيما در آردوينو مورد استفاده قرار دهید.

byte Character[8] =
{
0b00000,
0b00000,
0b01010,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000
};

سازنده اپلیکیشن: lastminuteengineers

ذهن ما هیچ‌وقت در تصور كاراكترهای مختلف محدوديت نخواهد داشت! اما متاسفانه كتابخانه LiquidCrystal تنها از 8 كاراكتر دلخواه پشتيبانی می‌كند. اما به هر حال نباید ناامید شوید. زیرا حداقل می‌توانید 8 كاراكتر به‌دلخواه خود تعریف کنید.

با کد زیر می‌توانيد كاراكترهای قلب، زنگوله، آدم فضایی، علامت تیک، اسپیکر، صوت (نوت چنگ)، جمجمه و قفل را در LCD نشان دهید.

// include the library code:
#include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// make some custom characters:
byte Heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000,
0b00000
};

byte Bell[8] = {
0b00100,
0b01110,
0b01110,
0b01110,
0b11111,
0b00000,
0b00100,
0b00000
};


byte Alien[8] = {
0b11111,
0b10101,
0b11111,
0b11111,
0b01110,
0b01010,
0b11011,
0b00000
};

byte Check[8] = {
0b00000,
0b00001,
0b00011,
0b10110,
0b11100,
0b01000,
0b00000,
0b00000
};

byte Speaker[8] = {
0b00001,
0b00011,
0b01111,
0b01111,
0b01111,
0b00011,
0b00001,
0b00000
};


byte Sound[8] = {
0b00001,
0b00011,
0b00101,
0b01001,
0b01001,
0b01011,
0b11011,
0b11000
};


byte Skull[8] = {
0b00000,
0b01110,
0b10101,
0b11011,
0b01110,
0b01110,
0b00000,
0b00000
};

byte Lock[8] = {
0b01110,
0b10001,
0b10001,
0b11111,
0b11011,
0b11011,
0b11111,
0b00000
};

void setup() 
{
	// initialize LCD and set up the number of columns and rows: 
	lcd.begin(16, 2);

	// create a new character
	lcd.createChar(0, Heart);
	// create a new character
	lcd.createChar(1, Bell);
	// create a new character
	lcd.createChar(2, Alien);
	// create a new character
	lcd.createChar(3, Check);
	// create a new character
	lcd.createChar(4, Speaker);
	// create a new character
	lcd.createChar(5, Sound);
	// create a new character
	lcd.createChar(6, Skull);
	// create a new character
	lcd.createChar(7, Lock);

	// Clears the LCD screen
	lcd.clear();

	// Print a message to the lcd.
	lcd.print("Custom Character");
}

// Print All the custom characters
void loop() 
{ 
	lcd.setCursor(0, 1);
	lcd.write(byte(0));

	lcd.setCursor(2, 1);
	lcd.write(byte(1));

	lcd.setCursor(4, 1);
	lcd.write(byte(2));

	lcd.setCursor(6, 1);
	lcd.write(byte(3));

	lcd.setCursor(8, 1);
	lcd.write(byte(4));

	lcd.setCursor(10, 1);
	lcd.write(byte(5));

	lcd.setCursor(12, 1);
	lcd.write(byte(6));

	lcd.setCursor(14, 1);
	lcd.write(byte(7));
}

بعد از فراخوانی كتابخانه، بايد آرايه 8 بايتی كاراكتر دلخواه را مقدار دهی اولیه کنید.

byte Heart[8] = {
0b00000,
0b01010,
0b11111,
0b11111,
0b01110,
0b00100,
0b00000,
0b00000
};

در بخش setup، با استفاده از تابع ()createChar كاراكترهای دلخواه خود را ایجاد کنید. اين تابع به دو پارامتر نياز دارد. پارامتر اول عددی بين 0 تا 7 است كه برای رزرو يكی از 8 كاراكتر تعريف شده استفاده می‌شود و پارامتر دوم نام آرايه بايت‌ها خواهد بود.

// create a new character
lcd.createChar(0, Heart);

در بخش loop كد، برای نمايش كاراكتر مورد نظر باید از تابع ()write استفاده کنید. پارامتر مورد نياز اين تابع نیز همان شماره كاراكتر مورد نظر شما خواهد بود.

// byte(0) represents Heart character.
lcd.write(byte(0));
نمایش کاراکتر‌های دلخواه بر روی LCD كاراكتری 2×16پس از قرار دادن کد مورد نظر هر کاراکتر در آردوینو
خروجی کاراکترهای تعریف شده بر روی LCD به این شکل خواهند بود.


هدف ما در این مقاله این بود که راه اندازی LCD كاراكتری 2×16 با آردوینو را به ساده‌ترین شکل ممکن به شما آموزش دهیم. مقاله را به دقت مطالعه کنید و حتما راه اندازی این ماژول را آغاز کنید. مرحله به مرحله با مقاله پیش بروید تا دچار مشکل نشوید.

اگر به کمک بیشتری نیاز داشتید، حتما با ما در تماس باشید تا بتوانیم شما را راهنمایی کنیم و مشکلات احتمالی شما را رفع کنیم.

مقالات مشابه

۲۶ دیدگاه. Leave new

  • سلام
    خسته نباشین
    ممنون از مطالب خوبتون

    پاسخ
  • خیلی عالی بود متشکرم

    پاسخ
  • با سلام و خسته نباشید ، سوال داشتم و اینکه آیا میشه چندتا ال سی دی مثلا ۲در۲۰ را بهم وصل کرد ، و با اردینو برنامه نویسی کرد به حساب طرز وصل کردن چند ال سی دی چگونه هست و برنامه نویس آن چگونه هست با LCd1, LCD2, LCD3, مممنون

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

      پاسخ
  • با سلام و خسته نباشی ، ببخشید اگه ۸تا ال سی دی داشته باشیم باید ۸تا هم اردینو بخریم ، یه سایت نوشته بود این ال سی دی ها قابلیت آدرس دهی دارن با i2c میشه موازی کرد و آدرس دهی بشن و دیتا هر ال سی دی برنامه نوشته بشه درسته یا نه ممنون توضیح بدین

    پاسخ
  • سلام حیلی مفید و خوب بود اگر میشه بازم هم از اردوینو و esp8266 و esp32 اموزش بزارید خیلی ممنون

    پاسخ
  • سلام ببخشید من کد هارو می زنم ولی برای من hello word را نشان نمی دهد

    پاسخ
    • سلام امیرعلی عزیز،
      لطفا یکم بیشتر در مورد مشکلی که بهش برخوردی، توضیح بده تا بتونیم کمکت کنیم.

      پاسخ
  • سلام خسته نباشید
    من برنامه رو دقیق وارد کردم سر LiquidCrystal ارور میده و میگه: file not founda.

    پاسخ
    • سلام امیرحسین عزیز،
      ممکنه برنامه آردوینو درست نصب نشده باشه،
      یا قبلا کتابخونه‌ای به این اسم دانلود کرده باشی که مشکل داره یا اینکه بردت رو درست انتخاب نمی‌کنی.
      در هر صورت با حذف کامل و نصب دوباره IDE آردوینو باید مشکل حل بشه.

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

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

    پاسخ
    • سلام درود برشما محمد عزیز
      مشکل می‌تواند مربوط به اتصالات یا کد شما باشد. با مولتی‌متر بررسی کنید که همه پایه‌های نمایشگر به پایه مناسب در آردوینو (مطابق کد) متصل هستند.

      پاسخ
  • سلام خسته نباشید میشه کد های تصویر رو ب ماژولی های برد ب غیر از این ب هر نماشگر دیگه بدیم و بورد بدونه اینکه ب اردینو وصل باشه تصویر نشون بده

    پاسخ
    • سلام و درود خدمت شما دوست عزیز
      در صورت امکان سوالتون رو با دقت و ذکر جزئیات، دوباره مطرح کنید تا بصورت کامل متوجه آن شویم و راهنمایی لازم را انجام دهیم.
      سپاس

      پاسخ
  • ابوالفضل قربانی
    بهمن ۲۲, ۱۴۰۲ ۱۴:۳۳

    با سلام و تشکر فراوان از شما به خاطر اموزش صحیح و کامل

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

      پاسخ

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

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

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.
You need to agree with the terms to proceed

پر بازدید ترین مقالات