ESEN طیف گستردهای از ماژولهای LCD کاراکتری استاندارد را برای کاربردهای مشتریان ارائه میدهد. شما میتوانید نمایشگر را با حداقل تعداد پینهای کنترلی به دست آورید و انتخاب MCU را آسانتر کنید.
ماژولهای LCD کاراکتری رایج در بازار یک برد انتقال را برای پشتیبانی از رابط I2C اضافه میکنند، همانطور که در شکل 1 نشان داده شده است، که منجر به افزایش ضخامت LCM، فرآیندهای بیشتر در تولید و کاهش نرخ بازده میشود.
![]() |
![]() |
شکل 1: ماژول LCD کاراکتری رایج در بازار که یک برد انتقال را برای پشتیبانی از I2C اضافه میکند. | شکل 2: ماژول کریستال مایع کاراکتری 1602 ESEN. این ماژول از رابطهای I2C و SPI پشتیبانی میکند و نیازی به برد انتقال اضافی ندارد. |
شما نیازی به اضافه کردن برد رله ندارید. فقط برد توسعه Arduino Uno را متصل کنید و میتوانید مستقیماً ماژول LCD کاراکتری را با استفاده از رابطهای ارتباطی مختلف کنترل کنید.
شماره پین | نماد | توضیحات |
---|---|---|
شماره 1 | Vss | زمین |
شماره 2 | Vdd | منبع تغذیه برای منطق |
شماره 3 | V0 | تنظیم کنتراست |
شماره 4 | RS | انتخاب فرمان/داده |
شماره 5 | RW | سیگنال انتخاب خواندن/نوشتن برای رابط 6800 8/4 بیت فقط |
شماره 6 | E | سیگنال فعالسازی برای رابط 6800 8/4 بیت فقط |
شماره 7 | DB0/SA0 | خط گذرگاه داده 0 برای رابط 6800 8 بیت فقط خط تنظیم آدرس SA0 برای رابط I2C |
شماره 8 | DB1/SA1 | خط گذرگاه داده 1 برای رابط 6800 8 بیت فقط خط تنظیم آدرس SA1 برای رابط I2C |
شماره 9 | DB2 | خط گذرگاه داده 2 برای رابط 6800 8 بیت فقط |
شماره 10 | DB3 | خط گذرگاه داده 3 برای رابط 6800 8 بیت فقط |
شماره 11 | DB4 | خط گذرگاه داده 4 برای رابط 6800 8/4 بیت فقط |
شماره 12 | DB5/CSB/CSB | خط گذرگاه داده 5 برای رابط 6800 8/4 بیت فقط خطوط انتخاب فعالسازی CSB برای رابطهای I2C و SPI |
شماره 13 | DB6/SDA/SCLK | خط گذرگاه داده 6 برای رابط 6800 8/4 بیت فقط خط داده SDA برای رابط I2C زمانبندی SCLK برای رابط SP |
شماره 14 | DB7/SCL/SID | خط گذرگاه داده 7 برای رابط 6800 8/4 بیت فقط خط زمانبندی SCL برای رابط I2C خط داده SID برای رابط SPI |
شماره 15 | A+ | منبع تغذیه برای B/L + |
شماره 16 | K- | منبع تغذیه برای B/L - |
با توجه به V0 در جدول بالا، از یک مقاومت متغیر 20k اهم برای تنظیم کنتراست کاراکترها استفاده میشود. اگر متن نامرئی است یا در طول آزمایش به نمایش تصویر پسزمینه ادامه میدهد، لطفاً این مقاومت متغیر را بچرخانید تا کنتراست را تنظیم کنید.
روش اتصال مقاومت متغیر V0 همانطور که در شکل 3 نشان داده شده است:
![]() |
شکل 3:روش اتصال مقاومت متغیر V0 |
روشهای اتصال چهار رابط ارتباطی LCM (I2C، SPI، 6800 8bit/4bit) به Arduino Uno همانطور که در شکل 4 نشان داده شده است. کاربران میتوانند مشاهده کنند که رابطهای I2C و SPI فقط به تعداد کمی از پینهای GPIO برای کنترل ماژولهای LCD کاراکتری نیاز دارند.
برای رابط I2C، از آنجایی که Arduino Uno مقاومتهای pull-up را در داخل پینهای I2C ارائه میدهد، هیچ مقاومت pull-up اضافی به پینهای SDA و SCL متصل نمیشود. اگر مقاومت pull-up داخلی در برنامه غیرفعال شود، باید یک مقاومت pull-up خارجی متصل شود.
(a)اتصال رابط I2C |
(b) اتصال رابط SPI |
![]() |
![]() |
(c)اتصال رابط 6800-4bit |
(d)اتصال رابط 6800-8bit |
![]() |
![]() |
شکل 4:روشهای اتصال 4 رابط ارتباطی LCM به Arduino Uno. |
همه رابطهای ارتباطی نمیتوانند از مجموعه دستورات کامل LCM استفاده کنند. با رابط SPI، هیچ خط کنترل RW و پینهای MISO وجود ندارد، بنابراین، دستور خواندن پشتیبانی نمیشود. برای نوشتن، از طریق خط کنترل RS برای تعیین اینکه آیا دادههای دستور یا دادههای نمایشگر نوشته شود.
در رابط I2C، هیچ خط کنترل RW نیز وجود ندارد، بنابراین هیچ پشتیبانی برای دستورات خواندن وجود ندارد. قبل از نوشتن دادههای دستور یا دادههای نمایشگر، کد کنترل دستور (A0=0) یا کد کنترل داده (A0=1) باید ارسال شود تا مشخص شود که آیا بایت بعدی که ارسال میشود دادههای دستور است یا دادههای نمایشگر.
دو نمودار زمانبندی در شکل 5 و شکل 6 نشان داده شده است. این نمودار زمانبندی کنترل LCM از طریق رابط SPI است. کاربران میتوانند مشاهده کنند که LCM از یک SPI استفاده میکند که رابط SPI معمولی ارائه شده توسط یک MCU معمولی نیست، به یک خط سیگنال RS اضافی نیاز دارد تا مشخص شود آیا بایت فعلی که ارسال میشود یک دستور است؟ یا داده؟ داده بیت (BIT7~BIT0) خط داده (SID) زمانی تغییر میکند که خط ساعت (SCLK) در سطح پایین باشد. داده بیت (BIT7~BIT0) زمانی ثبت میشود که خط ساعت (SCLK) در سطح بالا باشد (BIT7~BIT0).
![]() |
شکل 5:زمانبندی دستور نوشتن SPI |
![]() |
شکل 6:زمانبندی داده نوشتن SPI |
شکل 7 و 8 نمودار زمانبندی کنترل LCM از طریق رابط I2C را نشان میدهند. به جز نوار انتخاب تراشه (CSB)، خوانندگان میتوانند مشاهده کنند که کنترل رابط I2C این است که هر بار سه بایت را برای نوشتن دادههای دستور یا دادههای نمایشگر ارسال کند. در این میان، بیت A0 بایت دوم تعیین میکند که آیا بایت سوم دادههای دستور است یا دادههای نمایشگر.
![]() |
شکل 7:زمانبندی I2C نوشتن دستورات |
![]() |
شکل 8:زمانبندی I2C نوشتن دادهها |
LCM را میتوان با اصلاح تنظیمات برنامه مستقیماً کامپایل و استفاده کرد.
مرحله 1: حداکثر تعداد کاراکترها را در یک خط واحد LCM تنظیم کنید.
به عنوان مثال، موارد زیر یک خط واحد را به حداکثر 16 کاراکتر تنظیم میکند.
مرحله 2: حداکثر تعداد خطوط را در LCM تنظیم کنید.
به عنوان مثال، موارد زیر LCM را به 2 خط تنظیم میکند.
مرحله 3: رابط LCM را تنظیم کنید.
به عنوان مثال، موارد زیر رابط I2C را تنظیم میکند.
مرحله 4: برنامه را کامپایل و در برد توسعه Arduino Uno آپلود کنید.
شکل 9 یک نمودار شماتیک از صفحههای سه LCM را نشان میدهد.
هنگامی که کنتراست نمایشگر روشن یا تاریک است، مقاومت متغیر در پین V0 را میتوان به یک کنتراست مناسب تنظیم کرد، همانطور که در شکل 10 نشان داده شده است.
(a) کنتراست روشن فقط کاراکترهای روشن را میتوان مشاهده کرد. | (b) کنتراست مناسب | (c) کنتراست تاریک هر کاراکتر یک سایه آشکار دارد. |
---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
شکل 9:یک نمودار شماتیک از صفحههای سه LCM |
شکل 10:پین V0 قابل تنظیم است
اگر به کد کامل دمو نیاز دارید، لطفاً با ما تماس بگیرید.
تماس با شخص: Mr. james
تلفن: 13924613564
فکس: 86-0755-3693-4482