آموزش, توصیه شده

راه اندازی نمایشگر رنگی ارزان قیمت با آردوینو (Nokia 1661)

راه اندازی نمایشگر رنگی ارزان قیمت با آردوینو (Nokia 1661)

هیچ چیز به اندازه یک نمایشگر گرافیکی رنگی نمیتونه پروژه های ما رو قشنگ کنه! اما همیشه این قیمت ها هستند که ما رو توی طراحی محدود میکنند. توی این آموزش میخوایم نحوه راه اندازی نمایشگر رنگی ارزان قیمت با آردوینو رو آموزش بدیم ، البته قبلا هم در سیسوگ در مورد این نمایشگر nokia 1661 صحبت کرده بودیم  اما این بار میخوایم فقط تمرکزمون رو روی آردوینو بزاریم و این نمایشگر رو با کتابخانه محبوب adafruit راه اندازی کنیم و البته کتابخانه ای با پشتیبانی از spi سخت افزاری esp8266 و همچنین یک برد آماده که بتونید راحت تر از همیشه این lcd رو راه اندازی کنید، پس با سیسوگ همراه باشید تا به سراغ این آموزش کاربردی بریم.

شاید برای شما مفید باشد: آموزش آردوینو از 0 تا 100

سخت افزار

نمایشگر مورد استفاده ما در اصل مخصوص تلفن های nokia هست و چون در تیراژ بسیار بالا تولید میشه قیمت مناسبی داره ، این نمایشگر در تلفن های Nokia 1661 , Nokia 1616 و … استفاده میشه (لیست کامل تر اینجا هست)، برای تهیه خود نمایشگر هم باید به فروشنده های قطعات موبایل مراجعه کنید و نه فروشگاه های الکترونیک، ما توی این آموزش از ماژول آماده این نمایشگر استفاده میکنیم که میتونید اون رو از فروشگاه امبددتک تهیه کنید.

lcd nokia 1661

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

ویژگی های این نمایشگر رو در ادامه میتونید بررسی کنید:

  • پشتیبانی از 65 هزار رنگ
  • سایز 1.8 اینچ
  • رزولویشن 128*160

 

راه اندازی کتابخانه Adafruit spfd54124b

در واقع spfd54124b درایور نمایشگر هست و lcd توسط اون کنترل میشه، این درایور از پروتکل spi 9 bit پشتیبانی میکنه، همونطور که میدونید اکثر میکروکنترلر ها از spi 8 bit پشتیبانی میکنند و ما توی این کتابخونه برای میکروکنترلر های avr به صورت نرم افزاری و بهینه spi رو راه اندازی کردیم ، البته در این بین ماژول محبوب esp8266 یا همون برد node mcu، از spi 9 bit هم پشتیبانی میکنه و شما میتونید با سرعت بالایی روی lcd اطلاعات رو نمایش بدید. در ادامه نحوه استفاده از این کتابخونه رو بررسی می‌کنیم .

ابتدا به آدرس https://github.com/mahdi2001h/Adafruit-spfd54124b رفته و فایل zip کتابخانه رو دانلود می‌کنیم.

downoad adafruit

حالا نرم افزار آردوینو رو باز کرده و از منوی Sketch -> Include library -> add .zip library فایل زیپی که دانلود کردیم رو انتخاب میکنیم.

arduino spfd54124b

بعد از اون نیاز هست که کتابخونه Adafruit GFX رو هم نصب کنیم ، برای این کار وارد منوی Sketch -> Include library -> Manage libraries شده و کتابخونه مورد نظرمون رو نصب میکنیم

راه اندازی نمایشگر رنگی ارزان قیمت با آردوینو (Nokia 1661)

راه اندازی نمایشگر رنگی ارزان قیمت با آردوینو (Nokia 1661)

حالا میخوایم این کتابخونه رو با nodemcu تست کنیم ، برای اینکار example مربوطه رو انتخاب میکنیم:

راه اندازی نمایشگر رنگی

همونطور که مشاهده میکنید یکسری example آماده برای کار با کتابخونه وجود داره:

  • hw_spi_arduino_uno: راه اندازی به صورت spi سخت افزاری با برد arduino uno
  • hw_spi_esp8266: راه اندازی به صورت spi سخت افزاری با برد nodemcu
  • sw_spi_arduino_uno: راه اندازی به صورت spi نرم افزاری با برد arduino uno
  • sw_spi_esp32: راه اندازی به صورت spi نرم افزاری با برد esp32
  • sw_spi_esp8266: راه اندازی به صورت spi نرم افزاری با برد nodemcu

در ادامه میتونید شماتیک مناسب هر نمونه کد رو مشاهده کنید:

nodemcu nokia 1661

arduino uno nokia 1661

 

کد ما به این صورت هست:

