اتصال صفحه نمایش LSD دوره آموزشی

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

LCD 1602

در میان بسیاری از گزینه های صفحه نمایش، می خواهم به طور خاص به صفحه نمایش LCD1602 بر اساس کنترلر HD4478 اشاره کنم. این نمایشگر در دو رنگ موجود است: حروف سفید در پس زمینه آبی، حروف مشکی در پس زمینه زرد. اتصال LCD 1602 به آردوینو نیز مشکلی ایجاد نمی کند، زیرا یک کتابخانه داخلی وجود دارد و نیازی به دانلود چیز اضافی نیست. نمایشگرها نه تنها از نظر قیمت، بلکه در اندازه نیز متفاوت هستند. اغلب، آماتورهای رادیویی از 16 x 2 استفاده می کنند، یعنی 2 خط 16 کاراکتری. اما 20 × 4 نیز وجود دارد که در آن 4 خط 20 کاراکتری وجود دارد. ابعاد و رنگ هیچ نقشی در اتصال نمایشگر lcd 1602 به آردونو ندارند و به همین صورت به هم متصل می شوند. زاویه دید 35 درجه، زمان پاسخگویی نمایشگر 250 میلی ثانیه است. می تواند در دمای 20- تا 70 درجه سانتیگراد کار کند. در حین کار از 4 میلی آمپر برای صفحه نمایش و 120 میلی آمپر برای نور پس زمینه استفاده می کند.

کجا استفاده می شود؟

این نمایشگر نه تنها در بین آماتورهای رادیویی، بلکه در بین تولید کنندگان بزرگ نیز محبوب است. به عنوان مثال، چاپگرها و دستگاه های قهوه ساز نیز از LCD1602 استفاده می کنند. این به دلیل قیمت پایین آن است؛ این نمایشگر در سایت های چینی 200-300 روبل قیمت دارد. ارزش خرید در آنجا را دارد، زیرا در فروشگاه های ما نشانه گذاری برای این صفحه نمایش بسیار بالا است.

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

اتصال LCD 1602 به آردوینو نانو و یونو تفاوتی ندارد. شما می توانید با نمایشگر در دو حالت کار کنید: 4 بیت و 8. هنگام کار با 8 بیت، هر دو بیت مرتبه پایین و درجه بالا و با 4 بیت فقط از بیت های مرتبه پایین استفاده می شود. هیچ نکته خاصی در کار با 8 بیت وجود ندارد، زیرا 4 مخاطب دیگر را برای اتصال اضافه می کند، که توصیه نمی شود، زیرا سرعت بالاتر نخواهد بود، محدودیت به روز رسانی صفحه نمایش 10 بار در ثانیه است. به طور کلی برای اتصال lcd 1602 به آردوینو از سیم های زیادی استفاده می شود که باعث ایجاد ناراحتی می شود اما سپرهای خاصی وجود دارد که بعداً در مورد آن صحبت خواهیم کرد. عکس اتصال صفحه نمایش به آردوینو Uno را نشان می دهد:

کد نمونه:

#عبارتند از // ال سی دی کتابخانه LiquidCrystal لازم را اضافه کنید (7, 6, 5, 4, 3, 2); // (RS, E, DB4, DB5, DB6, DB7) void setup())( lcd.begin(16,2)؛ // تنظیم اندازه صفحه نمایش lcd.setCursor(0,0)؛ // تنظیم مکان نما به آغاز 1 خط lcd.print("سلام، دنیا!")؛ // خروجی متن lcd.setCursor(0, 1)؛ // مکان نما را در ابتدای خط 2 تنظیم کنید lcd.print("سایت") ; // خروجی متن ) void loop ()( )

کد چه کاری انجام می دهد؟ اولین قدم اتصال کتابخانه برای کار با نمایشگر است. همانطور که در بالا ذکر شد، این کتابخانه قبلاً در Arduino IDE گنجانده شده است و نیازی به دانلود و نصب اضافی ندارد. در مرحله بعد، کنتاکت هایی که به پین ​​ها متصل می شوند تعیین می شوند: به ترتیب RS، E، DB4، DB5، DB6، DB7. سپس اندازه صفحه نمایش تنظیم می شود. از آنجایی که در حال کار با نسخه ای با 16 کاراکتر و 2 خط هستیم، مقادیر زیر را می نویسیم. مکان نما را در ابتدای خط اول قرار می دهیم و اولین متن Hello World را نمایش می دهیم. سپس مکان نما را در خط دوم قرار دهید و نام سایت را نمایش دهید. همین! اتصال lcd 1602 به Arduino Uno در نظر گرفته شد.

I2C چیست و چرا لازم است؟

همانطور که در بالا ذکر شد، اتصال صفحه نمایش مخاطبین زیادی را اشغال می کند. به عنوان مثال، هنگام کار با چندین سنسور و نمایشگر LCD، 1602 پین ممکن است به سادگی کافی نباشد. اغلب، آماتورهای رادیویی از نسخه های Uno یا Nano استفاده می کنند که مخاطبین زیادی ندارند. سپس مردم با سپرهای مخصوص آمدند. مثلا I2C. این به شما امکان می دهد یک صفحه نمایش را تنها با 4 پین وصل کنید. این دو برابر است. ماژول I2C هر دو به صورت جداگانه فروخته می شود، جایی که باید خودتان آن را لحیم کنید، و قبلاً به صفحه نمایش LCD 1602 لحیم شده است.

اتصال با استفاده از ماژول I2C

