نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی
  • خانه
  • ایمنی
  • آردوینو و نمایشگر LCD کاراکتری. اتصال صفحه نمایش LCD به آردوینو

آردوینو و نمایشگر LCD کاراکتری. اتصال صفحه نمایش LCD به آردوینو

نمایشگر کریستال مایع (Liquid Crystal Display) به اختصار LCD ساخته شده بر روی فناوری کریستال مایع است. هنگام طراحی دستگاه های الکترونیکی، ما به یک دستگاه ارزان قیمت برای نمایش اطلاعات نیاز داریم و دومین عامل به همان اندازه مهم، در دسترس بودن کتابخانه های آماده برای آردوینو است. از بین تمام ال سی دی های موجود در بازار، پرکاربردترین LCD 1602A است که می تواند کاراکترهای ASCII را در 2 خط (16 کاراکتر در هر خط) هر کاراکتر در یک ماتریس پیکسلی 5x7 نمایش دهد. در این مقاله به اصول اتصال نمایشگر به آردوینو می پردازیم.

مشخصات فنی

ولتاژ تغذیه: 5 ولت
اندازه نمایشگر: 2.6 اینچ
نوع نمایشگر: 2 خط در 16 کاراکتر
رنگ نور پس زمینه: آبی
رنگ کاراکتر: سفید
ابعاد: 80mm x 35mm x 11mm

توضیحات نمایشگر

LCD 1602A یک ماژول الکترونیکی مبتنی بر درایور HD44780 هیتاچی است. LCD1602 دارای 16 پین است و می تواند در حالت 4 بیتی (فقط با استفاده از 4 خط داده) یا 8 بیتی (با استفاده از هر 8 خط داده) یا رابط I2C کار کند. در این مقاله در مورد اتصال در حالت 4 بیتی صحبت خواهم کرد.

تخصیص پین:
VSS: قدرت ماژول "-".
VDD: قدرت ماژول "+".
VO: خروجی کنترل کنتراست
RS: ثبت نام انتخاب
RW: حالت نوشتن یا خواندن را انتخاب کنید (هنگام اتصال به زمین، روی حالت نوشتن تنظیم کنید)
E: سقوط بارق
DB0-DB3: بیت های رابط
DB4-DB7: بیت های رابط
A: قدرت نور پس زمینه "+".
K: "-" قدرت نور پس زمینه

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

در پشت ماژول دو تراشه در طرح قطره ای (ST7066U و ST7065S) و یک مهار الکتریکی وجود دارد، من در ترسیم نمودار مدار نکته ای نمی بینم، من فقط در مورد مقاومت R8 (100) صحبت می کنم. اهم)، که به عنوان یک مقاومت محدود کننده برای نور پس زمینه LED عمل می کند، بنابراین می توانید 5 ولت را مستقیماً به پین ​​A متصل کنید. کمی بعد مقاله ای خواهم نوشت که در آن به شما خواهم گفت که چگونه می توانید نور پس زمینه صفحه نمایش LCD را با استفاده از یک PIECE تغییر دهید. و یک ترانزیستور

اتصال LCD 1602A به آردوینو (حالت 4 بیتی)

جزئیات مورد نیاز:
آردوینو UNO R3 x 1pc
صفحه نمایش LCD 1602 آمپر (2×16، 5 ولت، آبی) x 1 عدد.
سیم DuPont، 2.54 میلی‌متر، 20 سانتی‌متر، F-F (مونث - ماده) x 1 عدد.
پتانسیومتر 10 کیلو اهم x 1 عدد.
کانکتور PLS-16 x 1 عدد.
تخته نان MB-102 x 1
کابل USB 2.0 A-B x 1

ارتباط:
برای اتصال از برد برد استفاده می کنیم، نمودار و جدول اتصال LCD1602a به آردوینو در حالت 4 بیتی در شکل زیر قابل مشاهده است.

