فهرست مطالب:

ماژول 1602 صفحه کلید صفحه LCD LCD با کوله پشتی I2C: 6 مرحله
ماژول 1602 صفحه کلید صفحه LCD LCD با کوله پشتی I2C: 6 مرحله

تصویری: ماژول 1602 صفحه کلید صفحه LCD LCD با کوله پشتی I2C: 6 مرحله

تصویری: ماژول 1602 صفحه کلید صفحه LCD LCD با کوله پشتی I2C: 6 مرحله
تصویری: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, جولای
Anonim
ماژول 1602 صفحه کلید صفحه LCD LCD با کوله پشتی I2C
ماژول 1602 صفحه کلید صفحه LCD LCD با کوله پشتی I2C

به عنوان بخشی از یک پروژه بزرگتر ، می خواستم یک صفحه نمایش LCD و صفحه کلید برای حرکت در منوهای ساده داشته باشم. من از بسیاری از پورت های ورودی/خروجی در Arduino برای کارهای دیگر استفاده خواهم کرد ، بنابراین من یک رابط I2C برای LCD می خواستم. بنابراین من سخت افزاری خریداری کردم که شامل یک ماژول محافظ صفحه کلید 1602 LCD از DFRobot و یک ماژول سریال ناشناس I2C برای LCD ها بود. من می خواهم از اینها با آردوینو نانو استفاده کنم. سپس متوجه شدم که برای کار کردن این اجزا با هم چالش هایی وجود دارد - اما این امکان پذیر است. بنابراین من می خواهم تجربه خود را به اشتراک بگذارم و شاید به دیگران کمک کنم.

این عکس مربوط به تخته نورد است که می تواند پیام ها را روی LCD نمایش داده و فشارهای کلیدی را مشخص کند. LCD از طریق رابط I2C از جمله نور پس زمینه LCD کنترل می شود. فشارهای کلیدی توسط آردوینو روی پین A0 دریافت می شود (این می تواند هر یک از پین های آنالوگ باشد ، به جز A4 و A5 که برای رابط I2C متصل شده اند).

مرحله 1: توضیحات قطعات - ماژول سپر صفحه کلید LCD

توضیحات قطعات - ماژول سپر صفحه کلید LCD
توضیحات قطعات - ماژول سپر صفحه کلید LCD

ماژول محافظ صفحه کلید LCD شامل یک LCD معمولی 1602 است که در بالای صفحه مدار نصب شده است و کلیدها را نگه می دارد و زیرمجموعه ای از اتصالات LCD را گرفته و آنها را در اختیار پین های هدر در قسمت زیرین برد قرار می دهد. من می دانم که این برد باید در بالای Arduino Uno یا مشابه آن نصب شود و طرح پین مناسب را برای کار در آن محیط ارائه می دهد. من این ماژول را در Ebay از فروشنده ای در چین خریدم. پین های هدر در قسمت پایین (صفحه کلید) برد بیشتر برچسب گذاری شده اند ، اما پین های سمت بالا ، که رابط LCD است ، برچسب گذاری نشده اند. با این حال ، پین های LCD خود برچسب گذاری شده اند.

مرحله 2: شرح قطعات - ماژول سریال I2C

توضیحات قطعات - ماژول سریال I2C
توضیحات قطعات - ماژول سریال I2C

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

این ماژول بر اساس IC PCF8574T است که پروتکل I2C را خاتمه می دهد ، دارای 3 پین برای کنترل آدرس (20 تا 27) و دارای 8 پین ورودی/خروجی دیجیتال P0 تا P7 است. طبق برگه اطلاعات PCF8574T ، هر پین ورودی/خروجی دارای FET است که آن را برای حالت LOW به زمین می کشاند و می تواند حداقل 20ma غرق شود. در حالت High ، دارای کشش فعال گذرا و سپس جریان کشش مداوم حدود 0.1 میلی آمپر است.

در این ماژول ، تمام پین های ورودی/خروجی دیجیتال ، به جز P3 ، به سادگی به پین های هدر (در سمت راست عکس) آورده می شوند. در مورد P3 ، آن را به پایه ترانزیستور متصل می کنید (در عکس در قسمت بالا سمت راست درست زیر برچسب "LED" قابل مشاهده است). ساطع کننده آن ترانزیستور به Vss (زمین) و کلکتور به پین هدر 16 متصل است ، جایی که می توان از آن برای کنترل نور پس زمینه LCD استفاده کرد. به دلیل ترانزیستور ، حالت منطقی نسبت به حالت فرض شده در کتابخانه نرم افزار برعکس است. به این معنا که نور پس زمینه LCD هنگامی که پایه P3 پایین است روشن می شود و هنگامی که پایه P3 بالا است خاموش می شود.

