آموزش کنترل نئو پیکسل با آردوینو و نمایشگر لمسی TFT
محتویات
سلام. آموزش کنترل نئو پیکسل با آردوینو و نمایشگر لمسی TFT را آماده کردیم.
پروژه راه اندازی Neo Pixel با آردوینو و 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 ال ای دی استفاده کرده ایم.
NeoPixel RGB LED را می توان به هر رنگی روشن کرد و بنابراین می توانیم دکمه های بیشتری را بر روی LCD اضافه کنیم تا LED را به رنگ های بیشتری روشن کنیم. سایر جلوه ها و الگوها را نیز می توان با استفاده از برنامه نویسی اضافه کرد. شما می توانید با استفاده از LED های NEO Pixel ، یک سیستم دکوراسیون منزل بسازید که آن را با ال سی دی لمسی کنترل کنید.
فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.
نحوه کار این پروژه بسیار ساده است. کافی است روی هر رنگی که میخواهید در ال سی دی کلیک کنید تا نئو پیکسل ها به آن رنگ دربیایند.
هنگامی که در LCD بر روی هر دکمه ضربه زده می شود، داده ها به Arduino ارسال می شوند و Arduino برای تغییر نور NeoPixel Strip دستورالعمل های لازم را می فرستد.
مدار پروژه کنترل نئو پیکسل با آردوینو
برای اتصال نئو پیکسل به آردوینو مگا، پین 5 ولت آردوینو را به پین 5v نئوپیکسل و همچنین GND آردوینو را به GND نئو پیکسل متصل کنید. سپس پین DI را به پین 36 Arduino Mega متصل کنید. شیلد ال سی دی لمسی TFT را روی آردوینو سوار کنید تا GND و 5 ولت Arduino و شیلد به هم متصل شوند. میتوانید از هر برد آردوینویی که بخواهید استفاده کنید.
مراقب باشید هنگام اتصال Neo Pixel به Arduino، پین GND و 5v را جابجا متصل نکنید. زیرا به آردوینو شما آسیب میرسد.
نحوه اتصال نئوپیکسل به آردوینو :
پین های Arduino | پین های Neo Pixel |
5v | 5v |
GND | GND |
پین دیجیتال شماره 36 | DI = data in |
قطعات مورد نیاز
- برد آردوینو مگا (یا هر مدل آردوینو دیگر)
- شیلد ال سی دی 2.4 اینچی TFT
- نوار 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 بگذارید، اندازه دکمه دو برابر می شود.
دکمه های لمس شونده توسط شماره هایی مانند کد زیر تعریف می شوند.
#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(); } }
کد کمی طولانی اما ساده است و می توانید کد را به راحتی درک کنید.
در نهایت ما یک پنل لمسی برای کنترل نئوپیکسل داریم.
موارد موجود در فایل : سورس کامل ، کتابخانه مورد نیاز
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام ببخشید میشه به جای ال ای دی های نعوپیکسل از ال ای دی آر جی بی و نعون آرجی بی گذاشت
سلام عزیز
خیر
سلام پروژه های شما حرفی واسه گفتن آدم نمیزاره و اینکه من میخواهم یک موبایل هوشمند با استفاده از آردینو یونو و نمایشگر تی اف تی بسازم میشه برای آردینو برنامه نویسی اندروید کرد یا نه ؟
سلام عزیز
میخواهید اندروید بریزید روی آردوینو؟ خیر