صفحه نمایش از طریق پین های PLS-16 به تخته نان وصل می شود (آنها باید به نمایشگر لحیم شوند). ماژول نمایشگر را روی تخته نان نصب کنید و برق VDD (پایه 2) را به 5 ولت (آردوینو) و VSS (پایه 1) را به GND (آردوینو) و سپس RS (پایه 4) را به پایه دیجیتال 8 (آردوینو) وصل کنید. RW (پایه 5) با اتصال آن به GND (Arduino) به زمین متصل می شود، سپس پایه E را به پایه 8 (Arduino) وصل می کنیم. اتصال 4 بیتی به چهار پین (DB4 تا DB7) نیاز دارد. پایه‌های DB4 (پایین 11)، DB5 (پایین 12)، DB6 (پایین 13) و DB7 (پایه 14) را به پایه‌های دیجیتال آردوینو 4، 5، 6، و 7 وصل کنید. یک پتانسیومتر 10K برای تنظیم کنتراست نمایشگر، 1602a استفاده می‌شود. نمودار اتصال LCD در زیر نشان داده شده است

این کتابخانه قبلاً در Arduino IDE گنجانده شده است و نیازی به نصب آن نیست. این مثال کد را در پنجره برنامه Arduino IDE کپی کرده و در کنترلر آپلود کنید.

/* تست روی Arduino IDE 1.6.11 تاریخ تست 2016/09/20 انجام شد. */ #عبارتند از ال سی دی LiquidCrystal (8، 9، 4، 5، 6، 7); void setup() ( lcd.begin(16, 2); // Initialize LCD 16x2 ) void loop() ( lcd.setCursor(0,0); // تنظیم مکان نما به خط اول lcd.print ("سلام، دنیا" // نمایش متن lcd.setCursor(0,1)؛ // مکان نما را روی خط دوم تنظیم کنید lcd.print("www.robotchip.ru"); // نمایش متن )

تست روی Arduino IDE 1.6.11 انجام شد

تاریخ تست 1395/09/20

#عبارتند از

ال سی دی LiquidCrystal (8 , 9 , 4 , 5 , 6 , 7 ) ;

void setup()

ال سی دی . شروع (16، 2)؛ // LCD 16x2 را راه اندازی کنید

حلقه خالی()

ال سی دی . چاپ ("سلام، دنیا"); // خروجی متن

ال سی دی . چاپ ("www.robotchip.com" ); // خروجی متن

دانلود برنامه

کمی در مورد برنامه.
برای تسهیل ارتباط بین آردوینو و نمایشگر LCD، از یک کتابخانه داخلی در آردوینو IDE استفاده شده است. LiquidCrystal.h - که برای نمایشگرهای LCD با استفاده از نوشته شده است HD44780 چیپست (یا تراشه های سازگار) (هیتاچی). این کتابخانه می تواند هر دو حالت 4 بیتی و 8 بیتی اتصال LCD را مدیریت کند.

حالت نمایشگر کریستال مایع (LCD). 1602 (دیتاشیت) یک انتخاب عالی برای پروژه های شما است.

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

پین ها و نمودار سیم کشی LCD 1602 به آردوینو

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

Tab. 1. اتصال پین LCD 1620 به آردوینو

اتصال 1602 به آردوینو اگر صفحه نمایش 1602 توسط آردوینو از طریق کابل USB 5 ولت و پین مناسب تغذیه می شود، پین کنتراست نمایشگر (کانکتور سوم - کنتراست) را می توان روی 2kΩ تنظیم کرد. برای پین Back LED+ می توان از یک مقاومت 100 اهم استفاده کرد. همچنین می توانید از یک مقاومت متغیر - یک پتانسیومتر برای تنظیم دستی کنتراست استفاده کنید.

بر اساس جدول 1 و نمودار زیر، LCD خود را به آردوینو وصل کنید. برای اتصال به مجموعه ای از هادی ها نیاز دارید. توصیه می شود از هادی های چند رنگ استفاده کنید تا گیج نشوید.

Tab. 2. رنگ هادی ترجیحی

نمودار سیم کشی صفحه نمایش LCD 1602 به آردوینو:


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

در این مثال از پین های 0، 1، 2، 3، 4 و 5 آردوینو برای اتصال پین های 4، 6، 11، 12، 13 و 14 از صفحه نمایش 1602 استفاده می شود (جدول 1 را ببینید). پس از آن، در کد آردوینو، lcd() را به صورت زیر مقداردهی اولیه می کنیم:

ال سی دی کریستال مایع (0، 1، 2، 3، 4، 5);

این کد دقیقاً نحوه اتصال LCD را به آردوینو توضیح می دهد.

کل فایل سورس پروژه ایستگاه هواشناسی که از نمایشگر LCD 1602 استفاده می کند از این لینک قابل دانلود است.

LCD 1602A، آردوینو و سنسور نور (مقاومت نوری)

در مثال، ما اتصال یک اصلاح نمایشگر - 1602A و یک مقاومت نوری را در نظر خواهیم گرفت. در نتیجه این پروژه، ما قادر خواهیم بود مقادیر عددی متناسب با شدت نور را روی نمایشگر نمایش دهیم.


این مثال شروع خوبی برای مبتدیان برای برخورد با آردوینو خواهد بود. شایان ذکر است که نمایشگر 1602 تغییرات مختلفی دارد. بر این اساس، مکان مخاطبین روی آنها ممکن است کمی متفاوت باشد.

مواد لازم

  • 1 آردوینو UNO
  • 1 تخته نان (63 ریل)؛
  • 1 سنسور نور (فتوریستور)؛
  • پتانسیومتر 150 کیلو اهم؛
  • 1 صفحه نمایش LCD 1602A;
  • 1 مقاومت در 10kΩ؛
  • 1 ریل رابط (برای 16 پین)؛
  • 1 کابل USB.

نمایشگر LCD 1602A

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

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

اتصال صفحه نمایش 1602A به آردوینو

اولین کاری که باید انجام دهید این است که صفحه نمایش را روشن کنید. دو کابل را از +5 ولت وصل کنید و به ردیف های مثبت و منفی مناسب روی تخته نان بورد متصل کنید.

اتصال: پایه 5 ولت (5 ولت) از آردوینو به یکی از تراک های برد برد.

اتصال: پایه (GND) آردوینو را به مسیر دیگری (از تخته نان) متصل کنید.

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

اتصال: مسیر GND (منفی) روی تخته نان به پین ​​1 روی صفحه LCD (با برچسب VSS).

اتصال: مسیر 5 ولتی (مثبت) روی تخته نان به پین ​​2 روی صفحه LCD (با برچسب VDD).

اتصال: مسیر 5 ولت (مثبت) روی تخته نان به پین ​​15 روی صفحه LCD (با برچسب A).

اتصال: مسیر GND (منفی) روی تخته نان به پین ​​16 روی صفحه LCD (که با K مشخص شده است).

ما آردوینو خود را از طریق کابل USB و voila به کامپیوتر شخصی متصل می کنیم! صفحه باید روشن شود.

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

اتصال: اولین پین روی پتانسیومتر به منهای روی تخته نان.

اتصال: پایه وسط پتانسیومتر به پایه 3 روی نمایشگر (با علامت V0 مشخص شده است).

اتصال: سومین پایه روی پتانسیومتر به پلاس روی تخته نان.

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

بیا ادامه بدهیم. اکنون برای نمایش کاراکترها باید بین آردوینو و ال سی دی 1602A ارتباط برقرار کنیم.

برای انجام این کار، پایه نمایشگر 4 (RS) را به پایه 7 آردوینو (کانکتور زرد) وصل کنید. نمایش پین 5 (RW) - به ردیفی از پین ها که روی تخته نان (کابل سیاه) قرار گرفته اند.

نمایش پایه 6 (E) تا پایه 8 آردوینو (PWM).

نمایش پین 11 (D4) تا پین 9 آردوینو (PWM).

نمایش پین 12 (D5) تا پین 10 آردوینو (PWM).

نمایش پین 13 (D6) تا پین آردوینو 11 (PWM).

نمایش پایه 14 (D7) تا پین 12 آردوینو (PWM).