برچسب روی ترانزیستور می گوید L6 که طبق تحقیقات من احتمالاً MMBC1623L6 است که حداقل جریان فعلی آن 200 است. با 0.1 میلی آمپر جریان پایه ، باید بتواند یک وضعیت LOW را در کلکتور خود حفظ کند (ماژول پین 16) با جریان جمع کننده حداقل 20 میلی آمپر

علاوه بر این این ماژول دارای یک پتانسیومتر 10K متصل بین +5 و Ground است ، که سیم متغیر آن به پین 3 (سوم از پایین در عکس) منتقل می شود. هنگامی که مستقیماً به LCD متصل می شود ، این قابلمه کنتراست LCD را کنترل می کند. با این حال ، این عملکرد توسط یک گلدان مشابه جداگانه روی سپر LCD ارائه می شود ، بنابراین این قابلمه در ماژول سریال هیچ عملکردی ندارد.

من نتوانستم هیچ گونه ارتباطی با پین INT PCF8574T پیدا کنم.

به روز رسانی 22 آگوست 2019

همانطور که در بالا ذکر شد ، PCF8574 دارای 3 پین کنترل آدرس است. به نظر می رسد که این کوله ها روی تخته های کوله پشتی قرار گرفته و روی آنها برچسب A0 ، A1 و A2 وجود دارد. آنها را می توان در عکس مشاهده کرد. من این را آزمایش نکرده ام ، اما تقریباً قطعی به نظر می رسد که با اتصال یک یا چند پین به پدهای مجاور ، آدرس I2C را می توان در محدوده 20 تا 27 کنترل کرد. علاوه بر این ، یک دستگاه تقریباً مشابه دیگر نیز وجود دارد ، PCF8574A که عملکرد مشابهی با PCF8574 دارد اما محدوده آدرس را از 0x38 تا 0x3F پوشش می دهد.

آدرسی که دستگاه شما در واقع از آن استفاده می کند را می توان با I2CScanner بررسی کرد. چندین اسکنر ساده I2C از منابع مختلف موجود است. این یکی در https://github.com/farmerkeith/I2CScanner همچنین برخی از دستگاه های پیدا شده را مشخص می کند.

مرحله 3: اتصالات

اتصالات
اتصالات

با تشکر از ChaitanyaM17 که نمودار Fritzing را ارائه می دهد که اتصالات را نشان می دهد ، در زیر توضیح داده شده است.

قدرت:

ماژول LCD دارای یک پین در قسمت پایین با برچسب "5.0V" است. در سمت راست ، در مجاورت آن دو پین بدون برچسب وجود دارد که هر دو زمین هستند.

با نگه داشتن ماژول سریال با رابط I2C در سمت چپ ، 16 پین در لبه پایینی وجود دارد. اولین مورد از آنها زمینی است و دومی از آنها +5 ولت است. گزینه دیگر این است که از دو پین پایینی در رابط I2C برای قدرت استفاده کنید ، اما به نظر من استفاده از پین ها مطابق توضیحات بالا راحت تر است.

رابط I2C در ماژول سریال ، پین بالا SCL (ساعت) است و به Arduino A5 می رود. پین دوم SDA (داده) است و به Arduino A4 می رود.

رابط چاپ LCD بین ماژول سریال و محافظ صفحه کلید LCD 6 اتصال وجود دارد که همه آنها بین پین ها بدون برچسب هستند. من آنها را روی ماژول LCD با شمارش از راست به چپ ، با پین اول 1 ، شناسایی می کنم ، با اولین پین 1. 2 بلوک 8 وجود دارد ، بنابراین از 1 به 16 می رسند. من آنها را در ماژول سریال I2C با شمارش از چپ به درست است ، 16 مورد نیز وجود دارد. علاوه بر این ، در صورت اتصال مستقیم بدون ماژول سریال ، به هر سیم یک برچسب می زنم ، که پین معادل Arduino است که معمولاً با آن عملکرد مرتبط است.

بنابراین 6 اتصال داده عبارتند از:

معادل آردوینو // پین ماژول سریال // پین ماژول صفحه کلید LCD

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

کنترل نور پس زمینه LCD: این از یک اتصال دیگر استفاده می کند:

معادل آردوینو // پین ماژول سریال // پین ماژول صفحه کلید LCD

D10 // 16 // 11

رابط صفحه کلید: این از یک سیم واحد از پین ماژول LCD در قسمت پایین با برچسب "A0" برای پین A0 در Arduino استفاده می کند. حداقل این بسیار آسان بود!

مرحله 4: استفاده از کلید RST مشابه با 5 کلید دیگر

RST را می توان مستقیماً به ورودی RESTART آردوینو نانو متصل کرد.

اما اگر می خواهید کلید RST در سایر موارد در نرم افزار قابل استفاده باشد ، می توانید این کار را با اتصال یک مقاومت 15K بین پین RST و پین A0 در سمت پایین محافظ صفحه کلید LCD انجام دهید.

این به شرح زیر عمل می کند: یک مقاومت 2K بین +5V و کلید راست وجود دارد. سپس زنجیره ای از مقاومت های بزرگتر برای هر یک از کلیدهای دیگر (330R به کلید UP ، 620R به کلید پایین ، 1K به کلید چپ و 3K3 به کلید SELECT. همه کلیدها (از جمله کلید RST) به هنگام اتصال به مبدل A/D 10 بیتی (مانند Arduino Nano A0) ، آنها تقریباً مقادیر زیر را ارائه می دهند:

راست = 0 ؛ بالا = 100 ؛ پایین = 260 ؛ چپ = 410 ؛ = 640 را انتخاب کنید

با مقاومت 15 k به RST ، حدود 850 را ارائه می دهد.

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

مرحله 5: نرم افزار

نرم افزار مفید البته یک تمرین برای خوانندگان است. با این حال ، برای شروع ، می توانید به نرم افزار تست من نگاهی بیندازید. من از کتابخانه NewLiquidCrystal استفاده کردم که شامل پشتیبانی از رابط I2C است. همه اینها درست کار کرد ، هنگامی که کتابخانه ها را به درستی نصب کردم.

نکته اصلی این بود که قطبیت دستورات Backlight OFF و ON را معکوس کنید (به دلیل ترانزیستور روی ماژول I2C همانطور که در قسمت توضیحات قطعات توضیح داده شد).

به روز رسانی 22 آگوست 2019

در صورت عدم کارکردن صفحه نمایش LCD ، لطفاً آدرس I2C کوله پشتی سریال خود را با استفاده از اسکنر I2C بررسی کنید. یک اسکنر مناسب وصل شده است. سپس در صورت لزوم اولین پارامتر را در دستور تنظیم کنید

LiquidCrystal_I2C ال سی دی (0x27 ، 2 ، 1 ، 0 ، 4 ، 5 ، 6 ، 7) ؛

مرحله ششم: مرور و بحث

همانطور که می بینید من عملکردهای اصلی را کار کردم.

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

مشکل اینجاست که این ماژول صفحه کلید LCD برای نصب در یک جعبه تنظیم نشده است. هر نوع جعبه دکمه های 6 کلید بسیار پایین تر از سطح صفحه LCD هستند ، به طوری که اگر ماژول در جعبه ای نصب شده باشد (به عنوان مثال در درپوش) و بالای صفحه مدار LCD با قسمت زیرین درپوش ، قسمت بالای آن کلیدها در حدود 7 میلی متر زیر بالای درب قرار دارند.

راه حل های احتمالی عبارتند از:

الف) تحمل کنید سوراخ های دسترسی را در درب ایجاد کرده و از یک ابزار (به عنوان مثال سوزن بافندگی با قطر مناسب) برای فشار دادن دکمه ها استفاده کنید.

ب) LCD را از برد مدار ماژول جدا کرده و روی صفحه کلید عمل جراحی انجام دهید تا دو جزء به طور مستقل بر روی درب جعبه پروژه ثابت شوند (من فکر می کنم هنوز ممکن است مشکلی در کوتاه بودن دکمه ها وجود داشته باشد)

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

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

من قصد دارم با راه حل ج) بالا عمل کنم و ببینم چگونه پیش می روم.

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

با روشن بودن نور پس زمینه ، مصرف فعلی این پروژه عبارت است از: Arduino Nano 21.5 ma؛ ماژول سریال 3.6 ma؛ ماژول LCD 27.5 میلی آمپر ؛ مجموع 52 میلی آمپر

با خاموش بودن نور پس زمینه ، مصرف فعلی این پروژه: Arduino Nano 21.5 ma؛ ماژول سریال 4.6 ma؛ ماژول LCD 9.8 میلی آمپر ؛ مجموع 36 میلی آمپر

توصیه شده: