تحلیل کتابخانه

تحلیل و بررسی کتابخانه LiquidCrystal.h

نوشته شده توسط پریسا پوربلورچیان

کتابخانه ی LiquidCrystal محبوب ترین کتابخانه ی اوپن سورس برای نرم افزار آردوینو IDE Arduino است که برای نمایش محتوا و دیتای دریافتی از هر سنسور از بردهای میکروکنترلر استفاده می‌شود. تمامی ال سی دی های LiquidCrystal که دارای ۱۶ پایه است و همچنین ال سی دی با رابط I2C از این کتابخانه پشتیبانی می‌کند و فقط کافییست در هر برنامه با توجه به نوع ال سی دی تغییرات کوچکی اعم از ابعاد و مدل ال سی دی را مشخص کنید. توسط کتابخانه ی LiquidCrystal میتوان کنترل ال سی دی  بر پایه Hitachi HD44780 را در دست گرفت. این کتابخانه در مود کاری ۴ – ۸ بیتی کار کرده و از ۴ تا ۸ پایه برای دیتا استفاده می‌کند. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 


نصب کتابخانه LiquidCrystal


قدم اول برای نصب کتابخانه‌ی ال سی دی LiquidCrystal از طریق نرم افزار آردوینو است. از منوهای نرم افزار گزینه‌ی Sketch / Include Library / Manage Libraries را اننتخاب کنید. در صفحه ی باز شده منتظر بمانید تا لیست کتابخانه ها به روزرسانی شود. سپس در کادر جستجو عبارت LiquidCrystal را فیلتر کنید. سپس کتابخانه را همانند تصویر زیر انتخاب و بر حسب ورژن نصب Install کنید.

 

برای استفاده از این کتابخانه به دو نکته توجه کنید.

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

 


سازگاری با کتابخانه‌ی LiquidCrystal


کتابخانه‌ی LiquidCrystal برای نمایشگرهای ال سی دی کاراکتری ۱۶ پایه در ابعاد مختلف و همچنین با پروتکل I2C توسعه داده شده است.

ال سی دی کاراکتری ۲X16

ال سی دی کاراکتری ۲X20

ال سی دی کاراکتری ۴X16

ال سی دی کاراکتری ۱۲۸X64

ال سی دی کاراکتری با رابط I2C

شیلد ال سی دی آردوینو 

تمامی ال سی دی های کاراکتری با ۱۶ پایه و دیگر ابعادی که در اینجا نامی از آن ها برده نشد، از کتابخانه‌ی LiquidCrystal پشتیبانی می‌کنند.

 


نکات فنی کتابخانه LiquidCrystal


کتابخانه ی LiquidCrystal بخش اعظمی از ال سی دی های کاراکتری را پوشش میدهد و به همین دلیل در کدنویسی و فراخوانی هر مدل ال سی دی باییستی ابعاد و نوع پروتکل را انتخاب کنید. به عنوان مثال در صورتیکه از ال سی دی کاراکتری با ابعاد ۲X16 استفاده می‌کنید، بایستی ابعاد را در کد آردوینو برنامه اضافه کنید. در صورتیکه از ال سی دی کاراکتری با رابط I2C استفاده می‌کنید، در کد برنامه از کتابخانه با پسوند LiquidCrystal_I2C باید استفاده کنید.

کتابخانه ی مورد نیاز برای ال سی دی کاراکتری ساده 

 

کتابخانه ی مورد نیاز برای ال سی دی کاراکتری با پروتکل I2C

 

مهم: کتابخانه LiquidCrustal_I2C همانند روش قبل به صورت پیش فرض در لیست کتابخانه های نرم افزار آردوینو قرار دارد، کافیست آن را جستجو و نصب کنید.

 


توابع کلیدی کتابخانه LiquidCrystal


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

 

تابع شرح ها
LiquidCrystal(rs,en,d4,d5,d6,d7)

LiquidCrystal(rs,rw,en,,d4,d5,d6,d7)

LiquidCrystal(rs,en,d0,d1,d2,d3,d4,d5,d6,d7)

LiquidCrystal(rs,rw,en,d0,d1,d2,d3,d4,d5,d6,d7)

