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

آموزش راه اندازی حلقه ال ای دی LED Neo Pixel Ring تولید نور رنگی

Arduino-LED-Neopixel-ring-Module-digispark
نوشته شده توسط پریسا پوربلورچیان

ال ای دی، ال ای دی و باز هم ال ای دی، همانطور که می‌دانید ال ای دی RGB از جذاب ترین و پرکاربردترین ال ای دی های موجود در بازار هستند. تکنولوژی ال ای دی از حدود دهه ۸۰ میلادی شروع شد و مداوم در حال پیشرفت بوده‌است. در نمای ساختمان، نورپردازی داخلی و ایجاد حس‌های زنده بودن اشیاء با نور و حقه‌های نورپردازی بسیار کاربرد دارد. ال ای دی Led RGB از قطعات نوع SMD ساخته شده است. کارهای جالب و جذابی با این مدل ال ای دی‌ها می‌توان انجام داد. در ادامه آموزش با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.

 

حلقه ال ای دی نئوپیکسل LED Neo Pixel Ring RGB در یک دایره با قطر بیرونی ۶۶ میلی متر و قطر داخلی ۵۵ میلی متر قرار گرفته است. ال ای دی های RGB به صورت زنجیره ای، پین خروجی هر ال ای دی به پین ورودی دیگری اتصال یافته است. ال ای دی – RGB LED استفاده شده در این حلقه آدرس پذیر بوده و از نوع ال ای دی ۵۰۵۰ WS2812 می‌باشد. ولتاژ کاری حلقه ال ای دی LED Neo Pixel Ring RGB پنج – ۵ ولت DC است و برای راه اندازی کافیست از طریق PWM میکروکنترلر ال ای دی ها را آدرس پذیری کنید. حلقه ال ای دی LED Neo Pixel Ring RGB به ترتیب دارای ۴ پایه DI , 5V , GND , DO می‌باشد. در ادامه به بررسی اتصالات و راه اندازی ال ای دی – LED Ring RGB می‌پردازیم.

 

هدف آموزش حلقه ال ای دی

در این آموزش با استفاده از یک میکروسوییچ یک چرخه ال ای دی – LED Ring RGB با رنگ هایی متفاوت تولید خواهیم کرد. به اینصورت که با ۹ بار کلیک کردن میکروسوییچ – microswitch ، رنگ هایی متفاوت با خروجی متفاوت به ال ای دی – LED Ring RGB نسبت می‌دهیم. در ادامه به بررسی اتصالات و کدها خواهیم پرداخت.

 

وسایل مورد نیاز

  

اتصالات مدار حلقه ال ای دی

  • در ابتدا برای راحتی در اتصالات میتوانید به دلخواه کابل فلت نری به نری به حلقه ال ای دی LED Ring RGB لحیم کنید.
  • پایه DI حلقه ال ای دی LED Ring RGB را به پایه ۷ آردوینو اتصال دهید.
  • پایه GND حلقه ال ای دی LED Ring RGB را به پایه GND آردوینو اتصال دهید.
  • پایه ۵V حلقه ال ای دی LED Ring RGB را به پایه ۵ ولت آردوینو اتصال دهید.
  • میکروسوییچ ۴ پایه را بر روی شیلد آردوینو Arduino shield قرار دهید و سپس از یکی از پایه ها به پایه ۲ آردوینو و از پایه دیگر به GND آردوینو اتصال دهید.

 

فراخوانی کتابخانه آردوینو

در این آموزش برای راه اندازی حلقه ال ای دی نئوپیکسل نیاز به فراخوانی کتابخانه Adafruit neopixel خواهیم داشت. لینک دانلود کتابخانه Adafruit Neopixel را در صفحه محصول حلقه ال ای دی ۱۶ تایی LED Neo Pixel Ring RGB در قسمت دانلود قرار دارد. بر روی لینک کلیک کرده و کتابخانه Neopixel را دانلود کنید. چنانچه شیوه نصب کتابخانه در آردوینو را نمیدانید از پست نصب کنابخانه در نرم افزار آردوینو Arduino IDE استفاده کنید.

 

