پروژه الکترونیکپروژه های آردوینو

آموزش کنترل نئو پیکسل با آردوینو و نمایشگر لمسی TFT

سلام. آموزش کنترل نئو پیکسل با آردوینو و نمایشگر لمسی TFT را آماده کردیم.

پروژه راه اندازی Neo Pixel با Arduino و LCD TFT

هر رنگی از سه رنگ قرمز ، سبز و آبی تشکیل شده است و با استفاده از یک LED RGB ساده می توانید هر رنگی را ایجاد کنید. اما محدودیت ال ای دی RGB ها این است که در داخل آن سه LED جداگانه وجود دارد و برای کنترل یک LED RGB به سه پین ​​از هر میکروکنترلر نیاز است. بنابراین امکان اتصال صد ها LED به یک میکروکنترلر وجود ندارد.

برای رفع این مشکل، نئو پیکسل ها ایجاد شده اند. برای کنترل چند LED RGB NeoPixel فقط به سه پین ​​نیاز دارید. دو پین برای Power و GND و یک پین برای Data In یا همان ارسال داده ها است. پین Data IN برای آدرس دهی و کنترل LED های مختلف موجود در نوار با قابلیت تنظیم رنگ، روشنایی و … استفاده می شود. حتما برای اجرای NeoPixels به یک میکروکنترلر نیاز دارید. آردوینو معمولاً برای کنترل NeoPixel ها مورد استفاده قرار می گیرد. در این پروژه آردوینو ما نحوه کنترل نئوپیکسل با استفاده از Arduino را یاد میگیریم.

در این پروژه کنترل ال ای دی ها نئوپیکسل، با استفاده از آردوینو و صفحه نمایش لمسی TFT LCD انجام میشود. ما 7 دکمه لمسی میسازیم که با ضربه زدن به هر کدام، نوار ال ای دی به همان رنگ در می آید. در اینجا ما از نوار LED NeoPixel Digital RGB LED با 30 ال ای دی استفاده کرده ایم.

پروژه راه اندازی Neo Pixel با Arduino و LCD TFT

NeoPixel RGB LED را می توان به هر رنگی روشن کرد و بنابراین می توانیم دکمه های بیشتری را بر روی LCD اضافه کنیم تا LED را به رنگ های بیشتری روشن کنیم. سایر جلوه ها و الگوها را نیز می توان با استفاده از برنامه نویسی اضافه کرد. شما می توانید با استفاده از LED های NEO Pixel ، یک سیستم دکوراسیون منزل بسازید که آن را با ال سی دی لمسی کنترل کنید.

فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.

نحوه کار این پروژه بسیار ساده است. کافی است روی هر رنگی که میخواهید در ال سی دی کلیک کنید تا نئو پیکسل ها به آن رنگ دربیایند.

حتما ببینید :  آموزش اتصال و راه اندازی ماژول RFID با STM32

نحوه کار با پروژه نئوپیکسل
هنگامی که در LCD بر روی هر دکمه ضربه زده می شود، داده ها به Arduino ارسال می شوند و Arduino برای تغییر نور NeoPixel Strip دستورالعمل های لازم را می فرستد.

توضیحات مدار پروژه

برای اتصال نئو پیکسل به آردوینو مگا، پین 5 ولت آردوینو را به پین 5v نئوپیکسل و همچنین GND آردوینو را به GND نئو پیکسل متصل کنید. سپس پین DI را به پین 36 Arduino Mega متصل کنید. شیلد ال سی دی لمسی TFT را روی آردوینو سوار کنید تا GND و 5 ولت Arduino و شیلد به هم متصل شوند. میتوانید از هر برد آردوینویی که بخواهید استفاده کنید.

نحوه اتصال TFT LCD لمسی به آردوینو

مراقب باشید هنگام اتصال Neo Pixel به Arduino، پین GND و 5v را جابجا متصل نکنید. زیرا به آردوینو شما آسیب میرسد.

نحوه اتصال نئوپیکسل به آردوینو :

پین های Arduinoپین های Neo Pixel
5v5v
GNDGND
پین دیجیتال شماره 36DI = data in

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

  1. برد آردوینو مگا (یا هر مدل آردوینو دیگر)
  2. شیلد ال سی دی 2.4 اینچی TFT
  3. نوار LED نئوپیکسل RGB

توضیحات کد آردوینو پروژه

برای راه اندازی TFT LCD با آردوینو از برخی کتابخانه ها استفاده کرده ایم. تمام كتابخانه ها و کد کامل پروژه در انتهای صفحه در فایل  دانلودی قرار گرفته اند. در اینجا بعضی از قسمت های مهم کد را بررسی میکنیم.

این کتابخانه برای عملکرد صحیح LCD TFT مورد نیاز است.

اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید.
#include <SPFD5408_Adafruit_GFX.h>    // Core graphics library
#include <SPFD5408_Adafruit_TFTLCD.h> // Hardware-specific library
#include <SPFD5408_TouchScreen.h>

شما باید کد های آردوینو را بارگذاری کنید و تست کنید آیا ال سی دی درست کار میکند یا خیر. اگر مشکل داشت باید تست کالیبراسیون و رنگ را انجام دهید. در این مطلب اطلاعات بیشتری را راجع به شیلد LCD TFT پیدا میکنید : پروژه ماشین حساب لمسی با LCD TFT و آردوینو 

همچنین برای عملکرد مناسب نوار LED NeoPixel RGB ، به یک کتابخانه دیگر نیز احتیاج دارید که می توانید از اینجا بارگیری کنید.

#include <Adafruit_NeoPixel.h>

همانطور که گفتیم، از پین 36 آردوینو برای اتصال پین داده نئو پیکسل استفاده میکنیم. و همچنین تعداد ال ای دی های نئو پیکسل را در قسمت زیر باید تعیین کنید که برای ما 30 است.

#define PIN 36 // پین داده نئوپیکسل
#define NUM_LEDS 30 // تعداد ال ای دی ها

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

#define BLACK   0x0000 // تعریف رنگ ها
#define YELLOW    0x001F
#define GREEN     0xF800
#define RED   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define BLUE  0xFFE0
#define WHITE   0xFFFF

برخی پارامترها مانند اندازه و موقعیت برای دکمه های LCD در کد تعریف شده اند:

uint16_t width = 0;
uint16_t height = 0;
uint16_t x = 40;
uint16_t y = height - 20;
uint16_t w = 75;
uint16_t h = 20;

از پارامتر h برای تنظیم اندازه دکمه روی LCD استفاده می شود. مثلا اگر آن را 40 بگذارید، اندازه دکمه دو برابر می شود.

حتما ببینید :  پروژه دماسنج رزبری پای با سنسور DS18B20

دکمه های لمس شونده توسط شماره هایی مانند کد زیر تعریف می شوند.

#define BUTTONS 9
#define BUTTON_Red 0
#define BUTTON_DarkRed 1
#define BUTTON_RED 2
#define BUTTON_DarkGreen 3
#define BUTTON_DeepRed 4
#define BUTTON_Blue 5
#define BUTTON_LightBlue 6
#define BUTTON_LightBlue1 7

برخی از توابع برای درخشش رنگ از NeoPixel استفاده می شوند مانند:

void EmitCyan();
void EmitWhite();
void EmitGreen();
void EmitYellow();
void EmitPink();
void EmitBlack();

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

از عملکرد void fillizeButtons () برای دادن متن و رنگ به دکمه ها و همچنین برای قرار دادن آنها در محل مورد نظر بر روی LCD استفاده می شود.

void initializeButtons() {

  uint16_t x = 40;
  uint16_t y = height - 20;
  uint16_t w = 75;
  uint16_t h = 40;
  uint8_t spacing_x = 5
  ..... .....
  .... ......

از تابع void showCalibration () برای ترسیم دکمه ها بر روی LCD استفاده می شود.

void showCalibration() {
  tft.setCursor (40, 0);   
      for (uint8_t i = 0; i < 8; i++) {
        buttons[i].drawButton();
    }
  }

کد کمی طولانی اما ساده است و می توانید کد را به راحتی درک کنید.

فیلم عملکرد پروژه

در نهایت ما یک پنل لمسی برای کنترل نئوپیکسل داریم. فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.

برای دانلود فیلم پروژه راه اندازی نئوپیکسل با آردوینو کلیک کنید.

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

برای دانلود فایل های پروژه ثبت نام کنید، تنها چند ثانیه زمان لازم است. از طریق فرم زیر اقدام کنید.

ایمیل خود را وارد کنید

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
برچسب ها

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید)

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

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

دکمه بازگشت به بالا
بستن
بستن