برنامه برای Arduino IDE - نمایش متن روی صفحه نمایش 1602A

کد ارائه شده در زیر برای کپی پیست در آردوینو IDE و آپلود روی برد کافی است:

#include <LiquidCrystal.h>

ال سی دی LiquidCrystal (7، 8، 9، 10، 11، 12);

lcd.begin(16, 2);

lcd.setCursor(0,1);

lcd.write("LIGHT:");

پس از دانلود برنامه روی برد، پیام زیر در خط دوم روی صفحه نمایش ظاهر می شود:

نوعی "سلام دنیا!" روی LCD 1602A راه اندازی شد. تبریک میگم

مقاومت نوری را وصل می کنیم و کل برنامه را در آردوینو پر می کنیم

حالا بیایید مقاومت نوری را وصل کنیم. سه سیم را به ریل های آزاد روی تخته نان وصل کنید (بیایید آنها را 1، 2، 3 بنامیم). مقداری فضا در ریل ها برای خود سنسور نور و مقاومت بگذارید.

ریل GND را از برد برد به ریل 1. A0 (ورودی آنالوگ) از آردوینو به ریل 2. 5 ولت از برد برد به ریل 3 وصل می کنیم.

در مرحله بعد، سنسور و مقاومت خود را به ریل های آماده شده متصل می کنیم. فرقی نمی کند که کدام پاها به زمین می روند و کدام یک برای سنسور نور و مقاومت ما به قدرت می رسند (برخلاف مثلاً LED که دارای کاتد و آند است). پس اینجا گیج نشو

سنسور نور را به ریل 1 و ریل 2 وصل می کنیم. مقاومت به ریل 2 و به ریل 3 وصل می شود.

حالا بیایید به برنامه خود برگردیم و چند خط به بدنه خالی تابع ()loop اضافه کنیم:

int sensorValue = analogRead(A0);

lcd.setCursor(7,1);

lcd.print(sensorValue);

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

تعداد زیادی از انواع متن وجود دارد، یا همانطور که به آنها نمایشگرهای کریستال مایع نیز می گویند. رایج ترین نمایشگرها بر اساس تراشه های HD44780 هیتاچی، KS0066 از سامسونگ یا سازگار با آنها هستند. برای کار با چنین صفحه‌هایی، یک کتابخانه استاندارد Arduino Liquid Crystal وجود دارد.

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

این مقاله اصول کلی را شرح می دهد. می توانید به توضیحات دقیق صفحه نمایش خود بروید:

قطعات مورد نیاز

ارتباط

شیلد را روی تخته نان نصب کنید و برق +5 ولت و زمین را از آردوینو به ریل های برق برد برد.

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

روشن کردن نور پس زمینه

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

لطفا توجه داشته باشید که در برخی از مدل ها، شماره گذاری مخاطبین فقط از سمت راست به چپ از اول تا شانزدهم نیست، بلکه تا حدودی زیرکانه تر است. بنابراین، به عنوان مثال، در یک صفحه نمایش 16x2 از مالت، اولین تماس از نظر فیزیکی در موقعیت 14، دوم در 13 و به همین ترتیب از راست به چپ تا 14 در موقعیت اول قرار دارد، و 15 و 16 در موقعیت اول قرار دارند. واقع در سمت راست شماره گذاری در نزدیکی مخاطبین نمایشگر کمک می کند تا گیج نشوید.

روشن کردن قدرت سینت سایزر کاراکتر

    اولی زمین است. آن را به ریل زمینی وصل کنید.

    دوم تغذیه است. آن را به ریل +5 ولت وصل کنید.

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

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

اتصال گذرگاه داده

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

    2 یا 3 برای فرمان نمایش

    4 یا 8 برای انتقال داده ها (کدهای کاراکتر و فرمان)

بنابراین، از 6 تا 11 مخاطب از هر دو دستگاه اشغال خواهد شد. اگر نیاز ندارید خواندناز صفحه نمایشی که برای اکثر سناریوهای استفاده مناسب است، به 2 خط برای دستورات نیاز دارید.

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

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

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

سپس، آردوینو و شیلد را با 6 خط ارتباطی خود وصل می کنیم. کدام پین ها در آردوینو انتخاب می شوند مهم نیست: ما آنها را در برنامه تنظیم می کنیم، اما برای مثال پیکربندی زیر انتخاب شده است:

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

    پین نمایش یازدهم، دوازدهم، سیزدهم، چهاردهم - به ترتیب پایه های دهم، یازدهم، دوازدهم، سیزدهم آردوینو. اینها خطوط داده هستند. معروف به DB4، DB5، DB6، DB7.

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

برنامه نويسي

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

Hello.pde #include lcd.begin (16، 2); // خط اول را چاپ کنید lcd.print("سلام دنیا!" ); // مکان نما را روی ستون 0، ردیف 1 قرار دهید. یعنی روشن // این در واقع خط دوم است، زیرا شماره گذاری از صفر شروع می شود lcd.setCursor (0 , 1 ) ; // خط دوم را چاپ کنید lcd.print("foo bar baz" ); ) void loop() ()

همه چیز بسیار ساده است و باید از نظرات مشخص شود.

سیریلیک

اطلاعات این بخش به طور خاص برای نمایشگرهای Melt اعمال می شود. بعید است که همتایان چینی و اروپایی در مجموعه کاراکترهای خود سیریلیک داشته باشند، برای کسب اطلاعات بیشتر در این مورد به مستندات نمایشگر مراجعه کنید.

چاپ حروف روسی کاملاً بی اهمیت نیست: شما نمی توانید فقط lcd.print ("Vasya") بنویسید. این به مفهوم رمزگذاری مربوط می شود. می دانید که هر کاراکتر دارای یک کد است و هنگام کامپایل برنامه، اگر رشته حاوی سیریلیک باشد، با توجه به جدول utf-8، cp-1251 یا موارد دیگر، بسته به تنظیمات کامپایلر، به کد تبدیل می شود. صفحه نمایش به نوبه خود انتظار دارد داده ها را در رمزگذاری خود ببیند.

به عنوان مثال، حرف "I" مربوط به کد B1 در سیستم هگزادسیمال است. برای انتقال رشته "Yandex" به صفحه، لازم است کد کاراکتر را با استفاده از دنباله \x## به صراحت در رشته جاسازی کنید:

LCD.print(" \xB1 نمایه") ;

شما می توانید کاراکترهای معمولی و کدهای صریح را در یک خط به دلخواه ترکیب کنید. تنها اخطار این است که پس از اینکه کامپایلر دنباله \x را در یک رشته می‌بیند، تمام کاراکترهایی را که می‌توانند ارقام هگزادسیمال باشند، بعد از آن می‌خواند، حتی اگر بیش از دو عدد از آنها وجود داشته باشد. به همین دلیل، نمی توانید به سادگی از نویسه هایی از محدوده 0-9، a-f و به دنبال آن یک کد کاراکتر دو رقمی استفاده کنید: این باعث یک خطای کامپایل می شود. برای دور زدن این نقطه می توانید از چسباندن دو خطی که در کنار هم نوشته شده اند استفاده کنید. بنابراین، اگر می خواهید بنویسید "یایی":

LCD.print(" \xB1 eee") ؛ // خطای lcd.print(" \xB1""eee" ); // درست

به عنوان مثال، برای نوشتن "Hello from Amperka" از کد زیر استفاده شده است:

Cyrillic.pde #include ال سی دی کریستال مایع (4 , 5 , 10 , 11 , 12 , 13 ) ; void setup() ( lcd.begin (16 , 2 ) ; lcd.print (" \xA8p\xB8 \xB3""e \xBF") ؛ lcd.setCursor (0 , 1 ) ; lcd.print("o \xBF A\xBC \xBE ""ep \xBA\xB8") ؛ ) void loop() ( )

تغییر صفحات CG

ماژول نمایش دو صفحه مولد کاراکتر را در حافظه ذخیره می کند. پیش فرض صفحه صفر است. برای جابجایی صفحات، از روش command(0x101010) و بالعکس از دستور (0x101000) استفاده کنید.

