فهرست مطالب:

از LCD 16x2 با I2C: 4 مرحله استفاده کنید
از LCD 16x2 با I2C: 4 مرحله استفاده کنید

تصویری: از LCD 16x2 با I2C: 4 مرحله استفاده کنید

تصویری: از LCD 16x2 با I2C: 4 مرحله استفاده کنید
تصویری: How to use LCD LCD1602 with I2C module for Arduino - Robojax 2024, نوامبر
Anonim
از LCD 16x2 با I2C استفاده کنید
از LCD 16x2 با I2C استفاده کنید
از LCD 16x2 با I2C استفاده کنید
از LCD 16x2 با I2C استفاده کنید
از LCD 16x2 با I2C استفاده کنید
از LCD 16x2 با I2C استفاده کنید

در یکی از دستورالعمل های قبلی من ، نحوه اتصال و رابط یک LCD به Arduino Uno و نمایش مقادیر روی آن را به شما نشان دادم. اما همانطور که مشاهده شد ، اتصالات زیادی وجود داشت و اگر پروژه به دلیل سیم های زیاد شروع به آشفتگی می کرد.

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

مرحله 1: اجزای مورد نیاز

اجزای مورد نیاز
اجزای مورد نیاز
اجزای مورد نیاز
اجزای مورد نیاز
اجزای مورد نیاز
اجزای مورد نیاز

برای این پروژه به موارد زیر نیاز دارید:

  • آردوینو اونو
  • LCD 16x2
  • I2C برای LCD 16x2
  • سیم های هوک آپ

با همه این موارد ، بیایید وارد قسمت اتصالات شویم.

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

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

تصاویر را ارجاع دهید و ارتباطات را برقرار کنید. این بسیار ساده است ، فقط باید I2C را در پورت های LCD وصل کرده و آن را در جای خود لحیم کنید. سپس پین SCL را به پین A4 در آردوینو و پین SDA را به پین A5 در آردوینو وصل کنید.

من I2C را لحیم نمی کنم زیرا قبلاً پین های هدر را روی LCD لحیم کرده ام. اما پیشنهاد می کنم I2C را روی LCD لحیم کنید

مرحله 3: کد

یک کتابخانه اصلی LCD I2C در Arduino IDE موجود است. اما یک مشکل جزئی در کد موجود در آن وجود دارد. همه مثالهای موجود در این کتابخانه آدرس پیش فرض I2C را 0x27 فرض می کند. بنابراین ابتدا باید دریابیم آدرس I2C ما چیست. ما می توانیم این کار را با استفاده از کد اسکنر I2C انجام دهیم. وقتی آدرس I2C را داشتیم می توانیم این مقدار را در کد مثال جایگزین کرده و استفاده از آن را شروع کنیم.

کد اسکنر I2C:

#عبارتند از

void setup () {Wire.begin ()؛ Serial.begin (9600)؛ در حالی که (! سریال) ؛ // منتظر سریال مانیتور Serial.println ("\ nI2C Scanner") باشید ؛ } void loop () {خطای بایت ، آدرس ؛ int n دستگاه ها ؛ Serial.println ("اسکن …") ؛ n دستگاه = 0 ؛ for (address = 1؛ address <127؛ address ++) {// i2c_scanner از مقدار بازگشتی // the.exTransmisstion Write.endTransmisstion استفاده می کند تا ببیند آیا // دستگاه آدرس را تایید کرده است. Wire.begin انتقال (آدرس) ؛ error = Wire.endTransmission ()؛ if (error == 0) {Serial.print ("دستگاه I2C در آدرس 0x یافت شد") ؛ if (آدرس <16) Serial.print ("0")؛ Serial.print (آدرس ، HEX) ؛ Serial.println ("!") ؛ n دستگاهها ++ ؛ } else if (error == 4) {Serial.print ("خطای ناشناخته در آدرس 0x") ؛ if (آدرس <16) Serial.print ("0")؛ Serial.println (آدرس ، HEX) ؛ }} if (nDevices == 0) Serial.println ("دستگاه I2C یافت نشد / n")؛ else Serial.println ("انجام / n")؛ تأخیر (5000) ؛ // 5 ثانیه منتظر اسکن بعدی باشید}

کد مثال (برای نمایش کاراکترهای وارد شده در Serial Monitor):

#شامل #شامل شود

LiquidCrystal_I2C ال سی دی (0x3F ، 20 ، 4) ؛ // آدرس LCD را روی 0x27 برای نمایش 16 کاراکتر و نمایش 2 خط تنظیم کنید

void setup ()

{lcd.init ()؛ // مقداردهی اولیه LCD lcd.backlight ()؛ Serial.begin (9600)؛ }

حلقه خالی ()

{// هنگامی که کاراکترها بر روی پورت سریال وارد می شوند… if (Serial.available ()) {// کمی صبر کنید تا کل پیام به تأخیر برسد (100) ؛ // صفحه را پاک کنید lcd.clear ()؛ // خواندن تمام نویسه های موجود در حالی که (Serial.available ()> 0) {// هر کاراکتر را در LCD نمایش می دهد lcd.write (Serial.read ()) ؛ }}}

مرحله 4: خروجی

خروجی
خروجی
خروجی
خروجی

پس از بارگذاری کد ، آماده رفتن هستید. برای این دستورالعمل ، من کد چاپ سریال را در نظر گرفته ام. بنابراین ، پس از بارگذاری کد ، Serial Monitor را باز کرده و یک کلمه را تایپ کرده و روی "ارسال" کلیک کنید. اکنون باید این مقدار را در LCD مشاهده کنید.

توصیه شده: