فهرست مطالب:
- تدارکات
- مرحله 1: منشاء راه حل
- مرحله 2: توضیح
- مرحله 3: شناسایی و حذف مقاومت ها
- مرحله 4: مقایسه بین راه حل ها
- مرحله 5: ملاحظات نهایی
تصویری: صفحه نمایش LCD 5V با آردوینو به دلیل 3.3V I2C: 5 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:51
این پست قصد دارد راه ساده تری برای استفاده از 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: ملاحظات نهایی
امیدوارم این آموزش در مورد این مسئله سازگاری و برخی از راه حل های احتمالی آن کمی روشن شود.
اگر ایده های بهبود ، توضیحات بهتر ، راه حل های جدید یا خطایی در پست دارید ، لطفاً در نظرات به من بگویید!:)
توصیه شده:
دمای صفحه نمایش آردوینو بر روی صفحه نمایش LED TM1637: 7 مرحله
دمای صفحه نمایش آردوینو در نمایشگر LED TM1637: در این آموزش نحوه نمایش دما با استفاده از LED Display TM1637 و سنسور DHT11 و Visuino را یاد می گیریم. فیلم را تماشا کنید
زمان نمایش آردوینو بر روی صفحه نمایش LED TM1637 با استفاده از RTC DS1307: 8 مرحله
زمان نمایش آردوینو بر روی صفحه نمایش LED TM1637 با استفاده از RTC DS1307: در این آموزش ما نحوه نمایش زمان با استفاده از ماژول RTC DS1307 و نمایشگر LED TM1637 و Visuino را یاد می گیریم
نحوه ساخت ساعت بیدرنگ با استفاده از صفحه نمایش Arduino و TFT - Arduino Mega RTC با صفحه نمایش TFT 3.5 اینچی: 4 مرحله
نحوه ساختن ساعت بیدرنگ با استفاده از صفحه نمایش Arduino و TFT | Arduino Mega RTC با صفحه نمایش TFT 3.5 اینچی: از کانال یوتیوب من دیدن کنید. مقدمه:- در این پست قصد دارم "ساعت واقعی" را با استفاده از LCD لمسی 3.5 اینچی TFT ، Arduino Mega بسازم. ماژول 2560 و DS3231 RTC…. قبل از شروع… ویدیو را از کانال YouTube من بررسی کنید .. توجه:- اگر از Arduin استفاده می کنید
نمایش درجه حرارت در ماژول صفحه نمایش LED P10 با استفاده از آردوینو: 3 مرحله (همراه با تصاویر)
نمایش درجه حرارت در ماژول صفحه نمایش LED P10 با استفاده از آردوینو: در آموزش قبلی نحوه نمایش متن بر روی ماژول نقطه صفحه نمایش LED P10 با استفاده از Arduino و DMD Connector توضیح داده شده است ، که می توانید اینجا را بررسی کنید. در این آموزش ما یک پروژه ساده با استفاده از ماژول P10 به عنوان صفحه نمایش
ایجاد یک صفحه نمایش سفارشی در استودیوی LCD (برای صفحه کلید G15 و صفحه LCD): 7 مرحله
ایجاد یک صفحه نمایش سفارشی در استودیوی LCD (برای صفحه کلید G15 و صفحه نمایش LCD): خوب اگر صفحه کلید G15 خود را به دست آورده اید و از صفحه نمایش های اولیه ای که تحت آن قرار گرفته اید بسیار تحت تأثیر قرار نگرفته اید ، اصول اولیه استفاده از LCD Studio را برای شما شرح می دهم. خودتان بسازید. این مثال ایجاد یک صفحه نمایش است که فقط پایه را نشان می دهد