اتصال LCD 1602 به آردوینو نانو با I2C فضای کمی را اشغال می کند، فقط 4 پین: زمین، برق و 2 خروجی داده. ما برق و زمین را به ترتیب به 5 ولت و GND در آردوینو وصل می کنیم. ما دو مخاطب باقیمانده: SCL و SDA را به هر پین آنالوگ متصل می کنیم. در عکس نمونه ای از اتصال lcd 1602 به آردوینو با ماژول I2C را مشاهده می کنید:

کد برنامه

اگر برای کار با نمایشگر بدون ماژول نیاز بود که فقط از یک کتابخانه استفاده کنید، سپس برای کار با یک ماژول به دو کتابخانه نیاز دارید. یکی از آنها قبلاً در Arduino IDE - Wire گنجانده شده است. کتابخانه دیگری به نام LiquidCrystal I2C باید جداگانه دانلود و نصب شود. برای نصب کتابخانه در آردوینو، محتویات آرشیو دانلود شده باید در پوشه اصلی Libraries بارگذاری شود. کد برنامه نمونه با استفاده از I2C:

#عبارتند از #عبارتند از ال سی دی LiquidCrystal_I2C (0x27,16,2); // تنظیم void setup() نمایشگر ( lcd.init(); lcd.backlight(); // روشن کردن نور پس زمینه نمایشگر lcd..setCursor(8, 1); lcd.print("LCD 1602")؛ ) void loop( ) ( // مکان نما را روی خط دوم و کاراکتر صفر تنظیم کنید. lcd.setCursor(0, 1)؛ // نمایش تعداد ثانیه هایی از زمانی که آردوینو شروع به کار کرده است lcd.print(millis()/1000); )

همانطور که می بینید، کد تقریباً یکسان است.

چگونه نماد خود را اضافه کنیم؟

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

0 0 0 1 0
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
1 1 0 0 1
0 0 0 0 1
0 0 0 1 0
0 0 0 0 0

اگر 0 - چیزی در آنجا وجود ندارد، اگر 1 - این یک منطقه نقاشی شده است. در مثال بالا می توانید ایجاد نماد "لبخند خندان" را مشاهده کنید. با استفاده از یک برنامه نمونه در آردوینو به شکل زیر است:

#عبارتند از #عبارتند از // کتابخانه لازم را اضافه کنید // بیت ماسک نماد لبخند بایت لبخند = ( B00010, B00001, B11001, B00001, B11001, B00001, B00010, ); ال سی دی LiquidCrystal (7، 6، 5، 4، 3، 2); // (RS, E, DB4, DB5, DB6, DB7) void setup())( lcd.begin(16, 2)؛ // تنظیم اندازه صفحه lcd.createChar(1, smile)؛ // ایجاد شماره کاراکتر 1 lcd.setCursor(0, 0)؛ // مکان نما را در ابتدای خط 1 تنظیم کنید lcd.print("\1")؛ // نمایش یک صورتک (شخصیت شماره 1) - "\1" ) حلقه خالی ())()

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

مشکلاتی که ممکن است نمایشگر در آنها کار نکند

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

ال سی دی LiquidCrystal_I2C (0x27,16,2);

در پرانتز می توانید دو مقدار 0x27 و 16.2 را ببینید (16.2 اندازه نمایشگر است و 0x27 آدرس I2C است). به جای این مقادیر، می توانید 0x37 یا 0x3F را تنظیم کنید. خوب، دلیل دیگر صرفاً معیوب بودن LCD 1602 است. با توجه به اینکه تقریباً همه چیز برای آردوینو ساخت چین است، نمی توانید 100% مطمئن باشید که محصول خریداری شده معیوب نیست.

مزایا و معایب LCD 1602

بیایید به مزایا و معایب نمایشگر LCD 1602 نگاه کنیم.

  • قیمت. این ماژول را می توان با قیمت بسیار مقرون به صرفه در فروشگاه های چین خریداری کرد. قیمت 200-300 روبل است. حتی گاهی اوقات همراه با یک ماژول I2C فروخته می شود.
  • اتصال آسان. احتمالاً این روزها هیچ کس LCD 1602 را بدون I2C وصل نمی کند. و با این ماژول، اتصال تنها 4 مخاطب را می گیرد، هیچ "وب" سیم وجود نخواهد داشت.
  • برنامه نويسي. به لطف کتابخانه های آماده، کار با این ماژول آسان است؛ همه توابع قبلاً نوشته شده اند. و اگر نیاز دارید نماد خود را اضافه کنید، فقط چند دقیقه طول می کشد.
  • در طول استفاده از آن توسط هزاران آماتور رادیویی، هیچ معایب عمده ای شناسایی نشده است، تنها مواردی از خریدهای معیوب وجود دارد، زیرا نسخه های چینی نمایشگرها عمدتا استفاده می شود.

این مقاله به اتصال 1602 به آردوینو پرداخته و نمونه هایی از برنامه های کار با این نمایشگر را نیز ارائه کرده است. این واقعاً یکی از بهترین ها در رده خود است؛ بیهوده نیست که هزاران آماتور رادیویی آن را برای پروژه های خود انتخاب می کنند!

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

در این مقاله نحوه اتصال آن به آردوینو و نمایش اطلاعات را به شما خواهیم گفت.

اجزای مورد استفاده (خرید در چین):

. برد کنترل

. سیم های اتصال

این نمایشگرها دو طرح دارند: نور پس زمینه زرد با حروف سیاه و یا، که بیشتر رایج است، نور پس زمینه آبی با حروف سفید.

اندازه نمایشگرها در کنترلر HD44780 می تواند متفاوت باشد، اما به همین ترتیب کنترل می شوند. رایج ترین ابعاد 16x02 (یعنی 16 کاراکتر در دو خط) یا 20x04 هستند. وضوح خود نمادها 5x8 پیکسل است.

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