نمایشگر نمی تواند کاراکترهای صفحات مختلف را همزمان نمایش دهد.

مثالی را در نظر بگیرید که در آن همان خط بسته به صفحه انتخاب شده تغییر می کند.

change_page.ino // شامل کتابخانه استاندارد LiquidCrystal#عبارتند از // شی صفحه نمایش را مقداردهی کنید، مورد استفاده را پاس کنید // برای اتصال پین های آردوینو خوب است:// RS, E, DB4, DB5, DB6, DB7 LiquidCrystal lcd(4 , 5 , 10 , 11 , 12 , 13 ) ; void setup()( // اندازه (تعداد ستون ها و ردیف ها) صفحه را تنظیم کنید lcd.begin (16، 2); ) void loop() ( // صفحه مولد کاراکتر را روی 0 تنظیم کنید (پیش‌فرض) lcd.command (0b101000) ; // خط اول را چاپ کنید lcd.print(" \x9b \x9c \x9d \x9e \x9f") ؛ // منتظر 1 ثانیه تاخیر (1000 ) ; // صفحه مولد 1 کاراکتر را تنظیم کنید lcd.command(0b101010) ; // منتظر 1 ثانیه تاخیر (1000 ) ; // صفحه نمایش پاک lcd.clear(); )

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

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 بار در ثانیه است. به طور کلی، سیم های زیادی برای اتصال ال سی دی 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("سایت")؛ // نمایش متن ) حلقه خالی ()()

کد چه کاری انجام می دهد؟ اول از همه، کتابخانه کار با نمایشگر متصل است. همانطور که در بالا ذکر شد، این کتابخانه قبلاً در 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 به arduino با ماژول I2C را مشاهده می کنید:

کد برنامه

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

#عبارتند از #عبارتند از ال سی دی LiquidCrystal_I2C (0x27,16,2); // تنظیم نمایش void setup() ( lcd.init(); lcd.backlight();// روشن کردن نور پس زمینه نمایشگر lcd..setCursor(8,1); ( ) ( // مکان نما را روی خط دوم و کاراکتر تهی تنظیم کنید. lcd. setCursor(0, 1)؛ // نمایش تعداد ثانیه هایی از زمانی که آردوینو شروع به ال سی دی کرده است. 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, ); ال سی دی کریستال مایع (7، 6، 5، 4، 3، 2); // (RS، E، DB4، DB5، DB6، DB7) void setup()( lcd.begin(16، 2)؛ // تنظیم اندازه صفحه lcd.createChar(1، لبخند)؛ // ایجاد کاراکتر 1 lcd. setCursor(0, 0); // مکان نما را روی ابتدای خط 1 تنظیم کنید lcd.print("\1")؛ // شکلک را نمایش دهید (شخصیت شماره 1) - "\1" ) void loop()( )

همانطور که می بینید بیت ماسک همانند جدول ایجاد شده است. پس از ایجاد، می توان آن را به عنوان یک متغیر به نمایشگر خروجی داد. به یاد داشته باشید که تنها 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 آردوینو به شما این امکان را می دهد که داده های حسگرها را به صورت بصری نمایش دهید. ما به شما می گوییم که چگونه یک مانیتور LCD را از طریق I2C به درستی به آردوینو متصل کنید و به دستورات اولیه برای مقداردهی اولیه و کنترل LCD 1602 نگاه کنید. همچنین به عملکردهای مختلف در زبان برنامه نویسی C ++ برای نمایش اطلاعات متنی روی صفحه نمایش خواهیم پرداخت. ، که اغلب لازم است در پروژه های آردوینو استفاده شود.

ویدیو. نمایشگر آردوینو LCD I2C 1602

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

I2C یک گذرگاه دو سیمه سریال برای اتصال مدارهای مجتمع در داخل دستگاه های الکترونیکی است که با نام I²C یا IIC (مدار یکپارچه انگلیسی انگلیسی) شناخته می شود. I²C توسط فیلیپس در اوایل دهه 1980 به عنوان یک گذرگاه 8 بیتی ساده برای ارتباط داخلی بین مدارها در الکترونیک کنترل (مانند رایانه های مادربرد، تلفن های همراه و غیره) توسعه یافت.

در یک سیستم I²C ساده، ممکن است چندین دستگاه برده و یک دستگاه اصلی وجود داشته باشد که انتقال داده را آغاز می کند و سیگنال را ساعت می کند. چندین دستگاه برده را می توان به خطوط SDA (خط داده) و SCL (خط ساعت) متصل کرد. اغلب دستگاه اصلی کنترل کننده آردوینو است و دستگاه های برده ساعت واقعی یا نمایشگر LCD هستند.

نحوه اتصال LCD 1602 به آردوینو از طریق I2C

صفحه نمایش LCD 1602 با ماژول I2C تنها با 4 سیم - 2 سیم داده و 2 سیم برق - به برد آردوینو متصل می شود. صفحه نمایش 1602 به صورت استاندارد برای خروجی گذرگاه I2C متصل می شود SDAبه پورت A4، خروجی متصل می شود SCL– به پورت A5 صفحه نمایش LCD از پورت +5 ولت آردوینو تغذیه می شود. برای جزئیات بیشتر، نمودار اتصال مانیتور LCD 1602 را در عکس زیر ببینید.

برای درس به جزئیات زیر نیاز داریم:

  • برد Arduino Uno / Arduino Nano / Arduino Mega;
  • مانیتور LCD 1602;
  • 4 سیم "پدر-مادر".

پس از اتصال مانیتور LCD به آردوینو از طریق I2C، باید کتابخانه را نصب کنید LiquidCrystal_I2C.hبرای کار با صفحه نمایش LCD از طریق رابط I2C و کتابخانه سیم.h(در برنامه استاندارد Arduino IDE موجود است). می توانید کتابخانه کار LiquidCrystal_I2C.h را برای LCD 1602 با ماژول I2C در صفحه کتابخانه های آردوینو در وب سایت ما از طریق پیوند مستقیم از Google Drive دانلود کنید.

طرحی برای صفحه نمایش 1602 با I2C

#عبارتند از // کتابخانه برای کنترل دستگاه ها از طریق I2C#عبارتند از // کتابخانه را برای LCD 1602 وصل کنیدال سی دی LiquidCrystal_I2C (0x27,20,2); // نام lcd را به صفحه نمایش 20x2 اختصاص دهید void setup() // setup procedure( lcd.init(); // مقداردهی اولیه نمایشگر LCD lcd.backlight(); // نور پس زمینه نمایشگر را روشن کنید lcd.setCursor(0,0); // مکان نما را روی 1 کاراکتر از خط اول قرار دهید lcd.print ("I LOVE"); // پیام را در خط اول چاپ کنید lcd.setCursor(0,1); // مکان نما را روی 1 کاراکتر از خط دوم قرار دهید lcd.print("ARDUINO"); // پیام را در خط دوم چاپ کنید) حلقه خالی () // حلقه رویه ( /* این یک نظر چند خطی است // در ابتدا رویه void loop() در sketch lcd.noDisplay() استفاده نمی شود. // خاموش کردن تاخیر نور پس زمینه LCD (500)؛ // مکث LCD display(); // روشن کردن تاخیر نور پس زمینه LCD (500)؛ // مکث */ }

توضیحات برای کد:

  1. کتابخانه LiquidCrystal_I2C.h حاوی دستورات زیادی برای کنترل صفحه نمایش LCD از طریق گذرگاه I²C است و به شما امکان می دهد تا طرح را تا حد زیادی ساده کنید.
  2. طرح شامل یک نظر چند خطی /* ... */ است که به شما امکان می دهد چندین خط را در برنامه به طور همزمان بیان کنید.
  3. قبل از نمایش اطلاعات روی نمایشگر، باید موقعیت مکان نما را با دستور setCursor(0,1) تنظیم کنید که 0 عدد کاراکتر در خط و 1 شماره خط است.

برترین مقالات مرتبط