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

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

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

 

سخت افزار

نمایشگر مورد استفاده ما در اصل مخصوص تلفن های 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 شده و کتابخونه مورد نظرمون رو نصب میکنیم

حالا میخوایم این کتابخونه رو با 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

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

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

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

بازگشت به لیست

نوشته های مشابه

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

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

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

  1. TAHA گفت:

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

    1. Mahdi.h   گفت:

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

  2. مهدی گفت:

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

    1. Mahdi.h   گفت:

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