کد برنامه حلقه ال ای دی  LED NeoPixel

 

مهمان گرامی، جهت دسترسی به کدهای این پروژه، اسپارکر شوید.

 

حال کد را در نرم افزار آردوینو از طریق کلید میانبری که قرار گرفته است، کپی کنید. سپس آپلود کنید. طبق اتصالات گفته شده در آموزش، حلقه ال ای دی LED Ring RGB و میکروسوییچ – microswitch را به آردوینو اتصال دهید. همانطور که در کدها توضیح داده شده است، ۹ حالت برای تغییر حالت و رنگ ال ای دی LED Ring RGB تعریف شده است. با فشردن کلید در هر بار رنگ ال ای دی LED Ring RGB تغییر خواهد کرد. در حالت اول ال ای دی LED Ring RGB به رنگ بنفش، در حالت دوم به رنگ آبی و حالت سوم صورتی و رنگ های دیگر که کد رنگ ها در متن کد نوشته شده است، تغییر خواهد کرد.

 

تعریف تعداد LED

در این آموزش از حلقه ال ای دی ۱۶ تایی LED Neo Pixel Ring RGB استفاده کرده ایم. با توجه به اینکه حلقه های ال ای دی ، ۸ تایی، ۱۲ تایی، ۱۶تایی، ۲۴ تایی برای این مدل وجود دارد، می‌توانید در کدهای برنامه تعداد ال ای دی های استفاده شده را تغییر دهید. در خط ۷ برنامه تعداد ال ای دی های استفاده شده در ماژول حلقه LED قابل تغییر است.

همانطور که در کد بالا مشخص است، با تغییر پارامتر ۱۶ می‌توانید تعداد را مشخص کنید و به ۸ یا ۱۲ و … تغییر دهید.

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد.

 

پروژه:

برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۲ دیدگاه

  • سلام
    خسته نباشید
    من یک جفت حلقه rgb از شما خریداری کردم اما اصلا نمیتونم روشن کنم همون خلقه ها رو هم به همه جا بردم کسی نتونست روشن کنه میخوام این دوتا حلقه رو روی ماشین نصب کنم راهنمایی کنید ممنون میشم

    • سلام
      در ابتدا پیشنهاد میشود که قبل از خرید از مشاوره رایگان استفاده کنید. با استفاده از همین آموزش می‌توانید حلقه ال ای دی را راه اندازی کنید و اگر راه اندازی برای شما مقدور نیست با پشتیبانی تماس بگیرید.

      • سلام
        من وسایل لازم برای برای راه اندازه حلقه رو از سایت شما امروز خریداری کردم
        و اداپتور میخواستم برای وصل کردن به باتری ماشین که روشن کنم اونم با وسایل های که امروز سفارش دادم میخواستم سفارش بدم
        اینو نمیشه مستقیم وصل باتری ماشین کرد لطفا راهنمایی کنید

        • سلام
          با توجه به اینکه ولتاژ کاری آردوینو ۵ تا ۱۲ ولت است، میتوانید برد را به برق ماشین هم وصل کنید. مطابق آموزش اتصالات را انجام دهید و سپس از طریق نرم افزار آردوینو، کد را در نرم افزار کپی و سپس کامپایل کنید. در صورت برخورد به مشکل از همین طریق اقدام نمایید تا مشکل را برطرف کنم.

    • سلام
      بله حتما تفاوتی نخواهد داشت. شیلد آردوینو هم دارای بردبورد است و پایه های gnd وvcc بیشتری در اختیار شما قرار میدهد.

  • سلام میشه لطفا راهنمایی کنین که مثلا من میخوام یک رنگ آبی (یک پیکسل آبی ) داخل رنگ قرمز حرکت کنه یعنی از شانزده عدد ال ای دی تنها یک عدد رنگش فرق کنه و بین اینها حرکت کنه.واگر بخواییم همهخاموش باشن و فقط سه عدد ال ای دی با رنگهای قرمز و آبی و سبز مثلا توشون حرکت کنه چیکار باید کرد کجایکد رو باید تغییر داد.اگه اشاره کنین بهش ممنون میشم.

    • سلام
      با توجه به اینکه تا به حال این مورد را تست نکرده ام، تغییرات این کد برای ایجاد یک پیکسل متفاوت کمی پیچیده است و نیاز به یک آموزش جداگانه خواهد داشت. تنها باید در قسمت void theaterChase و void startShow تغییرات را اعمال کنید.

  • سلام و خسته نباششین.ممنون از اطلاعات خوبتون.
    من یه سوال داشتم اونم اینه که ایا امکان همکاری برای تولید محصولات جدید نورپردازی برای ارائه به شهرداریها هستش.ممنون

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

  • با سلام و تشکر از شما
    بنده قصد دارم با استفاده از برد wemos d1 و این حلقه led ، یک وب سرور برای کنترل این led راه اندازی کنم ، سوال بنده این هست که چطور باید عملکردی که به led داده میشود را به صورت مداوم تکرار کنیم ؟
    منظور بنده این است که فرضا بنده با یک دستور از سمت وب سرور ، تابع rainbow را فعال میکنم ؛ در حالت معمول پس از پایان یافتن Rainbow ، led غیرفعال میشود ، چگونه باید کاری کرد که تا زمانی که دستور بعدی ( فرضا تغییر رنگ به زرد ) ارسال نشده است ، rainbow تکرار شود ؟
    با تشکر

    • سلام
      در این کد قسمت void startshow توسط تابع switch حالت های مختلف تعیین کردیم. هنگامی که حالت اول Case 1 انتخاب شود ،به عنوان مثال نور زرد فعال می‌شود و تا زمانیکه حالت دوم یعنی کلید دوم را انتخاب نکنیم، در حالت اول باقی خواهد ماند. در واقع محدودیت زمانی تعریف نشده است.

      • از پاسخگویی شما سپاسگزارم ،
        اما یک سوال دیگر ، به عنوان مثال بنده یک led و یک سوئیچ در مدار قرار میدهم و میخواهم از زمانی که کلید فشرده شد تا زمانی که مجددا فشرده شد led چشمک بزند
        کد زیر را نوشتم اما متاسفانه پس از شروع به چشمک زدن دیگر متوقف نمیشود:
        int btnpin = 7;
        int ledpin = 8;
        bool oldState = HIGH;
        void setup() {
        pinMode(btnpin, INPUT_PULLUP);
        }
        void loop() {
        bool newState = digitalRead(btnpin);
        if (newState == LOW && oldState == HIGH) {
        delay(20);
        newState = digitalRead(btnpin);
        while (newState == LOW) {
        ledblnk();
        }
        }
        oldState = newState;
        }
        void ledblnk() {
        digitalWrite(ledpin,HIGH);
        delay(100);
        digitalWrite(ledpin,LOW);
        delay(100);
        digitalWrite(ledpin,HIGH);
        delay(100);
        digitalWrite(ledpin,LOW);
        delay(100);
        }
        لطفا راهنمایی کنید ، تشکر

        • سلام مجدد
          کدهای متفرقه در این قسمت تحلیل نمی‌شود.ولی تنها ایرادی که این کد دارد حالت ها در قسمت Void setup باید تعریف شود و در این کد در قسمت LOOP تعریف شده است.
          در آموزش، آموزش کار با ماژول LED از کلید استفاده شده است، می‌توانید از کد این آموزش استفاده کنید.

  • با سلام و تبریک سال نو خدمت شما.
    یه سوال داشتم اونم اینه که برای برنامه دادن به ال ای دی پیکسلی (انگشتی ) از چه نرم افزاری استفاده میشه.واگر اونو دارین لینک دانلودشو میزارین

    • سلام
      در کد برنامه با توجه به اینکه از تابع کنترلی Switch و Case استفاده شده است، باید با توجه به نیاز خودتان آن را تعمیم و یا تنها به دو تابع کاهش دهید.
      به عنوان مثال با یک بار فشردن کلید و انتخاب رنگ آبی و قرمز، ال ای دی ها روشن خواهد شد. خط ۳۶ تابع StartShow را بررسی کنید و در صورت سوال از همین طریق اقدام نمایید.