اتصال LCD کاراکتری به آردوینو

saalek110

Well-Known Member

ال سی دی کاراکتری چیست ؟​

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

ال سی دی کاراکتری را می توان به عنوان یکی از شناخته شده ترین نوع ال سی دی ها به شمار آورد. در ادامه به توضیحات مفصلی در رابطه با این قطعه الکترونیکی خواهیم پرداخت.
صفحه نمایش کریستال مایع ال سی دی کاراکتری، نمایشگری است که امکان نمایش متن ها را به بهترین شکل بر روی خود امکان پذیر کرده است.
ماژول های LCD کاراکتری که "از نظر مشخصه" دستگاه های نمایشگر ساده ای هستند. این نوع ال سی دی ها به مصرف کم انرژی و قابلیت اطمینان طولانی مدت معروف هستند. آنها برای نمایش متن در الگوهای از پیش تعیین شده طراحی شده اند و انعطاف پذیری را که می توان در هنگام در نظر گرفتن یک LCD به عنوان مانیتور کامپیوتر یا تلویزیون دارند را ندارند. در بیشتر موارد، آنها نمایشگرهای کوچکی هستند که فقط ۸ یا ۱۶ یا ۳۲ کاراکتر را نمایش می دهند که برای گزارش وضعیت و ارتباطات سطح کوچک استفاده می شوند.
what-is-character-lcd.jpg

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

بلوک دیاگرام ساختار یک ال سی دی کاراکتری​


تصویر زیر ساختار داخلی یک ال سی دی کاراکتری را نشان می دهد. این شکل مربوط به ال سی دی کاراکتری ۲*۱۶ می باشد.
بلوک دیاگرام ال سی دی کاراکتری

متداول ترین ابعاد LCD های کاراکتری کدام اند ؟​


ال سی دی های کاراکتری دارای ابعاد به نسبت بزرگی هستند. رایج ترین ابعادی که از این نوع ال سی دی در بازار ایران می توانید پیدا کنید، عبارتند از :
البته پر استفاده ترین نوع آن ها هم ال سی دی کاراکتری ۲*۱۶ می باشد که در دو رنگ سبز و آبی موجود است.

کاربرد LCD های کاراکتری :​

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


ال سی دی کاراکتری چیست ؟ | راهنمای جامع از مبتدی تا پیشرفته
 

saalek110

Well-Known Member

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





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





C++

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





C++

1lcd.begin(16 , 2);






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





C++

1lcd.clear()




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





C++

1lcd.home();


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

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





C++

1lcd.setCursor(col, row);
نکته بسیار مهم: شماره ی سطر و ستون از عدد صفر شروع می‌شود.

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





C++

1lcd.setCursor(0, 1);
 

saalek110

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





C++

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





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

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





C++

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




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





C++

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






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





C++

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


scrollDisplayRight()​

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





C++

1lcd.scrollDisplayRight();




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





C++

1lcd.scrollDisplayleft();


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

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







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

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

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

saalek110

Well-Known Member

کاراکتری 16x2 و 20x2​

مقدمه​

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

امکانات​

- فرمت نمایش: 20 کاراکتر در دو ردیف
- کنترلر داخلی : Duty cycle یا معادل آن
- چرخه کاری (Duty cycle): 1/16
-ولتاژ کاری : 5 ولت

پایه ها و اتصالات​

این نوع ‪ LCD‬ها بسته به اینکه دارای نور پشت زمینه باشند یا نه دارای 14 یا 16 پایه هستند.

Screenshot_۲۰۲۲-۰۴-۱۴_۰۱۱۱۳۵-1.jpg



پایه ‪:RS‬ در داخل ‪ LCD‬دو رجیستر وجود دارد،که توسط پایه ‪ RS‬انتخاب می شوند.اگر 0=‪ RS‬شود‬ ‫رجیستر دستور (‪ (Instruction Register ‬انتخاب می شود تا فرمانهای مانند پیکره بندی ‪،LCD‬پاک کردن‬ ‫آن،جابجایی مکان نما و ... برای ‪ LCD‬ارسال شود

در صورتی که اگر 1=‪ RS‬شود،رجیستر داده (‪(Data Register‬انتخاب می شود،تا کاربر بتواند اطلاعاتی را‬ ‫که می خواهد روی ‪ LCD‬ بنویسد برای ‪ LCD‬ارسال کند.‬

‫* پایه ‪ :R/W‬به کمک این پایه کاربر مشخص می کند که می خواهد اطلاعات را روی ‪ LCD‬بنویسد یا از‬ ‫روی آن بخواند.اگر این پایه یک شود اطلاعات از روی ‪ LCD‬ خوانده می شود و در صورتی که صفر شود‬ ‫اطلاعات روی آن نوشته می شود.‬

‫* پایه ‪ :E‬اگر در این پایه پالسی از یک به صفر قرار داده شود،اطلاعاتی که روی پایه های ‪ D0‬ تا ‪ D7‬ قرار‬ ‫دارد درون یکی از رجیسترهایی که توسط پایه ‪ (Register Select) RS‬ مشخص می شود،جای می‬ ‫گیرد.حداقل زمانی که این پایه باید صفر باشد 450 نانو ثانیه است.‬

  • پین های DB0,DB1,DB2,DB3,DB4,DB5: جهت گرفتن دیتا از LCD بکار میروند.‬
  • پین DB6,DB7: جهت ارسال دیتا به LCD بکار میروند.‬
برای اتصال به بورد آردوینو اتصالات پین های LCD و آردوینو به صورت زیر است :‬

    • پین LCD RS به پین دیجیتال 12
    • پین LCD E به پین دیجیتال 11
    • پین LCD D4 به پین دیجیتال 5
    • پین LCD D5 به پین دیجیتال 4
    • پین LCD D6 به پین دیجیتال 3
    • پین LCD D7 به پین دیجیتال 2
    • LCD PIN3 را به یک پتانسیومتر 10K وصل کرده تا کنتراست صفحه تنظیم شود.
    • بقیه پین ها مطابق شکل زیر به VCC یا GND متصل میشوند:
Screenshot_۲۰۲۲-۰۴-۱۴_۰۱۱۱۲۰-1.jpg


دستورات و توابع مهم در آردوینو​

برای کد نویسی LCD ابتدا باید توسط دستور زیر کتابخانه Liquid Crystal Display را به فراخوانی کنیم:

#include <LiquidCrystal.h>

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

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

و برای اتصال 8 بیتی:

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

برای کار با LCD کاراکتری نیاز است در ()void setup مدل LCD کاراکتری از نظر تعداد کارکترهای سطر و ستون مشخص شود. برای این منظور از کد زیر استفاده میشود. cols تعداد ستون ها و rows تعداد سطرهای LCD کاراکتری می باشد.

lcd.begin(cols, rows);

سایر دستورات :

  • پاک کردن صفحه نمایش:
lcd.clear();

  • انتقال مکان نما به محل دلخوان:
lcd.setCursor(col, row);

  • نمایش متن و اعداد :
lcd.print(text);

  • نمایش یک کاراکتر خاص :
int size=lcd.write('M');

  • انتقال متن یک خانه به راست :
lcd.scrollDisplayRight();

  • راست چین کردن متن :
lcd.leftToRight();

  • روشن کردن LCD :
lcd.display();

  • نمایش متن و اعداد با فرمت DEC :
lcd.print(text , DEC);


Lcd کاراکتری - ویکی دانشگاه علوم پزشکی شهید بهشتی
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا