به نام خدا
چند روز پیش داشتم توی سایت های مختلف چرخی میزدم که چشمم به یه مدل ال ای دی حلقه ای (Ring LED) افتاد و گفتم بد نیست یکی بخرم . وقتی به دستم رسید گفتم خب بذار ببینم باید چطوری راه اندازیش کرد و … به سراغ چند تا سایت فارسی رفتم ولی متاسفانه فقط توی یک وب سایت تونستم پیدا کنم . اسکرول کردم تا به حیاتی ترین بخش کار یعنی کد برنامه برسم و وقتی رسیدم … با جملهی “برای دسترسی به کد ها عضو شوید .” مواجه شدم که اولش فکر کردم با یه حساب کاربری حله و … ولی متاسفانه دیدم برای عضویت میبایستی اشتراک خریداری کنم.
بحث اصلا هزینه اشتراک نبود. مشکل این جا بود من فقط چند خط کد میخواستم و برای همون من مجبور بودم اشتراک یک ماهه خریداری کنم.
ولی این چیزا باعث نشد تا دل سرد بشم روی چندین سایت داخلی و خارجی گشتم و کم کم اطلاعاتی تونستم جمع آوری کنم تا درنهایت اون رو راه اندازی کردم. تصمیم گرفتم که برای سهولت دیگران این آموزش رو بنویسم تا بقیه هم مثل من وقتشون رو تلف نکنن .
سرتون رو درنیارم بریم که آموزش رو شروع کنیم .
حلقه ال ای دی نئوپیکسل LED Neo Pixel Ring RGB در یک دایره با قطر بیرونی ۶۶ میلی متر و قطر داخلی ۵۵ میلی متر قرار گرفته است. ال ای دی های RGB به صورت زنجیره ای، پین خروجی هر ال ای دی به پین ورودی دیگری اتصال یافته است. ال ای دی – RGB LED استفاده شده در این حلقه آدرس پذیر بوده و فقط با یک ورودی دیجیتال (DI) میتونیم چندین ال ای دی رو کنترل کنیم.
تصویر زیر یک نمونه از این ال ای دی هاست که دارای 8 ال ای دی RGB می باشد.
مشخصه که توی این آموزش باید از میکروکنترلر آردوینو استفاده کنیم که دارای انواع UNO (آموزشی) نانو و … هست که ما توی این آموزش از آردوینو نانو استفاده کردیم .
آردوینو نانو رو روی برد بورد قرار میدیم.
شاید برای شما مفید باشد: آموزش آردوینو از 0 تا 100
تمام ال ای دی های حلقه ای دارای 4 پایه زیر هستن :
- VCC
- GND
- DI
- DO
با مورد چهارم یعنی DO اصلا کاری نداریم.
ابتدا VCC را به پایه 5V آردوینو متصل می کنیم و در ادامه GND رو به GND و DI رو به یکی از پایه های دیجیتال (در اینجا به D2 ) متصل میکنیم.
مدار بندیمون تقریبا تمومه. حالا باید بریم سراغ برنامه نویسی ولی قبلش باید اضافه کنیم برای این کار ما به کتابخانه Adafruit Neopixel نیاز داریم که میتونین از این لینک دانلود کنین. بعد از دانلود اون رو به آردوینو اضافه میکنیم.
اگر میدونین چطوری کتابخونه اضافه کنین پس این پاراگراف رو نخونده به سراغ پاراگراف بعدی برین. ابتدا نرم افزار آردوینو رو باز میکنیم به منوی Sketch میریم و روی include library کلیک میکنیم و بعدش هم Add .Zip Library رو انتخاب میکنیم و از روی سیستم فایل زیپی که بالا دانلود کردین رو انتخاب میکنین با این کار کتابخونه مورد نظر رو اضافه کردیم.
کد برنامه مورد نظر در زیر قرار داده شده :
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <Adafruit_NeoPixel.h> #define PIN 2 #define NUMPIXELS 1 Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); void setup() { strip.begin(); strip.clear(); strip.show() ; } void loop() { strip.setPixelColor(0,255,0,0); strip.show(); } |
به بررسی خط به خط کد بالا میپردازیم :
1 | #include <Adafruit_NeoPixel.h> |
با این خط کد، کتابخونه ای که به تازگی اضافه کردیم رو در برنامه فراخوانی میکنیم.
1 | #define PIN 2 |
پایهی دیجیتالی که با اون میخوایم ماژول رو کنترل کنیم،تعریف میکنیم.
1 | #define NUMPIXELS 1 |
تعداد ال ای دی هایی که قصد داریم استفاده کنیم را مشخص میکنیم. اگر از مدل 8 تایی اون استفاده میکنید به جای 1 میتونید هر یک از اعداد 1 تا 8 رو قرار بدین .
1 | Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); |
یک شئ جدید میسازیم .
1 2 3 4 5 | void setup() { strip.begin(); strip.clear(); strip.show(); } |
توضیح خاصی نیاز نیست فقط اینکه در این قسمت ما مقدمات استفاده از توابع مربوط به کتابخونه و ماژول رو فراهم کردیم .
1 2 3 4 | void loop() { strip.setPixelColor(0,255,0,0); strip.show(); } |
با استفاده از تابع setPixelColor میتونین LED ها رو کنترل کنین. این تابع دارای 4 تا پارامتر هست که اولین پارامتر مشخص میکنه که کدوم ال ای دی رو میخوایم کنترل کنیم، در اینجا اولین ال ای دی رو انتخاب کردیم. (اولین LED شماره 0 و دومین LED شماره 1 و …)
پارامترهای دوم و سوم و چهارم میزان هر کدوم از رنگ های قرمز ، سبز و آبی (به ترتیب) رو مشخص میکنن و می تونن هر یک از اعداد 0 تا 255 رو بپذیرن .
خب کارمون دیگه تمومه و طریقه راه اندازی این ماژول جذاب رو یاد گرفتیم تا در پروژه های بعدی از اون ها استفاده کنیم. با ما همراه باشین و با نظرات خوب و سازنده خودتون ما رو در بهتر کردن آموزش هامون راهنمایی کنید .
با تشکر .
سلام
لطفا آموزش راه لندازیشو با avr و بدون کتابخونه آماده اش رو هم بذارید☹️
سلام
فکر میکنم خودتون به راحتی بتونید این کار رو انجام بدید 🙂
ممنون از مطلب خوبتون اما این کتابخونه یه مقدار ابتداییه و تو پروژه های بزرگ تر کارو سخت میکنه
بنظرم بهتره از کتابخونه FastLED استفاده کنید خیلی کتابخونه قدرتمند و حرفه ای هستش و از نود درصد چیپ های ال ای دی های آدرس پذیر پشتیبانی میکنه این کتابخونه از رنج وسیعی از میکروکنترلر ها مثل AVR و STM32 و ESP32 و ESP8266 پشتیبانی میکنه.
نویسندش تو سایتش گفته حتی میشه ازش تو محصولات تجاری هم استفده کرد.
بله کتابخونه ای رو که گفته بودین رو باهاش آشنا هستم و قبلا هم ازش استفاده کردم ولی
من قصدم بیشتر آموزش یه چیز مقدماتی بود برای کنترل این نوع ال ای دی که خیلی از سایتا پولی آموزشی با نصف کیفیت همین آموزش رو به کاربران میفروشن
در برنامه های بعدی سعی میکنم از اون کتابخونه هم استفاده کنم