برای شروع باید یک متغیر از انواع مختلف Liquid Crystal بسازید. در این متغیر می‌توانید بین ۴ تا ۸ پایه از دیتا را معرفی کنید. در زیر چند نمونه متغیر معرفی می‌کنم. بسته به انتخاب پایه‌های آردوینو  Arduino می‌توانید از یکی متغیرهای زیر استفاده کنید.
lcd.begin(cols, rows) قبل از شروع نوشتن کدهای ال سی دی نیاز به معرفی ال سی دی LCD و مشخص کردن ابعاد مورد استفاده دارید. از اینرو سطر Begin اهمیت خاصی دارد. دستور معرفی ال سی دی همانند زیر است. cols جهت مشخص کردن تعداد ستون و row برای مشخص کردن تعداد سطر می‌باشد.
lcd.clear() توسط تابع clear صفحه نمایش ال سی دی پاک شده و به صورت زیر در کد تعریف می‌شود. پس از تابع begin نیاز به تعریف تابع clear خواهیم داشت. تابع clear به صورت زیر در برنامه فراخوانی می‌شود.
lcd.home() توسط تابع home مکان نما در بالا سمت چپ ال سی دی قرار می‌گیرد. تابع ()home به صورت زیر در برنامه فراخوانی می‌شود.
lcd.setCursor(col, row) توسط تابع setcursor یک موقعیت خاص در ال سی دی برای مکان نما انتخاب می‌کنیم. سپس در تابع سطر row و ستون cols مورد نظر را وارد می‌کنیم. تابع cursor به صورت زیر در برنامه فراخوانی می‌شود.
lcd.write(data) از تابع write برای نوشتن کارکتر در ال سی دی استفاده می‌شود. تابع write به صورت زیر در برنامه فراخوانی می‌شود.
lcd.print(data) از تابع print برای نمایش کاراکتر در ال سی دی LCD اسنفاده می‌شود. تابع print به صورت زیر در برنامه فراخوانی می‌شود.
lcd.cursor() از تابع cursor برای نمایش به صورت زیر خط underscore استفاده می‌شود. در واقع یک خط زیر کاراکتر کشیده می‌شود.
lcd.noCursor() برای عدم نمایش underscore از تابع nocursor استفاده می‌کنیم.
lcd.blink() توسط تابع blink مکان نما به صورت چشمک زن در ال سی دی نمایش داده می‌شود.
lcd.noblink() همچنین توسط تابع noblink از حالت چشمک زن خارج می‌شود.
lcd.display() توسط این تابع ال سی دی روشن می‌شود.
lcd.nodisplay() توسط این تابع ال سی دی خاموش می‌شود.
lcd.scrolldisplayleft() توسط این دو تابع محتوای نمایش داده شده در ال سی دی یک واحد به سمت چپ انتقال داده می‌شود.
lcd.scrolldisplayright() توسط این دو تابع محتوای نمایش داده شده در ال سی دی یک واحد به سمت راست انتقال داده می‌شود.
lcd.autoscroll() توسط تابع autoscroll حرکت اتوماتیک محتوا فعال می‌شود. به این صورت که اگر جهت نمایش در ال سی دی به صورت چپ به راست است، با فراخوانی این تابع صفحه نمایش به سمت چپ حرکت می‌کند و برعکس
lcd.noautoscroll()  

از تابع noautoscroll برای غیر فعال کردن این حالت استفاده می‌شود

lcd.LeftToRight() توسط تابع LeftToRight یک مسیر چپ به راست برای نوشتن متن در ال سی دی مشخص شده و محتوا از چپ به راست نوشته می‌شود
lcd.RightToLeft() همچنین توسط تابع RightToLeft محتوا از راست به چپ در صفحه نمایش نوشته می‌شود.
lcd.creatchar(num,data) از تابع creatchar برای نمایش یک کاراکتر خاص مانند smiley در ال سی دی استفاده می‌شود.

 

 

توابع مورد نیاز برای ال سی دی با رابط I2C

 

 

 

LiquidCrystal_I2C lcd (0x27, 16, 2); در تابع crystalLiquid_I2C باید نوع ال سی دی LCD استفاده شده را مشخص کنید
Wire.begin(); تابع write begin کتابخانه wire را اجرا می‌کند و پروتکل I2C را فرامیخواند. این تابع تنها یک بار در برنامه فراخوانده می‌شود.
lcd.backlight();

 

برای روشن شدن ال سی دی
lcd.nobacklight(); برای خاموش شدن ال سی دی

 

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

 


اجرای برنامه ی Hello World


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

 


اجرای برنامه Autoscroll


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

 


اجرای برنامه hello world با I2C


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

 


اجرای برنامه Custom char


تست برنامه ی Custom Char به صورت زیر است.

 


جمع بندی


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

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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