فهرست مطالب:

صفحه نمایش LCD 5V با آردوینو به دلیل 3.3V I2C: 5 مرحله
صفحه نمایش LCD 5V با آردوینو به دلیل 3.3V I2C: 5 مرحله

تصویری: صفحه نمایش LCD 5V با آردوینو به دلیل 3.3V I2C: 5 مرحله

تصویری: صفحه نمایش LCD 5V با آردوینو به دلیل 3.3V I2C: 5 مرحله
تصویری: نحوه استفاده از SSD1306 128x32 OLED Display I2C با کد Arduino 2024, جولای
Anonim
صفحه نمایش 5 ولت LCD با آردوینو به دلیل 3.3 ولت I2C
صفحه نمایش 5 ولت LCD با آردوینو به دلیل 3.3 ولت I2C

این پست قصد دارد راه ساده تری برای استفاده از Arduino Due (یا سایر بردهای 3.3V) با نمایشگر محبوب LCD 16x2 با ماژول آداپتور I2C را توضیح دهد.

مشکل اولیه این است که LCD برای عملکرد صحیح نور پس زمینه به 5 ولت احتیاج دارد ، اما پین های SCL و SDA باید با 3.3 ولت کار کنند تا بتوانند بدون ایجاد آسیب با Arduino Due ارتباط برقرار کنند. برای حل این مشکل ، دو گزینه پیدا کردم:

راه حل ذکر شده استفاده از مبدل منطقی دو جهته است که در واقع مشکل را حل می کند. اما همچنین یک جزء دیگر به لیست شما و اتصالات سیم کشی اضافی در مدار شما اضافه می کند

راه دیگری که من پیدا کردم این است که به سادگی 2 مقاومت جدا کننده را در "کوله پشتی آداپتور I2C" از LCD جدا کنید. علاوه بر بسیار آسان تر ، مزایای دیگری نیز در مقایسه در انتها توضیح داده شده است. این روش تمرکز اصلی این پست است

تدارکات

آردوینو دوئه

نمایشگر LCD 16x2 با ماژول آداپتور I2C

آهن لحیم کاری

پمپ لحیم کاری یا فتیله لحیم کاری

موچین

مرحله 1: منشاء راه حل

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

forum.arduino.cc/index.php؟topic=553725.0

پاسخ از: david_prentice

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

مرحله 2: توضیح

دستگاه ها

برای کارکرد ارتباط I2C ، به مقاومت های کششی متصل به پین های SDA و SCL نیاز دارد. این امر به این دلیل است که دستگاه ها فقط هنگام برقراری ارتباط این پین ها را در حالت LOW قرار می دهند. برای نمایش یک HIGH ، فقط باید یک LOW ارسال نکند و به لطف کشش ها به HIGH می رود. (این درک بعداً بسیار مهم خواهد بود)

LCD "کوله پشتی I2C" دارای دو مقاومت 4K7 کششی است که نیاز I2C را برآورده می کند. اما از آنجا که آنها به Vcc متصل هستند ، اگر از 5 ولت استفاده کنید ، SDA و SCL را به 5 ولت می رسانند.

اگر به برگه اطلاعات نگاه کنید ، می بینید که برخلاف سایر بردها ، Due قبلاً دارای مقاومت های کششی 1K5 روی پین اصلی SDA ، SCL خود است که آنها را به 3.3 ولت می رساند.

آزمایشات

  • نمایش LCD -> آردوینو
  • Gnd -> Gnd
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

اگر فقط LCD را بر روی Due وصل کنید (به دنبال سیم کشی بالا) ، کشش های 1k5 (یا 1k0) Due متصل به 3.3 ولت و کشش های LCD 4K7 متصل به 5 ولت منجر به خطوط بیکار I2C در 3.7 ولت (3.6 ولت) می شود. با 1k0). این خوب نیست ، زیرا برگه داده Due حداکثر ولتاژ 3.6 ولت را برای خطوط ورودی/خروجی خود تعیین می کند.

با آزمایش این سناریو ، فقط با LCD ، من 3 ، 56 ولت دریافت کردم. با افزودن یک ماژول EEPROM به همان SDA و SCL ، به 3.606 ولت رسید. در هر دو مورد همه چیز به طور عادی کار می کرد ، اما آنها از ولتاژ ایده آل فاصله دارند. سطح با در نظر گرفتن حداکثر 3.6 ولت.

بنابراین بله ، این احتمال وجود دارد که درست مانند من کار کند در حالی که هیچ تغییری انجام نمی دهد. اما سطح ولتاژ هنوز از حالت ایده آل فاصله دارد و برخی اختلافات در کشش Due یا LCD ممکن است باعث شود که از حد 3.6 ولت فراتر رود. (توصیه می شود حداقل قبل از انجام آزمایش با پتانسیومتر 20K یا 100K ، کمترین مقاومت بین 5 پین و پین SCL/SDA را قبل از رسیدن به 3.6 ولت بررسی کنید ، اگرچه بقیه محلول بسیار ایمن تر و احتمالاً آسان تر است).

راه حل

راه حل ارائه شده این است که به سادگی مقاومت های کششی را از کوله پشتی LCD جدا کنید ، که سعی می کند خط را تا 5 ولت بکشد ، سپس فقط مقاومت های کششی مناسب روی صفحه باقی می مانند و خطوط SCL و SDA را به 3.3 ولت می کشند. به این کاملاً کار کرد و پین های بیکار را در حدود 3.262 ولت حفظ کرد!

اتصالات ثابت می مانند:

  • نمایشگر LCD -> آردوینو
  • Gnd -> Gnd
  • Vcc -> 5V
  • SDA -> SDA
  • SCL -> SCL

اگر تعجب می کنید که آیا LCD هنگام برقراری ارتباط ، خط را به 5 ولت نمی رساند تا یک HIGH را نشان دهد ، به یاد داشته باشید که در I2C دستگاهها فقط خطوط LOW را می کشند ، زیرا سیگنال HIGH است که هنگام تداخل نشان داده نمی شود ، که 3.3 ولت از کشش های روی دایو

همچنین ، 3.3 ولت برای کوله پشتی I2C کافی است تا به عنوان یک سیگنال HIGH در نظر گرفته شود.

مرحله 3: شناسایی و حذف مقاومت ها

شناسایی و حذف مقاومت ها
شناسایی و حذف مقاومت ها
شناسایی و حذف مقاومت ها
شناسایی و حذف مقاومت ها

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

شناسایی کنید

از آنجا که کوله پشتی آداپتور LCD I2C ممکن است متفاوت باشد ، ممکن است مقاومتها در یک پیکربندی یکسان نباشند. برای شناسایی مقاومت های کششی ، می توانید از مولتی متر با آزمایش پیوستگی استفاده کنید. هر مقاومت کششی باید یک سر آن به پین SCL یا SDA و سر دیگر آن به Vcc متصل باشد.

در مورد من ، سه مقاومت 4K7 (472 در کد SMD) روی برد وجود داشت. فقط دو نفر از آنها شرایط بالا را برآورده کردند ، و اشاره کردند که اینها کشش هایی هستند که ما به دنبال آنها بودیم!

برای احتیاط بیشتر (اگر به دلایلی 4K7 نبودند) ، سایر مقاومت ها را نیز آزمایش کردم و تأیید کردم که هیچ یک از آنها شرایط لازم برای کشیدن را ندارند.

برداشتن

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

مرحله 4: مقایسه بین راه حل ها

مبدل سطح منطق دو جهته (LLC)

طرفداران:

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

معایب:

کابل های بیشتر و LLC را به لیست اجزای لیست شما تبلیغ می کند

ارتباطات مسیه با اجزای اضافی

کمی گران تر

مقاومت های کشویی LCD را جدا کنید

طرفداران:

نتیجه نهایی تمیزتر

احتمالاً می توانید فوراً این کار را انجام دهید ، بدون اینکه منتظر LLC باشید

به خصوص اگر می خواهید تنوع اجزا و پیچیدگی مونتاژ را در یک پروژه پیچیده کاهش دهید یا بخواهید آن را تکرار کنید ، خوب است

معایب:

مدار LCD را تغییر می دهد (اگر می خواهید با Uno آماده استفاده باشد ، در حال حاضر دارای کشش های 4K7 هستید ، می توانید تغییرات فروش مجدد آنها را لغو کنید)

مرحله 5: ملاحظات نهایی

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

اگر ایده های بهبود ، توضیحات بهتر ، راه حل های جدید یا خطایی در پست دارید ، لطفاً در نظرات به من بگویید!:)

توصیه شده: