آردوینو Arduino Uno آموزش آردوینو نمایشگر LCD پروژه های آردوینو

آموزش راه اندازی ال سی دی کاراکتری LCD با پروتکل I2C

نوشته شده توسط حسین فهیمی

برای راه اندازی LCD ها حداقل به ۶ پین میکرو نیاز دارید و معمولا در اغلب پروژه ها ، یک پورت کامل به آنها اختصاص داده می شود. بعضی مواقع شما با کمبود پین های میکرو مواجه میشوید و در آن زمان است که اهمیت ماژول راه انداز ال سی دی LCD مشخص می گردد. ماژول راه انداز ال سی دی می‌تواند بواسطه‌ی پروتکل I2C تنها با استفاده از ۲ پین میکروکنترلر LCD متنی را برای شما راه اندازی نماید. خاصیت دیگر ماژول راه انداز ال سی دی LCD آدرس پذیر بودن این ماژول است و می توانید در صورت نیاز تا ۸ عدد از این ماژولها را توسط ۲ پین میکروکنترلر ، کنترل نمایید ، به عبارت دیگر می توانید بوسیله ی تنها  ۲ پین ، ۸ LCD متنی را راه اندازی کنید. این ماژول بر پایه تراشه PCF8574 شرکت فیلیپس طراحی شده است. قابلیت دیگر این ماژول کنترل بک لایت LCD بوسیله ی همان ۲ پین است. یعنی شما هم می توانید بر روش LCD بنویسید ، هم می توانید بک لایت LCD را خاموش و روشن نمایید. این ماژول در حقیقت برای آردینو (Arduino) طراحی شده است ، این ماژول مناسب جهت استفاده در انواع بردهای میکرو، آردوینو(Arduino)، رزبری پای، اورنج پای و دیگری بردهای امبدد است. در این آموزش هم قصد داریم راه اندازی این ماژول را به شما آموزش دهیم پس در ادامه‌ی این آموزش با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

 


ال سی دی کاراکتری LCD 2X16


LCD کاراکتری ۱۶*۲ یکی از پایه ای ترین نمایشگرهای الکترونیکی می‌باشد که در بسیاری از مدارها کاربرد دارد. یکی از دلایل پر مصرف بودن این ال سی دی ها در مقابل نمایشگرهایی همچون سون سگمنت، عدم محدودیت در نمایش کاراکترها و حتی ساختن کارکترهای دلخواه می‌باشد. ال سی دی کاراکتری LCD 2×16 یک نمایشگر الکترونیکی است که دارای ۱۶ ستون و ۲ سطر مشخصه. این نمایشگر قابلیت نمایش کاراکترها و اعداد را دارا بوده و برای نمایش متن و اطلاعات در پروژه‌های الکترونیکی استفاده می‌شود. این LCD با ورودی دیجیتال میکروکنترلرها یا آردوینو به کار می‌رود و به عنوان وسیله‌ای مناسب برای نمایش داده‌ها در پروژه‌های الکترونیکی و رباتیکی شناخته می‌شود.

 

Schematic I2C LCD

 


وسایل مورد نیاز


 

 


اتصالات


اول باید درایور رو مثل شکل زیر روی LCD لحیم کنید.

i2c driver for lcd

  • حالا باید Vcc درایور رو به ۵v آردوینو(arduino) متصل کنید.
  • Gnd ماژول رو به Gnd آردوینو(arduino) متصل کنید.
  • سیم های SCL و SDA که مربوط به پروتکل I2C هستند رو باید به ترتیب به پین های A5 و A4 آردوینو(arduino) متصل کنید.

 

lcd-1602-i2c-sch

شما برای ارتباط با این ماژول نیاز به کتابخانه ی liquid crystal i2c دارین. میتوانید اون رو دانلود و روی IDE آردوینو نصب کنید. حالا کد زیر رو روی برد آردوینو(arduino) آپلود و سریال مانیتور رو باز کنید. بادرید اون رو روی ۹۶۰۰ تنظیم کنید و کلمه ی digispark.ir رو تایپ کنید و از روی Enter ، keyboard رو بزنید و نتیجه رو مشاهده کنید.

 

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

 

دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندس‌های دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید.

 

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

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

حسین فهیمی

تبادل نظر و رفع عیب با ثبت دیدگاه

