آموزش راه اندازی ال سی دی کاراکتری LCD 16×2 با رابط I2C با آردوینو

فهرست مطالب

ویژگی های ال سی دی کاراکتری 16x2 LCD با رابط I2C

نمایشگر کاراکتری 2×16 داری دو ردیف 16 تایی جهت نمایش اطلاعات می‌باشد. نمایشگرهای معمولی 2×16، هفت پین دیجیتال را اشغال می‌کنند در صورتی که این ماژول با رابط I2C این تعداد را به 2 پین کاهش داده است. یک پتانسیومتر نیز جهت تنظیم کنتراست نمایشگر قرار داده شده است. این نمایشگرها کاربردهای فراوانی دارند و در مواردی مانند: دستگاه‌های کپی و فکس، پرینترهای لیزری، ابزارآلات تست صنعتی و … استفاده می شوند.

دیتاشیت ماژول نمایشگر کاراکتری 2×16 با رابط I2C را می توانید از اینجا دانلود کنید.

معرفی پایه های (Pinout) ماژول نمایشگر کاراکتری 16x2 با رابط I2C

نمایشگر کاراکتری 2×16 با رابط I2C دارای 4 پایه به شرح زیر است:

  • VCC: تغذیه ماژول –5 ولت
  • GND: زمین
  • SDA: پین دیتا
  • SCL: پین کلاک

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

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

قطعات مورد نیاز

آردوینو UNO R3 × 1
نمایشگر کاراکتری 16x2 با رابط I2C با رنگ پس زمینه آبی × 1
نمایشگر کاراکتری 16x2 با رابط I2C با رنگ پس زمینه سبز × 1
سیم جامپر × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی نمایشگر کاراکتری 16x2 با رابط I2C با آردوینو

گام اول: سیم بندی

مطابق مدار زیر ماژول را به آردوینو وصل کنید.

گام دوم: نصب کتابخانه

به Library manager رفته و کلمه LiquidCrystal_I2C را سرچ کنید و در ادامه، مطابق تصویر زیر کتابخانه آن را نصب کنید.

توجه

اگر برای نصب کتابخانه نیاز به راهنمایی بیشتر دارید، به اینجا مراجعه کنید.

گام سوم : اسکن آدرس I2C نمایشگر

کد زیر را روی برد آردوینوی خود آپلود کنید.

   /*
  Character-LCD-I2C-16x2(1602)
  made on 31 oct 2020
  
Home
based on Arduino Library Examples */ #include <Wire.h> void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: wait for serial monitor Serial.println("\nI2C Scanner"); } void loop() { int nDevices = 0; Serial.println("Scanning..."); for (byte address = 1; address < 127; ++address) { // The i2c_scanner uses the return value of // the Write.endTransmisstion to see if // a device did acknowledge to the address. Wire.beginTransmission(address); byte error = Wire.endTransmission(); if (error == 0) { Serial.print("I2C device found at address 0x"); if (address < 16) { Serial.print("0"); } Serial.print(address, HEX); Serial.println(" !"); ++nDevices; } else if (error == 4) { Serial.print("Unknown error at address 0x"); if (address < 16) { Serial.print("0"); } Serial.println(address, HEX); } } if (nDevices == 0) { Serial.println("No I2C devices found\n"); } else { Serial.println("done\n"); } delay(5000); // Wait 5 seconds for next scan }

قبل از استفاده از این ماژول ابتدا بایستی آدرس I2C نمایشگر را از طریق برنامه بالا به دست آوریم و در برنامه‌ی اصلی خود این آدرس نمایشگر را وارد کنیم.
تصویر زیر در خروجی Serial Monitor ظاهر شده ‌است. آدرس I2C این نمایشگر 0x3F می‌باشد.

گام چهارم : کد اصلی

کد زیر را روی برد آردوینوی خود آپلود کنید.

    /*
  Character-LCD-I2C-16x2(1602)
  modified on 31 oct 2020
  by Amir Mohammad Shojaee @ Electropeak
  
Home
based on LiquidCrystal_I2C Library Arduino Examples */ #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display void setup() { lcd.init(); // initialize the lcd lcd.backlight(); Serial.begin(9600); } void loop() { // when characters arrive over the serial port... if (Serial.available()) { // wait a bit for the entire message to arrive delay(100); // clear the screen lcd.clear(); // read all the available characters while (Serial.available() > 0) { // display each character to the LCD lcd.write(Serial.read()); } } }

ابتدا بایستی کتابخانه‌های مورد نیاز پیوست شوند. در ادامه، آدرس I2C نمایشگر را که در بخش قبل به دست آورده بودیم، وارد می کنیم. سپس، برنامه منتظر نوشتن یک عبارت توسط کاربر می‌شود. با وارد نمودن یک عبارت توسط کاربر در قسمت Serial Monitor، همان عبارت بر روی نمایشگر ظاهر می‌گردد.
دو عکس زیر نتیجه نمایش عبارت “1602 LCD” بر روی نمایشگر می‌باشد. این عبارت ابتدا در قسمت Serial Monitor نوشته می‌شود. سپس با ارسال آن، بر روی نمایشگر ظاهر می‌گردد.

آموزش های مشابه

Comments (7)

  • پویان عزیزی Reply

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

    دسامبر 10, 2023 at 8:53 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      اینکه یک دستگاه را به صورت بیسیم از طریق اینترنت کنترل کنید نیاز به IP Static یا ایجاد سرویس های آماده دارید.
      برای مثال سرویس های آماده، می توانید به این آموزش مراجعه کنید. این نوع سرویس ها امکان دارد به صورت دوره ای توسط دولت یا شرکت های خارجی فیلتر یا تحریم بشود.
      برای مورد IP Static باید دانش شبکه و ایجاد پروتکل های Post , Get رو ایجاد کنید و از میکروکنترلر هایی مانند ESP یا ماژول های سیمکارت برای این موضوع استفاده کنید.

      دسامبر 12, 2023 at 7:47 ق.ظ
  • رضا حسین زاده Reply

    من این lcd رو از شما خریدم طبق آموزش هم نصب کردم روی سریال درست کار می‌کنه ولی کد hello worde رو که میزنم روش فقط یک کارکتر نمایش میده مشکل چیه???

    ژانویه 1, 2024 at 12:17 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      در صورتی که از نمایشگر 1602 دارید استفاده میکنید خط
      LiquidCrystal_I2C lcd(0x3F,20,4);
      را به
      LiquidCrystal_I2C lcd(0x3F,16,2);
      تغییر بدهید.
      احتمالا مربوط به این بخش می باشد.

      ژانویه 1, 2024 at 8:30 ق.ظ
  • hossin Reply

    ممنون از لطف شما

    ژانویه 24, 2024 at 4:34 ب.ظ
  • علی Reply

    برای من کار نکرد

    فوریه 19, 2024 at 3:10 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      ابتدا سعی کنید با برنامه I2CSanner که در بخش نمونه مثال های برنامه آردوینو زیر مجموعه Wire می باشد. بررسی کنید که ID دستگاه شما شناسایی می شود یا خیر؟؟
      توجه داشته باشید که در صورت استفاده از برد هایی به جز آردوینو UNO بررسی کنید که پایه های I2C کدام پایه ها می باشد و باید نمایشگر را به پایه های مربوطه وصل کنید.

      فوریه 21, 2024 at 11:52 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.