در این سری از پروژه های آموزشی آردوینو، نحوه اتصال و راه اندازی LED RGB مورد بررسی و تحلیل قرار گرفته است. لازم به ذکر است که LED RGB جزء بهترین و پرکاربردترین LEDهای موجود در بازار است. از این نوع ال. ای. دی ها می توان در ساختمان ها و صنعت و مکانهای تجاری جهت نورپردازی داخلی و ایجاد یک حس فوق العاده زیبا استفاده کرد. اگر به دنبال یادگیری و انجام پروژه ای جهت نوپردازی و استفاده از حقه های نور جهت زیباتر کردن مکان های مدنظر خود هستید، پیشنهاد می کنیم مطالب زیر که در وب سایت الکترونیک98 منتشر شده است را مطالعه بفرمائید.
حلقه LED RGB
در این حلقه 16 عدد LED RGB نوع WS2812 در کنار هم قرار گرفته اند. LED WS2812 به صورت SMD و دارای 4 پایه منبع تغذیه، پایه دریافت و ارسال داده است. در این نوع حلقه ال. ای. دی خروجی هر LED به ورودی LED بعدی متصل شده است و خروجی آن را مشخص می کند. از این نوع LEDها برای نورپردازی ها، پرده های LED، تابلوهای روان و …. می توان استفاده کرد. از جمله مشخصات و ویژگی های این نوع LED عبارتنداز:
1. ولتاژ تغذیه 5ولت
2. جریان مصرفی هر LED برابر با 40 میلی آمپر
3. قطر بیرونی 67 میلی متر
4. قطر داخلی 52 میلی متر
5. نوع ال. ای. دی RGB
6. تعداد پایه ها 4؛ DO, DI, GND, Vcc که مورد آخر زیاد مورد استفاده قرار نمی گیرد.
7. فیبر فایبرگلاس
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
ماژول LED نوع RGB مدل WS2812 دایره ای 16 بیتی | 1 عدد |
سیم جامپر برد بوردی مدل یک سر نری - مادگی (سری 40تایی) | 1 عدد |
نحوه اتصال تجهیزات به یکدیگر و برد آردوینو بسیار راحت و ساده است به طوری که با توجه به توضیحات و مراحل زیر می توانید این اتصالات را به سرعت انجام دهید.
1. ابتدا پایه Vcc ماژول LED RGB را به پین 5ولت برد آردوینو متصل کنید.
2. پایه زمین حلقه LED RGB را به پین زمین برد آردوینو وصل نمائید.
3. پایه DI ماژول را به پین دیجیتال شماره 6 یا همان D6 برد آردوینو متصل کنید.
برنامه نویسی پروژه
قبل از برنامه نویسی در نرم افزار آردوینو ابتدا کتابخانه های Adafruit Neopixel را از لینک زیر دانلود نموده و طبق توضیحات زیر، آن را به زیرمجموعه های کتابخانه خود در نرم افزار آردوینو اضافه کنید.
دانلود کتابخانه Adafruit Neopixel
نصب کتابخانه
لازم به ذکر است که نرم افزار برنامه نویسی آردوینو به صورت پیش فرض توانایی پشتیبانی از Adafruit Neopixel را ندارد بنابراین ما باید library (کتابخانه یا برنامه) مورد نیاز را بر روی آن نصب کنیم. این فرآیند بسیار ساده و راحت است که در زیر نحوه استفاده از آن را توضیح داده ایم.
1. در مرحله اول ابتدا آخرین (جدیدترین) نسخه کتابخانه (Adafruit Neopixel) را از لینک فوق دانلود کنید.
2. پس از دانلود فایل، نرم افزار آردوینو را باز کنید.
3. مسیر زیر را دنبال کنید و در پنجره باز شده فایل کتابخانه Adafruit Neopixel را که قبلا دانلود کرده اید را انتخاب نمائید:
…Sketch > Include Library > Add .ZIP Library
برنامه کامل پروژه در محیط نرم افزار آردوینو
بعد از اتصال قطعات به یکدیگر و نصب کتابخانه مربوطه، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#include <Adafruit_NeoPixel.h> #ifdef __AVR__ #include <avr/power.h> #endif // Which pin on the Arduino is connected to the NeoPixels? // On a Trinket or Gemma we suggest changing this to 1 #define PIN 6 // How many NeoPixels are attached to the Arduino? #define NUMPIXELS 16 // When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals. // Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest // example for more information on possible values. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); int delayval = 500; // delay for half a second void setup() { // This is for Trinket 5V 16MHz, you can remove these three lines if you are not using a Trinket #if defined (__AVR_ATtiny85__) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // End of trinket special code pixels.begin(); // This initializes the NeoPixel library. } void loop() { // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one. for(int i=0;i<NUMPIXELS;i++){ // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255 pixels.setPixelColor(i, pixels.Color(0,150,0)); // Moderately bright green color. pixels.show(); // This sends the updated pixel color to the hardware. delay(delayval); // Delay for a period of time (in milliseconds). } } |