خروجی های نمایش:

صفحه نمایش دارای یک کانکتور 16 پین برای اتصال است. پین ها در پشت تخته مشخص شده اند.

1 (VSS) - منبع تغذیه کنترلر (-)
2 (VDD) - منبع تغذیه کنترلر (+)
3 (VO) - پین کنترل کنتراست
4 (RS) - ثبت نام را انتخاب کنید
5 (R/W) - خواندن/نوشتن (حالت نوشتن هنگام اتصال به زمین)
6 (E) - فعال (استروب در حال کاهش)
7-10 (DB0-DB3) - بیت های مرتبه پایین رابط 8 بیتی
11-14 (DB4-DB7) - بیت های مرتبه بالای رابط
15 (A) - منبع تغذیه نور پس زمینه آند (+).
16 (K) - منبع تغذیه نور پس زمینه کاتد (-).

حالت خودآزمایی:

قبل از تلاش برای اتصال و نمایش اطلاعات، بهتر است بدانید که آیا صفحه نمایش کار می کند یا خیر. برای انجام این کار، باید به خود کنترلر ولتاژ اعمال کنید ( VSS و VDD، نور پس زمینه را روشن کنید ( الف و ک) و همچنین کنتراست را تنظیم کنید.

برای تنظیم کنتراست، از یک پتانسیومتر 10 کیلو اهم استفاده کنید. مهم نیست که چه شکلی خواهد بود. + 5 ولت و GND به پایه های بیرونی عرضه می شود، پایه مرکزی به خروجی متصل است. V.O.

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

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

خروجی اطلاعات:

کتابخانه LiquidCrystal.h که در Arduino IDE تعبیه شده است برای کار با نمایشگر استفاده می شود.

عملکرد کتابخانه

//کار با مکان نما lcd.setCursor(0, 0); // تنظیم مکان نما (شماره سلول، خط) lcd.home(); // مکان نما را روی صفر قرار دهید (0، 0) lcd.cursor(); // فعال کردن نمایان بودن مکان نما (زیر خط) lcd.noCursor(); // حذف نمایان شدن مکان نما (زیر خط) lcd.blink(); // فعال کردن چشمک زدن مکان نما (مکان نما 5x8) lcd.noBlink(); // خاموش کردن چشمک زدن مکان نما (مکان نما 5x8) //خروجی اطلاعات lcd.print("سایت"); // خروجی اطلاعات lcd.clear(); // صفحه نمایش را پاک کنید، (تمام داده ها را حذف کنید) مکان نما را روی صفر قرار دهید lcd.rightToLeft(); // ضبط از راست به چپ انجام می شود lcd.leftToRight(); // نوشتن از چپ به راست انجام می شود lcd.scrollDisplayRight(); // همه چیز روی صفحه نمایش را یک کاراکتر به سمت راست تغییر دهید lcd.scrollDisplayLeft(); // همه چیز روی نمایشگر را یک کاراکتر به سمت چپ تغییر دهید //اطلاعات مفید برای جاسوسان :) lcd.noDisplay(); // اطلاعات روی صفحه نمایش نامرئی می شود، داده ها پاک نمی شوند // اگر در لحظه ای که این تابع فعال است، چیزی نمایش داده نمی شود، پسصفحه نمایش ال سی دی()؛ // هنگام فراخوانی تابع display() تمام اطلاعاتی که بود

خود نمایشگر می تواند در دو حالت کار کند:

حالت 8 بیتی - هر دو بیت کم و زیاد برای این کار استفاده می شود (BB0-DB7)

حالت 4 بیتی - فقط بیت های کم اهمیت برای این مورد استفاده می شود (BB4-DB7)

استفاده از حالت 8 بیتی در این نمایشگر توصیه نمی شود. عملکرد آن به 4 پایه دیگر نیاز دارد و عملاً هیچ افزایش سرعتی وجود ندارد زیرا نرخ تازه سازی این نمایشگر محدود است< 10раз в секунду.

برای خروجی متن، باید پین های RS، E، DB4، DB5، DB6، DB7 را به پین ​​های کنترلر متصل کنید. آنها را می توان به هر پین آردوینو متصل کرد، نکته اصلی این است که دنباله صحیح را در کد تنظیم کنید.

کد نمونه:

#عبارتند از ال سی دی LiquidCrystal (7، 6، 5، 4، 3، 2); خالی برپایی()(lcd.begin(16, 2); // اندازه صفحه را تنظیم کنید lcd.setCursor(0, 0); lcd.print ("سلام، دنیا!"); // نمایش متن lcd.setCursor (0، 1); // مکان نما را در ابتدای خط 2 قرار دهید lcd.print("سایت"); // متن خروجی ) void حلقه (){ }

نمادهای خود را ایجاد کنید

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

مشکلی نیست، نماد مورد نیاز را می توان به صورت دستی ایجاد کرد (در مجموع تا 7 نماد). سلول در نمایشگرهای مورد نظر ما دارای وضوح 5x8 پیکسل است. تنها چیزی که وظیفه ایجاد یک نماد به آن مربوط می شود نوشتن یک ماسک بیت و قرار دادن یک ها در آن در مکان هایی است که نقطه ها باید روشن باشند و صفرها در جایی که نباید باشند.

در مثال زیر یک صورتک می کشیم.

کد نمونه

//بر روی Arduino IDE 1.0.5 تست شده است#عبارتند از #عبارتند از // کتابخانه مورد نیاز را اضافه کنید // بیت ماسک نماد لبخندبایت لبخند = ( B00010، B00001، B11001، B00001، B11001، B00001، B00010، ); ال سی دی LiquidCrystal (7، 6، 5، 4، 3، 2); // (RS، E، DB4، DB5، DB6، DB7)خالی برپایی()(lcd.begin(16, 2); // اندازه صفحه را تنظیم کنید lcd.createChar(1، لبخند); // نماد شماره 1 را ایجاد کنید lcd.setCursor(0, 0); // مکان نما را روی ابتدای 1 خط قرار دهید lcd.print("\1"); // نمایش یک صورتک (شخصیت شماره 1) - "\1") خالی حلقه (){ }

جایزه

در نظرات، یکی از اعضای انجمن پیوندی به مولد نماد ارسال کرد

  • ایگورکا

      مولد شخصیت مانند بالا،
      من این کار را کردم زیرا ضعیف نبودم)

این بار می خواهم به شما بگویم که چگونه صفحه نمایش گوشی موبایل نوکیا 1202 را به میکروکنترلر Atmega8 متصل کنید. ما در محیط CodeVision برنامه ریزی می کنیم. من ممکن است اینجا و آنجا اشتباه کنم. طولی نکشید که فهمیدم چیست. من تجربه ای در برنامه نویسی ندارم و کتابخانه را برای کار با نمایشگر ننوشتم. آنها از یک پروژه در اینترنت کپی شده اند. تمام توابع لازم در آنجا نوشته شده است و یک فونت 5 * 8 با حروف لاتین و سیریلیک وجود دارد. همچنین چند کاراکتر 12*16 و 24*32 وجود دارد که نویسنده کتابخانه ها از آنها در دستگاه خود استفاده کرده است. اگر آنها را حذف کنید، فونت 5*8 حدود 700 بایت فلاش میکروکنترلر را اشغال می کند. بنابراین، میکروکنترلر پروژه باید "چرب تر" گرفته شود. در مورد من، من استفاده کردم Atmega8. به اندازه کافی همه فایل ها - منابع، کتابخانه و غیره، .

نمودار اتصال نشانگر

نمودار شماتیک اتصال نمایشگر LCD به MK

من یک نمودار اتصال رسم کردم. برای تغذیه صفحه نمایش به ولتاژ 3.3 ولت نیاز دارید. اگر میکروکنترلر را از 5 ولت تغذیه می کنید، تقسیم کننده های مقاومت و یک میکرو مدار نصب کنید. 78L33. اگر کل مدار از 3.3 ولت تغذیه می شود، به تقسیم کننده های مقاومتی نیازی نیست. به نظر می رسد که Atmega8A می تواند از 3.3 ولت کار کند به شرطی که فرکانس بالاتر از 8 مگاهرتز نباشد. من شخصاً آن را امتحان نکرده ام. من همه چیز را روی یک برد اشکال زدایی که با برق 5 ولت تغذیه می شود مونتاژ کرده ام. به هیچ وجه نباید یک الکترولیت با ظرفیت زیاد جلوی خود نمایشگر قرار دهید. در همان ابتدای کار، کنترلر دستورات اولیه را به نمایشگر ارسال می کند. شارژ خازن زمان می برد. در حالی که در حال شارژ شدن است و نمایشگر شروع به کار می کند، مدتی می گذرد و دستور اولیه سازی را دریافت نمی کند. البته اینها میلی ثانیه هستند، اما در این مورد اثر محسوس است.


نمایش نمودار pinout

نمایشگر نوکیا 1202 دارای رابط 9 بیتی SPI است. میکروکنترلری که ما انتخاب کردیم این تجمل را ندارد. بنابراین، برای برقراری ارتباط با نمایشگر، ما از سخت افزار استفاده نمی کنیم، بلکه از نرم افزار SPI استفاده می کنیم. تمام پین‌های PORTB باید به‌عنوان خروجی پیکربندی شوند. در تنظیمات پروژه باید یک علامت بزنید. ثابت های جهانی را در حافظه فلش ذخیره کنید" این عمل برای اینکه آرایه های فونت ها و تصاویر ما در فلش ذخیره شوند ضروری است.


بنابراین، ما پروژه را ایجاد کردیم. ما یک میکروکنترلر را انتخاب کردیم، فرکانس ساعت را تنظیم کردیم و پروژه را پیکربندی کردیم. بعدش چی؟ و سپس باید کتابخانه هایی را برای کار با نمایشگر اضافه کنید و کتابخانه ها را به تاخیر بیندازید. آرشیو را باز کنید. دوتا فایل اونجا هست آنها باید در پوشه های خاصی کپی شوند. امیدوارم CodeVision را مستقیماً روی درایو C:\ نصب کرده باشید. اگر بله، فایل ها را در مسیرهای مناسب کپی کنید:

C:\cvavreval\inc برای فایل 1100.inc و
C:\cvavreval\lib برای فایل 1100.h.


همچنین می خواهم بگویم که تخصیص پین های میکروکنترلر در فایل قابل تغییر است ساعت 1100. سپس نمودار اتصال تغییر خواهد کرد. بیایید کد نویسی را شروع کنیم. بیایید فقط مقداری نوشته روی صفحه نمایش با فونت اصلی 5*8 نمایش دهیم. در همان ابتدا کتابخانه ها را اضافه خواهیم کرد.

#عبارتند از< 1100.h>// نمایش کتابخانه
#عبارتند از // کتابخانه تاخیری

در پایین، قبل از حلقه اصلی while(1)() نمایشگر را مقداردهی اولیه می کنیم و آن را پاک می کنیم.

lcd_init(); // نمایش مقداردهی اولیه
lcd_clear(); // صفحه نمایش را پاک کنید

ما همچنین کتیبه خود را قبل از چرخه اصلی قرار می دهیم. اجازه دهید کنترلر ابتدا پیام را روی نمایشگر نمایش دهد و سپس در حلقه اصلی بچرخد. این را می نویسیم:

print_string("Output the inscription",5,0);
print_string("هر چه می خواهیم"،0،1);
print_string("BUCKER",10,2);

فکر می کنم اینجا همه چیز روشن است. اولین رقم مختصات x روی نمایشگر است. می تواند از 0 تا 96 مقدار بگیرد. دومی یک رشته است. از 0 تا 7 است. اصولاً 8 سطر و نیم در آن جا می شود اما نیم خط را نمی خوانیم. کامپایل و فلش می کنیم. بیایید به نتیجه نگاه کنیم. شما همچنین می توانید Proteus را نصب کرده و آن را تست کنید. کنترلر را می توان طوری پیکربندی کرد که از یک ژنراتور داخلی در فرکانس مشخص شده در پروژه با تاخیر شروع 64 میلی ثانیه کار کند. من یک آرشیو با پروژه کامپایل شده اضافه می کنم. فرکانس 8 مگاهرتز


اما همانطور که قبلاً در ابتدا نوشتم، نمادهای دیگری نیز در کتابخانه وجود دارد. درست است، هیچ حرفی وجود ندارد، فقط اعداد. حالا بیایید کار را کمی پیچیده کنیم. بگذارید کتیبه بی اثر نباشد، بلکه تغییر کند. فرض کنید از 0 تا 9 با فاصله زمانی 1 ثانیه شمارش شود. وقتی به 9 رسید، به صفر می رسد و دوباره شروع می شود. بیایید اعداد بزرگ با اندازه 24*32 را در نظر بگیریم. خوب، بیایید شروع کنیم. می توانید پروژه قبلی را بردارید و سه خط "print_string" را حذف کنید. بلافاصله پس از افزودن کتابخانه ها، بیایید یک متغیر جهانی خاص را اعلام کنیم. متر.

کاراکتر m = 0;

شما می توانید به سادگی بنویسید:

در این حالت به طور خودکار مقدار 0 به آن اختصاص داده می شود. در حلقه اصلی این را می نویسیم:

char_24_32(m,35,2); //تابع خروجی نماد 24*32
delay_ms (1000); // 1 ثانیه صبر کنید
m++; // 1 را به متغیر m اضافه کنید
if(m>9)m=0; // وضعیت. اگر متغیر m بزرگتر از 9 باشد، m برابر با 0 است.

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

من سعی می کنم به شما بگویم که چگونه تصاویر را بکشید و آنها را روی صفحه نمایش نمایش دهید. نحوه ایجاد آرایه ها و توابع برای خروجی آنها و نحوه معکوس کردن یک تصویر. کتابخانه ها از سایت cxem.net به امانت گرفته شده اند. مواد آماده شد بوزر.

در مورد مقاله اتصال یک صفحه نمایش به یک میکروکنترلر بحث کنید

بخش جدایی ناپذیر تعداد زیادی دستگاه الکترونیکی چیست؟ البته ابزارهای نشانگر و خروجی گرافیکی داده ها. هنگامی که نتیجه "جعبه هوشمند" به صورت بصری قابل مشاهده باشد همیشه برای کاربر راحت تر و خوشایندتر است. بنابراین، امروز یک نمایشگر به STM32 برای نمایش متن و اعداد متصل می کنیم. قهرمان آزمایش های ما یک نمایشگر نسبتاً محبوب از Winstar خواهد بود. به هر حال، یک توضیح مهم در نظرات ظاهر شد که روش اساساً برای همه نمایشگرها یکسان است. HD44780.با تشکر از JekaKey برای اضافه کردن مهم)

ابتدا باید نمایشگر به کنترلر متصل شود. دیتاشیت را دانلود کنید و پین اوت WH1602 را پیدا کنید. اینجا را نگاه کن:

همانطور که می دانید، نمایشگر WH1602دارای 16 پین بیایید هر کدام را جداگانه بررسی کنیم ...

پین های Vss، Vdd و K باید به زمین و به برق وصل شوند، یعنی دقیقاً همانطور که در جدول نشان داده شده است، هیچ شگفتی و حتی بحثی وجود ندارد)

پین شماره 3 برای تنظیم کنتراست استفاده می شود - اگر +5 ولت را در آنجا اعمال کنیم، مطلقاً چیزی نمی بینیم، و اگر پین را به زمین اتصال کوتاه کنیم، دو ردیف مربع سیاه را تحسین خواهیم کرد. ، بنابراین برای تنظیم کنتراست باید یک پتانسیومتر (مقاومت) با مقاومت متغیر را در آنجا آویزان کنیم. بهترین دید کاراکترها با ولتاژ 0.5-0.7 ولت در این پین نمایشگر فراهم می شود.

پین RS در حال حاضر یک پایه است که ما خودمان آن را با استفاده از یک میکروکنترلر کنترل می کنیم. سطح ولتاژ پایین (0) در این پین به این معنی است که اکنون یک فرمان دنبال می شود، سطح بالا (1) به این معنی است که اکنون داده هایی برای نوشتن در حافظه نمایشگر وجود دارد.

پین R/W - اینجا واضح است، یا داده ها را می خوانیم (مثلاً پرچم اشغال را نشان می دهیم)، در این مورد روی این پین 1 وجود دارد، یا دستور/داده را روی نمایشگر می نویسیم، سپس در اینجا 0 داریم.

DB7 – DB0 – گذرگاه داده، و این گویای همه چیز است)

پین E به اصطلاح سیگنال Enable است. این چیزی است که او برای آن مورد نیاز است. برای کار با نمایشگر - ثبت داده ها یا صدور فرمان - باید یک پالس مثبت به این پین صادر کنیم. یعنی روال به صورت زیر خواهد بود:

  1. در پین های RS، R/W، DB7 - DB0 - سیگنال های لازم مربوط به فرمان ما است.
  2. ما یکی را به پین ​​E عرضه می کنیم.
  3. Zhdems (طبق دیتاشیت – حداقل 150 ns)
  4. سطح پایین (0) را برای پین E اعمال می کنیم.

برای روشن کردن نور پس زمینه صفحه نمایش باید 4.2 ولت روی پایه A/Vee قرار دهید.

ارتباط با نمایشگر WH1602 به این صورت است.

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

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

صفرها را روی پین های RS، R/W، DB7، DB6، DB5، DB4، DB3، DB2، DB1 و یک را برای پین DB0 اعمال می کنیم. تمام شد! درست است، یکی روی پین E، سپس کمی صبر کنید و E را دوباره به صفر برسانید. تمام است، صفحه نمایش پاک می شود 😉 درست قبل از اجرای دستور بعدی باید مکث کنید، که در دیتاشیت برای هر دستور مشخص شده است. نظرسنجی از پرچم مشغول موثرتر است؛ به محض اینکه به 0 بازنشانی شد، می توانید به کار خود ادامه دهید. برای خواندن این پرچم نیز دستور خاصی وجود دارد، پس با این همه چیز مشخص است) بیایید ادامه دهیم ...

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

ما 2 فایل در اختیار داریم، MT_WH1602.c و MT_WH1602.h. دومی را پاره می کنیم، در اینجا باید پین ها و کنترل کننده مورد استفاده را انتخاب کنیم.

ضمناً صفحه نمایش من به این صورت متصل است:

RS-PC2
R/W – PB10
E–PB14
DB7–PD2
DB6–PC12
DB5–PA8
DB4–PA10
DB3–PA15
DB2–PD11
DB1–PA3
DB0–PA5

فایل MT_WH1602.h را باز کنید:

#define PLATFORM (STM32F10x)

سپس پین های میکروکنترلر را که نمایشگر به آن متصل است انتخاب کنید. فقط ابتدا اجازه دهید تعیین کنیم از کدام پورت ها استفاده کنیم. وقتی متصل می شوم، از GPIOA، GPIOB، GPIOC و GPIOD استفاده می کنم، می نویسیم:

به طور مشابه برای سایر پایه های میکروکنترلر.

تنظیمات را تمام کردیم، بیایید ادامه دهیم) برای فراخوانی دستورات داده شده در ابتدای مقاله، فایل MT_WH1602.c حاوی توابع زیر است (آنها بر اساس نام دستورات نامگذاری شده اند، بنابراین فکر می کنم همه چیز واضح است) :

void MT_WH1602_ClearDisplay(void ); void MT_WH1602_ReturnHome(void ) ; void MT_WH1602_EntryModeSet (آدرس شناسه bool، bool shift) ; void MT_WH1602_DisplayOnOff (bool Dbit، bool Cbit، bool Bbit) ; void MT_WH1602_CursorOrDisplayShift (بول SCbit، bool RLbit) ; void MT_WH1602_FunctionSet (bool DLbit, bool Nbit, bool Fbit) ; void MT_WH1602_SetCGRAMaddress (آدرس uint8_t) ; void MT_WH1602_SetDDRAMaddress (آدرس uint8_t) ; bool MT_WH1602_ReadBusy(void ); void MT_WH1602_WriteData(data uint8_t) ;

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

void MT_WH1602_DisplayOnOff (bool Dbit، bool Cbit، bool Bbit) ;

بیایید به جدول دستورات نگاه کنیم:

می بینیم که فرمان Display ON/OFF نه تنها نمایشگر را روشن/خاموش می کند، بلکه مکان نما و چشمک زدن مکان نما را نیز فعال/غیرفعال می کند. در دیتاشیت، این بیت‌های فرمان به‌عنوان D، C و B تعیین می‌شوند و آن‌ها را به‌عنوان پارامتر به تابع ارسال می‌کنیم. اگر باید نمایشگر و مکان نما را روشن کنیم، اما چشمک زدن مکان نما را غیرفعال کنیم، دستور را به صورت زیر فراخوانی می کنیم:

MT_WH1602_DisplayOnOff(1، 1، 0);

در کل همه چیز ساده است😉

به طور خلاصه، یک پروژه جدید ایجاد می کنیم، یک کتابخانه برای کار با نمایشگر WH1602 اضافه می کنیم، یک فایل .c خالی ایجاد می کنیم و شروع به پر کردن آن با کد می کنیم:

// شامل فایل کتابخانه#include "MT_WH1602.h" /*******************************************************************/ int main(void) ( // تابع مقداردهی اولیه را فراخوانی کنید، بدون آن نمی توانیم =)() ; // اکنون باید پیکربندی اولیه نمایشگر را انجام دهیم // مستندات و اینترنت انجام این کار را توصیه می کنند ;) MT_WH1602_FunctionSet(1, 0, 0); MT_WH1602_Delay(1000) ; MT_WH1602_FunctionSet(1, 0, 0); MT_WH1602_Delay(1000) ; MT_WH1602_FunctionSet(1, 0, 0); MT_WH1602_Delay(1000) ; MT_WH1602_FunctionSet(1، 1، 1); MT_WH1602_Delay(1000) ; MT_WH1602_DisplayOnOff(1، 0، 0)؛ MT_WH1602_Delay(1000) ; MT_WH1602_ClearDisplay(); MT_WH1602_Delay(2000); // به عنوان مثال، من اولین مقادیر تاخیری را که به ذهنم رسید گرفتم) // به طور کلی، باید پرچم اشغال صفحه نمایش را بررسی کنید // بیایید اکنون چیزی مانند نام سایت خود را نمایش دهیم MT_WH1602_WriteData(0x6D); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x69); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x63) ; MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x72); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x6F) ; MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x74); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x65) ; MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x63) ; MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x68); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x6E); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x69); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x63) ; MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x73); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x2E); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x72); MT_WH1602_Delay(100) ; MT_WH1602_WriteData(0x75); MT_WH1602_Delay(100) ; در حالی که (1) (__NOP() ;)) /*******************************************************************/

