چگونه از LEDهای آدرس پذیر WS2812 (نئوپیکسل) با آردوینو استفاده کنیم؟

مقدمه

استفاده از ال ای دی های NeoPixel به علت ایجاد جذابیت بصری بسیار بالا در پروژه های الکترونیکی، روز به روز  در حال افزایش است. این LEDها در سایزها و اشکال مختلف و بصورت رشته ای (strip) موجود هستند. در این آموزش با ال ای دی های NeoPixel و نحوه کنترل آنها با آردوینو آشنا می شوید.

آنچه در این آموزش یاد می گیرید

  • NeoPixel چیست؟
  • چرا استفاده از NeoPixel جذاب است؟
  • راه اندازی NeoPixel با آردوینو

نئوپیکسل چیست؟

پس از سال 1962 که اولین LED ساخته و آزمایش شد، این قطعه ارزشمند به جزء جدا نشدنی از زندگی ما تبدیل شد. در بیشتر پروژه های الکترونیکی نیز حداقل یک LED حضوری پررنگ دارد. استفاده از LED در رنگ های مختلف به حدی جذاب بود که منجر به ساخت LED های چند رنگ یا RGB LED شد.

مدل RGB برپایه سه رنگ قرمز، سبز و آبی تمام رنگ ها را ایجاد می کند، برای مثال ترکیب رنگ قرمز و آبی، رنگ بنفش (Magenta) را تولید می کند. در این مدل هر رنگ مقداری از 0 تا 255 از رنگ های قرمز، سبز و آبی دارد. مثلا این مقادیر برای Magenta 255 0 255 (مقدار قرمز و آبی حداکثر و مقدار سبز حداقل) می باشد. این مقدار عددی را بصورت کد هگز بیان  می کنند (2550255 = #FF00FF). ال ای دی های RGB برمبنای همین مدل انواع رنگ ها را می سازند.

برای کنترل هر LED RGB به سه پایه دیجیتال از میکروکنترلر (یا بوردهای توسعه یافته مانند آردوینو) نیاز دارید. بنابراین اگر بخواهید بعنوان مثال برای کنترل یک رشته LED RGB شامل 60 LED بنحوی که بتوانید رنگ هر LED را جداگانه کنترل کنید، به 180 پایه دیجیتال نیاز دارید! بنابراین باید کنترل هر LED بصورت جداگانه را فراموش کنید و یا از LED های آدرس پذیر استفاده کنید.

LED های آدرس پذیر، نسل جدیدی از LEDها هستند که علاوه بر LED RGB شامل یک آی سی کنترلی نیز می باشند. این آی سی کنترلی که معمولا WS2812 می باشد ، با اختصاص یک آدرس به هر LED و فراهم سازی ارتباط تک سیمه (One wire) به شما اجازه می دهد با استفاده از تنها یک پایه دیجیتال به تعداد زیادی LED بصورت جداگانه دسترسی داشته باشید، البته این نوع LED ها برخلاف LED های ساده تنها با اعمال ولتاژ روشن نمی شوند و برای روشن شدن نیاز به یک میکروکنترلر دارند.

نئوپیکسل، برند شرکت Adafruit برای LED های آدرس پذیر است.

چرا استفاده از NeoPixel ها جذاب است؟

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

نئوپیکسل ها قابل اتصال به یکدیگر (chainable) نیز هستند، بنابراین می توانید تنها با یک خط فرمان و یک خط توان چندین نئوپیکسل را کنترل کنید.

نکته:

افزایش تعداد LED های نئوپیکسل باعث می شود شما به RAM، توان و زمان پردازش بیشتری نیاز داشته باشید، پس با توجه به نوع میکروکنترلر خود، بهینه ترین تعداد نئوپیکسل را انتخاب کنید.

لوازمی که به آن احتیاج دارید

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

ماژول LED WS2812 × 1
برد آردوینو UNO × 1

نرم افزارهای مورد نیاز

Arduino IDE

راه اندازی NeoPixel با آردوینو

پایه ها

سیم بندی

نکته:

استفاده از مقاومت برای جلوگیری از آسیب رسیدن به نئوپیکسل و ارسال صحیح داده ها ضرروی است.

هشدار

اگر از LED رشته ای استفاده می کنید که شامل تعداد بالایی از LED می باشد بهتر است یک خازن بزرگ (مثلا 1000uf) را با + و – تغذیه موازی کنید.

نکته:

بهترین فاصله برای اتصال اولین ماژول نئوپیکسل به برد کنترلی حدود 1 تا 2 متر است.

مثال 1: راه اندازی نئوپیکسل با آردوینو

در این مثال با استفاده از آردوینو UNO نئوپیکسل ها را روشن کرده و رنگ و شدت نور هر یک را جداگانه کنترل می کنیم. برای راه اندازی نئوپیکسل با آردوینو از کتابخانه Adafruit NeoPixel استفاده کنید.


در ابتدا تابع فوق تعداد LEDها و پایه آردوینو را مشخص می کند.


پیکربندی های اولیه را انجام می دهد،


شدت روشنایی را تعیین می کند (1 حداقل و 255 حداکثر)


با مشخص کردن شماره LED (از 0 تا NUMPIXELS-1)، رنگ آن را با سیستم RGB تعیین می کند،


مقادیر اعمال شده را به نمایش در می آورد.

مثال 2: حالت چشمک زن نئوپیکسل با آردوینو

در این مثال نئوپیکسل ها را با حالت چشمک زن راه اندازی می کنیم. برای ساخت چشمک زن همه LED ها باید همزمان روشن و خاموش شوند، در حالت روشن ال ای دی ها می توانند رنگ های متفاوت داشته باشند.

مثال 3: حالت محو شدن (Fade) نئوپیکسل با آردوینو

حالت محو شدن یکی از افکت های جذاب برای نئوپیکسل ها می باشد که در این مثال آن را آزمایش می کنیم. هر چه سرعت محو شدن کمتر باشد افکت زیباتر خواهد بود.

مثال 4: انتخاب تصادفی نئوپیکسل با آردوینو

در این مثال با استفاده از تابع (random(num1,num2 عددی تصادفی در بازه num1 تا num2 برای رنگ و LED تولید کرده و آن را نمایش می دهیم.

مثال 5: حالت رنگین کمان نئوپیکسل با آردوینو

یکی از ابزارهای جذاب تحت وب برای ساخت افکت روی نئوپیکسل ها Neopixel Effects Generator، می باشد که با استفاده از آن می توانید تعداد LED ها و پایه آردوینو را تعیین کنید و بعد از ساخت افکت و تنظیمات مدنظرتان با کلیک برروی generate Arduino code کد آردینو را تولید کرده و در IDE کپی کنید. براای این کار طبق مراحل زیر پیش بروید:

  1. بعد از ورود به سایت روی Add led strip کلیک کنید.

2. روی رشته نئوپیکسل اضافه شده کلیک کرده و تعداد LED و پایه آردوینو را مشخص کنید.

3. در قسمت loop روی Add Effect کلیک کرده و افکت دلخواه خود را انتخاب کنید.

4. در بخش Animation و Color تنظیمات دلخواه خود را اعمال کنید.

5. در آخر با کلیک برروی generate Arduino code کد را تولید کرده و در Arduino IDE کپی کنید.

یک گام جلوتر

  • سعی کنید افکت های دیگری را نیز روی ئنوپیکسل خود امتحان کنید.
  • سعی کنید نئوپیکسل خود را بصورت بیسیم (وایفای، بلوتوث و …) کنترل کنید.

آموزش های مشابه

Share this post

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

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