آموزش آردوینوپروژه های آردوینو

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

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

در این آموزش نحوه راه اندازی نئوپیکسل نواری و حلقوی آموزش داده میشود.

مقایسه انواع LED های آدرس پذیر

انواع مختلفی از LED های RGB آدرس پذیر در بازار موجود است. آنها در اندازه ها و پیکربندی های مختلف هستند. اما تفاوت عمده آنها در کنترلر به کار رفته در آنهاست. تعداد زیادی از کنترلرهای محبوب RGB-LED در بازار موجود است که از جمله آنها می توان به سری WS281x، SK6812، SK9822 و APA102 اشاره کرد. جدول زیر تفاوت عمده بین این کنترلرهای محبوب را نشان می دهد.

مقایسه انواع LED های آدرس پذیر

پین های ماژول نئوپیکسل WS2812B

در تصویر زیر پین های یک ماژول 8 بیتی WS2812B قرار داده شده است. این ماژول دارای ورودی های برق، ورودی داده و پایه خروجی داده است. پین خروجی داده را می توان به ورودی داده ماژول بعدی متصل کرد.

پین های ماژول نئوپیکسل WS2812B 

  • VCC – برق ماژول را تامین می کند، به پین ​​5 ولت آردوینو متصل می شود.
  • GND – اتصال GND به پایه GND آردوینو.
  • DO – ورودی داده از میکروکنترلر یا برد.
  • DI – خروجی داده به ماژول یا LED بعدی.

ساختار LED نئوپیکسل WS2812B

همانطور که در تصویر زیر مشاهده می کنید، داخل هر LED دارای 3 LED جداگانه برای رنگ های قرمز، سبز و آبی است. آندهای این ال ای دی ها مستقیماً به پین ​​VCC متصل می شوند. کاتدها به بدنه تراشه WS2812B متصل می شوند. پایه های DI، DO و GND به روشی مشابه به تراشه متصل می شوند.

ساختار LED نئوپیکسل WS2812B

کد آردوینو برای LED نئوپیکسل WS2812B

برای راه اندازی نئوپیکسل ها شما باید کتابخانه FastLED را از طریق Library Manager یا به صورت دستی با دانلود کتابخانه FastLED نصب کنید. در ادامه میتوانید کد کامل را از فایل انتهای مطلب دانلود کنید و در صورت نیاز تغییراتی را در آن اعمال کنید. در اینجا قسمت های مهم کد را توضیح میدهیم.

کد با گنجاندن کتابخانه FastLED شروع می شود. سپس پین متصل، تعداد LED ها، روشنایی، نوع LED و ترتیب رنگ تعریف می شود. شما می توانید این مقادیر را مطابق با نوار LED یا ماژول خود تغییر دهید. اگر نوار یا ماژول LED شما رنگ اشتباهی را نشان می دهد، با تغییر COLOR_ORDER آن را تغییر دهید. سایر متغیرها و موارد ضروری نیز تعریف شده است.

#include <FastLED.h>
#define LED_PIN     2
#define NUM_LEDS    8
#define BRIGHTNESS  10
#define LED_TYPE    WS2812B
#define COLOR_ORDER GRB
CRGB leds[NUM_LEDS];
#define UPDATES_PER_SECOND 100
CRGBPalette16 currentPalette;
TBlendType    currentBlending;
extern CRGBPalette16 myRedWhiteBluePalette;
extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM;

در تابع setup() کتابخانه FastLED را مقداردهی اولیه کردیم و روشنایی را نیز تنظیم کردیم. سپس اولین پالت را روی رنگ Rainbow قرار می دهیم.

void setup() {
    delay( 3000 ); // power-up safety delay
    FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
    FastLED.setBrightness(  BRIGHTNESS );
    currentPalette = RainbowColors_p;
    currentBlending = LINEARBLEND;
}

در تابع loop() با فراخوانی تابع ChangePalette Periodically به طور پیوسته افکت ها را تغییر میدهیم. این تابع پس از مدتی مشخص الگوها را همانطور که از نام  آن مشخص است تغییر می دهد. تابع FillLEDsFromPaletteColors برای تنظیم رنگ هر پیکسل از پالت انتخاب شده استفاده می شود. سپس با فراخوانی تابع FastLED.show() تمام رنگ های تعیین شده به نوار LED یا ماژول منتقل می شوند.

void loop() {
    ChangePalettePeriodically();   
    static uint8_t startIndex = 0;
    startIndex = startIndex + 1; /* motion speed */ 
    FillLEDsFromPaletteColors( startIndex);  
    FastLED.show();
    FastLED.delay(1000 / UPDATES_PER_SECOND);
}

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

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

تصویر زیر شماتیک مدار اتصال ماژول WS2812B Neopixel به آردوینو را نشان می دهد. پایه های VCC و GND ماژول را به ترتیب به پایه های 5 ولت و GND آردوینو وصل کنید. همچنین پایه DI را به پایه D2 آردوینو وصل کنید.

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

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

هر چقدر تعداد ال ای دی ها افزایش یابد، اتصالات فرقی نمیکند. فیلم زیر نحوه روشن شدن نئوپیکسل نواری را نشان میدهد.

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

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

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

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

موارد موجود در فایل : سورس کامل

5 (1 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

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

7 نظر

  1. سلام ودرود بزرگوار
    ببخشیدمن همینکاررو با تک اس ام دی اجراکردم
    کدی که استفاده کردم
    17. delay (10);
    18. Serial.println (val, DEC);
    19. }
    20. for (val = 0; val Preferences.

    میشود که راهنمایی ام بکنید

    1. سلام عزیز
      لطفا در انجمن مطرح کنید

  2. سلام ببخشید جناب
    میشود کاری کرد که مقدار فشار وارده به کامپیوتر رو تشخیص بده با رنگ آبی و قرمز و با آس ام دی تک پیکسلی rgb آن
    راهی هست که تشخیص بده

    1. سلام عزیز
      بله باید ماژول فشار سنج تهیه کنید

    2. میتونید مقدار درصد سی پی یو یا رم یا هر چیزی که مد نظرتونه رو با برنامه ای روی ویندوز بگیرید برای این کار از پایتون و کتابخونه هاش میتونید کمک بگیرید که ساده تر بشه کارتون
      بعد اون مقدار درصد رو بفرستید به اردوینو یا esp از طریق سریال یا به صورت بیسیم بعد با توجه علاقه خودتون و شرط هایی که در برد اردوینو قرار میدید تعداد و رنگ نئوپیکسل های رو روشن و بر اساس درصد و دیتای گرفته شده از ویندوز تغییر دهید

      موفق باشید

    1. سلام عزیز
      فایل دانلودی انتهای صفحه را دانلود کنید کد قرار گرفته

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

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