تمام شد، بیایید بررسی کنیم)


همانطور که می بینید، همه چیز به درستی کار می کند)

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

بنابراین، برای تعیین مقداری که باید در حافظه نمایشگر بنویسید، باید اعداد نوشته شده در بالا و سمت چپ در این جدول را برای یک نماد خاص بگیرید. به عنوان مثال، نماد "A". بیایید ببینیم - این نماد مربوط به ستون 0100 (0x4) و خط 0001 (0x1) است. به نظر می رسد که برای نمایش نماد "A" باید مقدار 0x41 را در صفحه نمایش بنویسید.

اکنون تمام شد =) ما اتصال و عملکرد صفحه نمایش WH1602 را مرتب کردیم، بنابراین به زودی شما را می بینیم!

P.S. هنگام کار با کتابخانه، عملکرد خواندن پرچم مشغول را آزمایش نکردم، بنابراین اگر ناگهان چیزی آنطور که باید کار نکرد، بنویسید، ما آن را متوجه خواهیم شد)

  • ماژول FC-113 مبتنی بر تراشه PCF8574T است که یک رجیستر شیفت 8 بیتی است - یک "بسط" ورودی-خروجی برای گذرگاه سریال I2C. در شکل، ریز مدار DD1 تعیین شده است.
  • R1 یک مقاومت تریم برای تنظیم کنتراست نمایشگر LCD است.
  • Jumper J1 برای روشن کردن نور پس زمینه نمایشگر استفاده می شود.
  • پین های 1…16 برای اتصال ماژول به پین ​​های نمایشگر LCD استفاده می شود.
  • پدهای تماس A1...A3 برای تغییر آدرس I2C دستگاه مورد نیاز است. با لحیم کردن جامپرهای مناسب می توانید آدرس دستگاه را تغییر دهید. جدول مطابقت آدرس ها و جامپرها را نشان می دهد: "0" مربوط به یک مدار باز، "1" به یک بلوز نصب شده است. به طور پیش فرض، هر 3 جامپر و آدرس دستگاه باز هستند 0x27.

2 نمودار اتصال صفحه نمایش LCD به آردوینواز طریق پروتکل I2C

ماژول به روش استاندارد برای گذرگاه I2C به آردوینو متصل می شود: پایه SDA ماژول به پورت آنالوگ A4 وصل شده است، پایه SCL به پورت آنالوگ A5 آردوینو متصل می شود. این ماژول با +5 ولت از آردوینو تغذیه می شود. خود ماژول توسط پین های 1…16 به پین ​​های مربوطه 1…16 در صفحه نمایش LCD متصل می شود.


3 کتابخانه برای کاراز طریق پروتکل I2C

اکنون برای کار با LCD از طریق رابط I2C به یک کتابخانه نیاز داریم. برای مثال می توانید از این (لینک در خط "دانلود نمونه کد و کتابخانه") استفاده کنید.

آرشیو دانلود شده LiquidCrystal_I2Cv1-1.rarاز حالت فشرده در یک پوشه خارج کنید \ کتابخانه ها، که در فهرست Arduino IDE قرار دارد.

این کتابخانه مجموعه ای از عملکردهای استاندارد را برای صفحه نمایش LCD پشتیبانی می کند:

تابعهدف
کریستال مایع() یک متغیر نوع LiquidCrystal ایجاد می کند و پارامترهای اتصال نمایشگر (اعداد پین) را می پذیرد.
شروع() مقداردهی اولیه نمایشگر LCD، تنظیم پارامترها (تعداد خطوط و کاراکترها)؛
واضح () پاک کردن صفحه و برگرداندن مکان نما به موقعیت شروع؛
خانه () مکان نما را به موقعیت شروع برگردانید؛
setCursor() تنظیم مکان نما در یک موقعیت مشخص؛
نوشتن() نماد را روی صفحه LCD نمایش می دهد.
چاپ() متن را روی صفحه LCD نمایش می دهد.
مکان نما () مکان نما را نشان می دهد، یعنی. خط کشی زیر جای کاراکتر بعدی؛
noCursor() مکان نما را پنهان می کند.
چشمک زدن () چشمک زدن مکان نما؛
noBlink() لغو چشمک زدن؛
noDisplay() خاموش کردن صفحه نمایش در حین ذخیره تمام اطلاعات نمایش داده شده؛
نمایش دادن() روشن کردن صفحه نمایش در حین ذخیره تمام اطلاعات نمایش داده شده؛
scrollDisplayLeft() محتویات نمایشگر را 1 موقعیت به سمت چپ حرکت دهید.
scrollDisplayRight() محتویات نمایشگر را در موقعیت 1 به سمت راست حرکت دهید.
اسکرول خودکار() فعال کردن خودکار اسکرول؛
noAutoscroll() غیرفعال کردن خودکار اسکرول؛
چپ به راست() جهت متن را از چپ به راست تنظیم می کند.
راست به چپ() جهت متن از راست به چپ؛
createChar() یک کاراکتر سفارشی برای صفحه LCD ایجاد می کند.

4 طرحی برای خروجی متنبه صفحه LCD از طریق گذرگاه I2C

بیایید نمونه را باز کنیم: نمونه فایل LiquidCrystal_I2C CustomCharsو ما آن را کمی تغییر می دهیم. پیامی را نمایش خواهیم داد که در انتهای آن علامت چشمک زن وجود دارد. نظرات کد در مورد تمام نکات ظریف طرح نظر می دهند.

#عبارتند از // شامل کتابخانه Wire #include باشد // اتصال کتابخانه LCD #define printByte(args) write(args); // uint8_t قلب = (0x0,0xa,0x1f,0x1f,0xe,0x4,0x0); // ماسک بیت نماد "قلب" LiquidCrystal_I2C lcd(0x27, 16, 2); // آدرس 0x27 را برای نمایشگر LCD 16x2 تنظیم کنید void setup() ( lcd.init(); // مقداردهی اولیه نمایشگر LCD lcd.backlight(); // نور پس زمینه نمایشگر را روشن کنید lcd.createChar(3, heart); // ایجاد یک نماد "قلب" در سلول حافظه 3 lcd.home(); // مکان نما را در گوشه بالا سمت چپ، در موقعیت (0,0) lcd قرار دهید."؛ // یک خط متن را چاپ کنید lcd.setCursor(0, 1)؛ // مکان نما را به خط 2 حرکت دهید، کاراکتر 1 lcd.print( "i "); // چاپ پیام در خط 2 lcd.printByte(3)؛ // چاپ نماد "قلب" واقع در سلول 3rd lcd.print("Arduino"); } حلقه خالی() (// چشمک زدن آخرین کاراکتر lcd.setCursor(13, 1); // مکان نما را به خط 2، کاراکتر 1 حرکت دهید lcd.print("\t"); تاخیر (500); lcd.setCursor(13, 1); // مکان نما را به خط 2، کاراکتر 1 حرکت دهید lcd.print(" "); تاخیر (500); }

به هر حال، شخصیت های نوشته شده توسط دستور lcd.createChar();، حتی پس از قطع برق در حافظه نمایشگر باقی می ماند، زیرا برای نمایش رام 1602 نوشته شده است.

5 نمادهای خود را ایجاد کنیدبرای نمایشگر LCD

بیایید نگاهی دقیق‌تر به موضوع ایجاد نمادهای خود برای صفحه‌های LCD داشته باشیم. هر کاراکتر روی صفحه از 35 نقطه تشکیل شده است: 5 نقطه عریض و 7 نقطه بالا (+1 خط رزرو برای خط کشی). در خط 6 طرح بالا، آرایه ای از 7 عدد تعریف می کنیم: (0x0، 0xa، 0x1f، 0x1f، 0xe، 0x4، 0x0). تبدیل اعداد هگزادسیمال به باینری: {00000, 01010, 11111, 11111, 01110, 00100, 00000} . این اعداد چیزی جز ماسک های بیتی برای هر یک از 7 خط نماد نیستند، جایی که "0" نشان دهنده یک نقطه روشن و "1" یک نقطه تاریک است. به عنوان مثال، نماد قلب که به عنوان بیت ماسک مشخص شده است، همانطور که در شکل نشان داده شده است، روی صفحه ظاهر می شود.

6 کنترل صفحه نمایش LCDاز طریق اتوبوس I2C

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


7 پشت سر چیهاتوبوس I2C

به عنوان یک امتیاز، بیایید به نمودار زمان برای نمایش کاراکترهای لاتین "A" "B" و "C" در صفحه نمایش LCD نگاه کنیم. این کاراکترها در رام نمایشگر ذخیره می شوند و به سادگی با انتقال آدرس خود به نمایشگر روی صفحه نمایش داده می شوند. نمودار از پین های RS، RW، E، D4، D5، D6 و D7 نمایشگر گرفته شده است. در حال حاضر پس از مبدل "گذرگاه موازی I2C" FC-113. می توان گفت که کمی عمیق تر در سخت افزار فرو می رویم.


نمودار زمان بندی خروجی حروف لاتین "A" "B" و "C" در صفحه نمایش LCD 1602

نمودار نشان می دهد که کاراکترهایی که در ROM نمایشگر هستند (نگاه کنید به صفحه 11 دیتاشیت، لینک زیر) در دو نوک پستی منتقل می شوند، که اولی شماره ستون جدول را تعیین می کند و دومی - شماره ردیف. در این حالت، داده ها در لبه سیگنال روی خط "چفت" می شوند E(فعال) و خط R.S.(انتخاب ثبت نام) در یک حالت منطقی است، به این معنی که داده ها در حال انتقال هستند. حالت پایین در خط RS به این معنی است که دستورالعمل ها ارسال می شوند، چیزی که قبل از انتقال هر کاراکتر می بینیم. در این حالت کد دستورالعمل بازگشت حمل به موقعیت (0، 0) نمایشگر LCD منتقل می شود که با مطالعه توضیحات فنی نمایشگر نیز می توان به آن پی برد.

و یک مثال دیگر. این نمودار زمان‌بندی خروجی نماد قلب را بر روی صفحه نمایش LCD نشان می‌دهد.


باز هم دو تکانه اول فعال کردندستورالعمل ها را رعایت کنید صفحه اصلی ()(0000 0010 2) - کالسکه را به موقعیت (0؛ 0) برگردانید و دو دوم - خروجی را به صفحه نمایش LCD ذخیره شده در سلول حافظه 3 10 (0000 0011 2) نماد "قلب" (دستورالعمل) lcd.createChar(3, heart);طرح).