برای معرفی نمایشگر اگر میخوایم به صورت سخت افزاری راه اندازی بشه ، لازمه که به این صورت فقط دو پین rst و cs معرفی بشه

و در صورت استفاده به صورت spi نرم افزاری به این صورت باید همه پین های spi مشخص بشه

 

دقت کنید در صورت استفاده از spi نرم افزاری برای esp8266 نمیتونید از پین 16 (D0 در nodemcu) برای TFT_CLK و TFT_DATA استفاده کنید

 

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

adafruit arduino nokia 1661 esp8266 spfd54124b

راه اندازی نمایشگر رنگی

 

توابع قابل استفاده برای رسم در نمایشگر

شما میتونید تمام توابع کتابخانه adafruit gfx رو برای این lcd استفاده کنید، در ادامه به بررسی تعدادی از اونا میپردازیم.

 

چرخش صفحه

این تابع برای مشخص کردن جهت رسم بر روی صفحه نمایش به کار میرود و مقدار 0 تا 3 را میتوان برای آن مشخص کرد.

 

رسم نقطه

این تابع برای رسم یک نقطه در x و y مشخص به همراه رنگ انتخابی استفاده میشه:

 

رسم خط

این تابع برای رسم یک خط با مشخص کردن نقطه ابتدایی و انتهایی به همراه رنگ انتخابی استفاده میشه:

lcds___displays_line.png

رسم مستطیل

این تابع برای رسم مستطیل توپر و توخالی از x و y مشخص به همراه طول و عرض و رنگ انتخابی استفاده میشه:

lcds___displays_rect.png

رسم دایره

این تابع برای رسم یک دایره در x و y مشخص به همراه مرکز ، شعاع و رنگ انتخابی استفاده میشه:

lcds___displays_circle.png

رسم مستطیل با گوشه گرد

این تابع برای رسم مستطیل با گوشه های گرد به صورت توپر و توخالی از x و y مشخص به همراه طول و عرض ، شعاع گوشه ها و رنگ انتخابی استفاده میشه:

lcds___displays_roundrect.png

رسم مثلث

این تابع برای رسم مستطیل با گوشه های گرد به صورت توپر و توخالی از x و y مشخص به همراه طول و عرض ، شعاع گوشه ها و رنگ انتخابی استفاده میشه:

lcds___displays_triangle.png

نوشتن کاراکتر

این تابع برای نوشتن یک کاراکتر در x و y مشخص به همراه رنگ ، سایز و رنگ پس زمینه استفاده میشه:

lcds___displays_char.png

کار با متن

از این توابع برای کار با متن میتونید استفاده کنید

همچنین برای مشخص کردن فونت از این دستور باید استفاده کنید:

اینجا لیستی از فونت های قابل استفاده موجود هست

lcds___displays_specimens.png

برای استفاده از هر فونت لازمه که قبلش اون رو در ابتدای کد include کنید، مثلا :

 

در قسمت بعدی از آموزش به معرفی یک نمایشگر با نصف قیمت این نمایشگر اما به صورت تک رنگ میپردازیم.

nokia 1661 embeddedtech

منبع : وبلاگ امبددتک

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

6 دیدگاه در “راه اندازی نمایشگر رنگی ارزان قیمت با آردوینو (Nokia 1661)

  1. Avatar for عبدالرضا عبدالرضا گفت:

    سلام خدمت دوستان عزیز خصوصا دوست عزیز mahdi.h که این پست را گذاشتن . من در بخش سیم کشی این برد دچار ابهام شدم . شما از پایه CLK برد Nodemcu بعنوان تغذیه و راه اندازی بک لایت LCD استفاده شده ( در تصویر ) و همچنین از 3.3v برد nodemcu به SCL صفحه LCD استفاده کردید( در تصویر ). آیا این درست است ؟ لطفا راهنمایی کنید . پایه های lcd در سایت ETech (امبدد..) نشان داده شده است.

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. حق با شماست. عکس شماتیک اشتباه هست. پایه های تغذیه که مشخص هستند. پایه های دیتا رو هم بر اساس کد وصل کنید.
      خودم مدتی پیش متوجه شدم اما چون کسی نگفته بود منم چیزی نگفتم 🙂

  2. Avatar for TAHA TAHA گفت:

    سلام
    چطور میتونم ال سی دی رو پاک کنم؟ تابعی برای اینکار هست؟
    ممنون👌😁

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام. میتونید از تابع fillcolor استفاده کنید

  3. Avatar for مهدی مهدی گفت:

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

    1. Avatar for Mahdi.h   Mahdi.h   گفت:

      سلام.خواهش میکنم 🙂
      ممنون از به اشتراک گذاری تجربتون
      البته باید به این نکته دقت بشه که این نمایشگر مدل ها و کیفیت های مختلفی داره و من این مشکلی که شما میگید رو ندیدم .

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *