آموزش جامع 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 را به فراخوانی کنیم.

 

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

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

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

 

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

 

 

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

۱۲->Rs

۱۱->R/W

۱۰->EN

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

 

 

 

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

 

 

begin()

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

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

 

 

 

clear()

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

 

 

home()

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

setCursor()

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

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

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

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

 

 

write()

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

 

 

print()

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

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

 

 

cursor()

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

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

 

 

blink()

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

 

 

 

noDisplay()

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

 

scrollDisplayRight()

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

 

scrollDisplayLeft()

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

autoscroll()

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

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

 

rightToLeft()

 

 

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

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

 

 

 

 

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

 

 

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

17 دیدگاه ها

  1. شهریار می‌گه:

    سلام
    لطفا کار با lcd گرافیکی رو هم آموزش بدین

    ممنون بایت زحاتتون

  2. علی مهدوی می‌گه:

    ممنون از آموزشتون
    با این آموزش امکان راه اندازی Oled هم هست؟

  3. مائده می‌گه:

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

  4. […] آموزش جامع کار با LCD کاراکتری در آردوینو […]

  5. علیسان می‌گه:

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

  6. Glimpser می‌گه:

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

  7. وکیل می‌گه:

    سلام
    واقعا عالی و کاربردی بود ممنون

  8. pooya می‌گه:

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

  9. pooya می‌گه:

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

  10. پرینتر بعدی می‌گه:

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

  11. خیلی ممنون از مطالب مفیدی که در سایتتون قراردادید

  12. مک می‌گه:

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

پاسخ دهید

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