۳۳ دیدگاه

  • سلام
    آقاى فهیمى من آپلود کردم ولى تغییرى مشخص نشد، یعنى هیچ اتفاقى نیافتاد…. !!

    • سلام. اگه میشه مشکلتون رو واضح تر توضیح بدین… اتصالات رو درست انجام دادین؟ کد جدید رو جایگزین کردم. میتونید دوباره امتحان کنید.

    • سلام دوست عزیز
      این مطلب رو می گم چون مشکل خیلی از افراد بوده و هست.
      اگه به درایور دقت کرده باشید می بینید که یک پتانسیومتر روی خودش داره که نور پس زمینه رو تنظیم می کنه.
      در حالت عادی این پتانسیومتر روی کم ترین مقدار تنظیم شده پس شما نمی تونید چیزی رو مشاهده کنید.
      برای حل این مشکل کافیه پتانسیومتر رو با نوک ناخن یا سر چاقو کمی بچرخونی تا نوشته ها برات معلوم شن.

      **اگه مشکلتون حل شد یه صلوات بر محمد (ص) بفرستید**

  • کلمه ی رو تایپ کردم و پس از انتقال به صورت لحظه ای چراق قرمز اردوینو روشن میشود ولی در ال سی دی نمایش داده نمیشود و اتصالات درست میباشد لطفا راهنمایی کنید.

  • سلام
    اگر امکان داره در مورد اولین پارامتر در راه اندازی LCD توضیح بدین (اعداد ۰x27 و یا ۰x3F)
    و اینکه چرا به پایه های ورودی آنالوگ وصل میشه و اینکه چطور میشه این پایه ها رو تغییر داد مثلا به A0 , A1 وصلش کرد
    ممنون

  • ممنونم از شما ، منم مشکل دوستمون رو داشتم که با راهنمایی شما حل شد.

    مشکل من کم بودن میزان کنتراست بود

  • سلام. قسمت lcd.begin در برنامه رو خطا میده.Arduino: 1.6.9 (Windows 7), Board: “Arduino/Genuino Uno”

    C:\Users\hamed\Desktop\ultrasonic\ultrasonic.ino: In function ‘void setup()’:

    ultrasonic:6: error: no matching function for call to ‘LiquidCrystal_I2C::begin()’

    lcd.begin();

    ^

    C:\Users\hamed\Desktop\ultrasonic\ultrasonic.ino:6:13: note: candidate is:

    In file included from C:\Users\hamed\Desktop\ultrasonic\ultrasonic.ino:2:0:

    C:\Users\hamed\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: void LiquidCrystal_I2C::begin(uint8_t, uint8_t, uint8_t)

    void begin(uint8_t cols, uint8_t rows, uint8_t charsize = LCD_5x8DOTS );

    ^

    C:\Users\hamed\Documents\Arduino\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:58:8: note: candidate expects 3 arguments, 0 provided

    Multiple libraries were found for “LiquidCrystal_I2C.h”
    Used: C:\Users\hamed\Documents\Arduino\libraries\LiquidCrystal_I2C
    Not used: C:\Program Files\Arduino\libraries\LiquidCrystal_I2C
    exit status 1
    no matching function for call to ‘LiquidCrystal_I2C::begin()’

    Invalid library found in C:\Program Files\Arduino\libraries\Arduino-LiquidCrystal-I2C-library.daneshjookit: C:\Program Files\Arduino\libraries\Arduino-LiquidCrystal-I2C-library.daneshjookit
    Invalid library found in C:\Program Files\Arduino\libraries\SimpleDHT: C:\Program Files\Arduino\libraries\SimpleDHT

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  • با سلام
    برد Arduino Uno رو از شما تهیه کردم و میخواستم به نمایشگر ۲×۱۶ با راه انداز I2C وصل کنم. طبق راهنمای دیجی اسپارک فیشهای ۵v و GRD را براحتی با کابل نری به مادگی وصل کردم ولی موقع اتصال کابلهای scl و sdl متوجه شدم که بر روی برد آردوینوی من قسمت آنالوگ هیچ پین هدری وجود نداره.
    میخواستم راهنمایی بفرمایید که مشکل از کجاست و چه راه حلی دارم.
    با تشکر

    • با سلام و تشکر از شما
      تابحال چنین موردی در خصوص بردهای آردوینو وجود نداشته است. همچنین پین‌هدر روی برد آردوینو لحیم شده و آماده است. لطفا موارد را از طریق ارسال تیکت به واحد پشتیبانی پیگیری بفرمایید.

    • سلام دوست عزیز در قسمت پایه های دیجیتال آردوینو ۱۳ پایه‌ی دیجیتال وجود داره بعد یک پایه‌ی GND و بعد یک پایه‌ی Aref بعد از اون پایه‌ی SDA و بعد از اون پایه‌یscl
      اگر مشکلتون حل نشد میتونید به من یک ایمیل بدید تا کمکتون کنم.

      • با سلام
        با تشکر از راهنمایی شما
        امکان راهنمایی از طریق ایمیل وجود ندارد. موارد را از همین طریق اعلام کنید تا دیگر کاربران هم از آن استفاده کنند.
        موفق باشید.

  • سلام.می‌خواستم بدونم کا ما میتونیم به صورت عادی متن های نمایش داده شده بر روی سریال مانیتور در محیط نرم افزار اردوینو رو بر روی ال سی دی نمایش بدیم یا باید کدهامون رو تغییر بدیم؟

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

    صفحه LCD روشن میشه ولی هرکاری کردم متن که وارد میکنم رو نمایش نمیده
    کد آموزش شما رو هم که زدم هیچ چیزی نمایش نمیده
    حتی پتانسیوم رو هم چرخوندم

    از i2c scanner هم استفاده کردم اصلا LCD رو تشخیص نمیده

  • سلام
    عزیز من این ماژول راه اندازی کردم اما متاسفانه فقط حرف اول کاراکتر را نشان میدهد
    مثال کلمه hello را فقط h نمایش میدهد
    علت چیست؟

  • با سلام و خسته نباشید ، سوالی داشتم در مورد وصل کردن ۱۰ عدد oled ۹۱اینچ کوچک ، آیا میشه اتصال داد و برنامه نویسی کرد ،به حساب آدرس دهی بشن مثل ال سی دی ، و طرز آدرس دهی او لد چگونه هست مثلا ال سی دی گفتید ۲۷هکز فکرکنم ، ممنون

    • با سلام
      سوال شما در آموزش مربوط به oled ها پاسخ داده شده است، بررسی کنید.