نمایش نتایج: از 1 به 6 از 6

موضوع: آموزش تخصصی نحوه راه اندازی آی سی WS2811 و WS2812

  1. #1
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,122
    تشکر
    224
    تشکر شده 1,440 بار در 641 پست

    آموزش تخصصی نحوه راه اندازی آی سی WS2811 و WS2812

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

    برای نورپردازی مدرن از پیکسل های ال ای دی بهره گرفته می شود. در ساختار این پیکسل ها از ال ای دی های RGB و یا ترکیبی از ال ای دی ها بهره گرفته شده است که در مجموع یک پیکسل ال ای دی را تشکیل می دهند. در تصویر زیر چند نمونه پیکسل ال ای دی را مشاهده می نمایید.

    همان گونه که واضح است برای کنترل هر پیکسل نیاز به یک کانال جهت انتقال دیتا و تغذیه می باشد. حال فرض کنید در یک ساختمان چندین طبقه چیزی بیش از 1000 پیکسل تعبیه خواهد شد لذا در حالت تئوری جهت کنترل این پیکسل های ال ای دی دست کم نیاز به 1000 خط داده و دو خط تغذیه می باشد. فرآیند اجرای این سیستم با توجه به این نوع سیم کشی و پیکره بندی چیزی تقریبا غیرممکن است. از این رو در سالهای متمادی استانداردها و سیستم های متنوعی جهت پیاده سازی این موارد ایجاد گردید. DMX512 یکی از این استانداردهای نورپردازی است که البته توضیح و توجه به این استاندارد خارج از حوصله این مقاله است.
    شرکت WorldSemi Semiconductor یکی از شرکت های پیشتاز در عرصه تولید تجهیزات و چیپ های نورپردازی است. این شرکت رده متنوعی از چیپ های نورپردازی با کاربردها و قابلیتهای فراوان تولید کرده است. اولین نسل تولیدات این شرکت با نام های WS2801 و WS2803 بودند که هنوز هم یکی از پرکاربردترین چیپ های نورپردازی هستند. نسل بعدی شامل چیپ های WS2811 و WS2812 می باشد. این نسل یکی از جذابترین و ساده ترین چیپ های نورپردازی است که به خوبی توانست جای خود را در بازار پیدا کند. در پایان نیز نسل جدید محصولات این شرکت WS2821 و WS2822 قرار دارند که ویژگی های مفیدی همچون بهره گیری از سیستم آدرس دهی و اجرای استاندارد DMX512 را ممکن ساخته اند.
    ما در این مقاله قصد داریم به جذاب ترین و پر فروش ترین رده محصولات این شرکت یعنی WS2811 و WS2812 بپردازیم.

    تهیه و تدوین:
    * ایمان داودی * حسین جباری
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  2. کاربران زیر از این پست مفید LightIran تشکر کرده اند:

    bamdadelectronic (12-05-2015),drmohsen007 (02-17-2016),giga0101 (09-06-2014),hamidazami (10-12-2016),mehrdad35 (09-04-2015),nicebluesky (01-14-2016),ronics (06-18-2015)

  3. #2
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,122
    تشکر
    224
    تشکر شده 1,440 بار در 641 پست

    معرفی و بررسی آی سی WS2811 و WS2812

    آی سی WS2811 یک آی سی 8 پایه است که برای کنترل یک واحد نوری (یک ال ای دی یا ترکیب چند ال ای دی) کاربرد دارد.این آی سی ویژگی های متمایزی در قیاس با رقبای خود دارد که باعث محبوبیت این سری شده است. ویژگی هایی همچون:
    • دارای پایدار ساز ولتاژ داخلی
    • دارای مدار ریست داخلی برای افت ولتاژ و شروع کار
    • امکان بهره گیری با فاصله حداکثر 10 متر بین دو پیکسل بدون نیاز به بافر و یا تقویت کننده میانی
    • دارای دو مد کاری با سرعت های 400 و 800 کیلوهرتز
    • و ......
    آی سی WS2811 در دو پکیج SMD و DIP عرضه می شود. در شکل زیر پین بندی این چیپ را مشاهده می نمائید:
    همان گونه که از تصویر مشخص است دو پایه از آی سی(پایه های 4 و 8) به تامین تغذیه آن اختصاص یافته است. ولتاژ کاری این آی سی 5 ولت می باشد.
    سه پایه (پایه های 1،2 و 3) جهت کنترل خطوط رنگی RGB استفاده می شود که می توان با تغییرات کوچک با رنج وسیعی از ال ای دی ها استفاده نمود.
    یک پایه(پایه 7) جهت تعیین مد کاری آی سی استفاده می شود. که با اتصال به VCC در مد کاری 400 کیلو هرتز و عدم اتصال در مد کاری 800 کیلو هرتز فعالیت می کند.
    در پایان نیز یک خط (پایه 6) برای سیگنال ورودی و یک خط(پایه 5) برای سیگنال خروجی قرار گرفته است.
    جهت استفاده از این آی سی باید یک سیگنال ورودی از اولین چیپ و از طریق پایه ورودی اعمال و سپس سیگنال خروجی از همان آی سی به آی سی بعدی منتقل گردد. به تصویر زیر توجه نمائید:

    همان گونه که در تصویر نیز مشخص است سیگنال اولیه از طریق کنترلر با پایه ورودی اولین آی سی وارد می شود. سپس از این آی سی و از طریق پایه سیگنال خروجی به آی سی بعدی اعمال می گردد. این روند تا آخرین آی سی ادامه می یابد.
    نوع WS2812 نیز در واقع ترکیب این آی سی با یک ال ای دی RGB در یک پکیج واحد است. این چیپ در دو نوع WS2812S و WS2812B عرضه شده است. نوع S در واقع اولین نسل این چیپ بود و نوع B که در حال حاضر نیز تولید می شود معایب موجود در نوع اولیه را رفع کرده است. در نوع S با اتصال اشتباه تغذیه یعنی اتصال معکوس VCC و GND چیپ به کل معیوب میشد که این مورد در نسل B رفع شده است.

    عیب بعدی به ساختار تغذیه نوع S برمیگردد که جهت پیاده سازی نیاز به یک مقاومت را لازم می ساخت که این مورد نیز به کل رفع گردیده است. تعداد پایه نوع B نیز از 6 به 4 عدد رسیده است. در شکل زیر این دو نوع را مشاهده می نمائید:


    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  4. کاربران زیر از این پست مفید LightIran تشکر کرده اند:

    bamdadelectronic (12-05-2015),drmohsen007 (02-17-2016),giga0101 (09-06-2014),hamidazami (10-12-2016),mehrdad35 (09-04-2015),nicebluesky (01-14-2016),ronics (06-18-2015),sina_browser (10-24-2014)

  5. #3
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,122
    تشکر
    224
    تشکر شده 1,440 بار در 641 پست

    نحوه برنامه ریزی و سیگنال دهی به WS2811 و WS2812

    در این بخش به بررسی روش سیگنال دهی این آی سی خواهیم پرداخت. در ابتدا نیز لازم به ذکر است که با توجه به اینکه برای استفاده از این آی سی از کتابخانه های آماده بهره خواهیم گرفت لذا درک عمیق این مباحث ضروری نیست و صرفا جهت آشنایی با این ساختار مطرح می شود.
    همان گونه که گفته شد برای اتصال این آی سی ها و تشکیل یک زنجیره باید دیتا از پایه ورودی اولین آی سی وارد و از پایه خروجی اولین آی سی به بعدی تا انتها اتصال یابد. به تصویر زیر توجه نمائید:

    برای کنترل هر آی سی از 24 بیت استفاده می شود که 8 بیت برای هر رنگ قرمز، سبز و آبی استفاده می شود که در واقع امکان 256 حالت نوری(Grayscale) را ممکن می سازد. تصویر زیر ترتیب ارسال این سیگنال را نمایش می دهد:
    البته در نوع WS2812 ترتیب ارسال سیگنال ها کمی متفاوت بوده و به صورت زیر است:
    این سیگنال ها باید به صورت پشت سر هم و به صورت سریال ارسال شود یعنی با فرض سه پیکسل به صورت پشت سر هم، یک بسته 24 بیتی به ازای هر پیکسل ارسال می شود. هر پیکسل اولین 24 بیت دریافتی را به خود اختصاص داده و باقی بیت های دریافتی را به پیکسل های بعدی منتقل می نماید. این روند تا آخرین پیکسل ادامه می یابد. با یک سیگنال ریست نیز کل آی سی های زنجیره خاموش می شود. در تصویر زیر شیوه اجرایی این فرآیند مشاهده می شود:

    با توجه به اینکه برای ارتباط و انتقال اطلاعات از یک خط دیتا(سریال) استفاده شده است لذا از روش خاصی برای تعیین صفر و یک منطقی و همچنین سیگنال ریست استفاده شده است. در این حالت برای نمایش صفر و یک منطقی از زمان بندی های خاص بهره گرفته شده است. یعنی با ست و ریست شدن خط دیتا به زمان معین سیگنال معرف صفر، یک و ریست خواهد بود.

    همان گونه که قبلا نیز گفته شد این آی سی دارای دو مد کاری 400 کیلو هرتز(Low Speed) و 800 کیلوهرتز (High Speed) می باشد. با توجه به اینکه زمان بندی های سیگنال با توجه به مد کاری تغییر می کند و همچنین سرعت بالاتر مد پر سرعت و متداول تر بودن این مد کاری، زمان بندی ها بر اساس آن قرار داده می شود: (لازم به ذکر است زمان بندی های مد 400 کیلو دو برابر جدول زیر است)

    روند ارسال سیگنال بدین صورت است که در ابتدا یک سیگنال ریست از طریق خط دیتا ارسال می شود. در این حالت حافظه کل چیپ ها پاک (Clear) می شود. بعد از این حالت سیگنال های ارتباطی با زمان بندی ها مناسب ارسال می گردد برای مثال با وجود دو آی سی پشت سر هم و به جهت رنگ سفید و سبز باید ابتدا 0xFFF (رنگ سفید) و سپس 0x0F0 (رنگ سبز خالص) به صورت پشت هم ارسال گردد.
    زمان بندی سیگنال های فوق در پروسسورها و کنترلرهای پرسرعت همچون ARM کار چندان سختی نیست ولی برای میکروکنترلرهای AVR که فرکانس کاری تا حداکثر 20 مگاهرتز(در نسل جدید) را پشتیبانی می کنند کار ساده ای نبوده و نیازمند آشنایی و درک زبان اسمبلی است زیرا زبان های ساخت یافته ای چون زبان سی سرعت کافی برای این سیگنال ها را ندارند. به طور مثال اگر مبنا را میکروکنترلر AVR با کریستال 16Mhz بگذاریم، برای تولید زمان 250 نانوثانیه فقط 4 کلاک وقت داریم. این بدین معنی است که با استفاده از یک روتین ساده در زبان C نمی شود این شکل موج را تولید کرد بنابراین به اجبار باید از زبان اسمبلی استفاده کرد.
    آشنایی با اسمبلی به دلیل برخورد مستقیم با رجیسترهای داخلی نیازمند تجربه ومعلومات زیاد می شود لذا برای استفاده از این آی سی کتابخانه های متعددی که بر اساس زبان اسمبلی و جهت استفاده با برنامه های زبان سی نوشته شده است استفاده می گردد. البته ما در این آموزش باب توضیح تمامی این کتابخانه ها و توابع آن ها را نداریم و تنها به بررسی دو کتابخانه خواهیم پرداخت.
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  6. کاربران زیر از این پست مفید LightIran تشکر کرده اند:

    akz9070 (03-25-2017),drmohsen007 (02-17-2016),giga0101 (09-06-2014),mehrdad35 (09-04-2015),nicebluesky (01-14-2016),ronics (06-18-2015)

  7. #4
    مدیر انجمن ایمان داودی آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    98
    تشکر
    87
    تشکر شده 146 بار در 74 پست

    Question بررسی کتابخانه WS2811 برای AVR

    نخستین کتابخانه ای که قصد معرفی و استفاده از آن را داریم از لینک زیر اخذ شده است:
    این کتابخانه بر اساس فرکانس 16 مگاهرتز و مد کاری 800 کیلوهرتز برنامه ریزی شده است. لذا جهت استفاده از این کتابخانه استفاده از کریستال خارجی 16 مگاهرتز الزامی است.
    از لینک زیر میتوانید کتابخانه WS2811 را دانلود نمائید:
    دانلود
    جهت استفاده از این کتابخانه لازم است فایل WS2811.h را به محل پروژه خود کپی نمائید.
    در ساختار این کتابخانه توابع، ساختاری تعریف شده است که لازم است قبل از بررسی یک مثال کاربردی به بررسی این موارد پرداخته شود.
    نخستین تابع، تابعی است که جهت تعیین تابع خروجی به کار می رود که به صورت زیر می باشد:
    کد:
    DEFINE_WS2811_FN(NAME, PORT, PIN)
    این تابع باید قبل از شروع تابع main نوشته شود. این تابع همان گونه که گفته شد برای تعیین تابع خروجی می باشد بدین معنی که با انتخاب نام Name تابعی برای تغییر مقادیر خروجی تعریف و قابل استفاده می شود. دو آرگومان بعدی برای تعریف پورت و پین اختصاص یافته برای ارسال داده سریال استفاده می شود.. به طور مثال دستور زیر را فرض نمائید:
    کد:
    DEFINE_WS2811_FN(WS2811,PORTB,0)
    در این صورت تابعی خروجی به نام WS2811 ایجاد می شود که دیتا را از پین صفر پورت B به خروجی ارسال می نماید.
    دومین موردی که به توضیح آن خواهیم پرداخت، ساختاری است که داده هر پیکسل در آن قرار می گیرد که به صورت زیر تعریف می شود:
    کد:
    RGB_t rgb[n+1] = {{r1,g1,b1},………..,{rn,gn,bn}};
    همانگونه که گفته شد این ساختار داده رنگی هر پیکسل را تعیین می نماید. لذا در ابتدا باید به تعداد پیکسل موجود و با انتخاب عدد مناسب به جای n تعریف می شود. هر عضو از این ساختار سه مشخصه به نامهای R،G و B برای رنگ های اصلی قرمز،سبز و آبی دارند که با مقادیر 8 بیتی مقدار دهی می شوند.
    دومین تابع، تابع خروجی است که با استفاده از تابعی که در ابتدا گفته شد، تعریف می شود و به صورت زیر است:
    کد:
    NAME(rgb,ARRAYLEN(rgb))
    این تابع، تابعی است که جهت ارسال داده استفاده می شود. این تابع دو آرگومان دارد. آرگومان نخست همان ساختاری است که قبلا تعریف شده است و داده رنگی هر پیکسل را در خود دارد. دومین آرگومان این تابع در واقع تابعی داخلی است که صرفا به همین صورت باید استفاده گردد و توضیح اینکه جهت تعیین طول آرایه داده های ارسالی استفاده می شود..
    حال به بررسی یک مثال کاربردی خواهیم پرداخت. در این مثال قصد داریم یک پیکسل را که به پین صفر پورت B اتصال دارد به رنگ سفید روشن نمائیم. توضیح اینکه رنگ سفید از ترکیب سه رنگ قرمز، سبز و آبی و در حداکثر روشنایی تشکیل می شود و لذا باید مقادیر 0xFF برای هر مشخصه آن اختصاص یابد.به بررسی این مثال می پردازیم:
    همان گونه که گفته شد این کتابخانه بر اساس فرکانس 16 مگاهرتز برنامه ریزی شده است لذا در ابتدای برنامه باید فرکانس کاری را تعیین نمائیم:
    کد:
    #define F_CPU 16000000
    سپس باید کتابخانه های کاربردی از جمله کتابخانه WS2811.H را فراخوانی نمائیم:
    کد:
    #include "WS2811.h" #include <avr/io.h>
    همان گونه که قبلا نیز گفته شد قبل از تابع main باید تابع DEFINE آورده شود لذا آن را تعریف می نمائیم:
    کد:
    DEFINE_WS2811_FN(WS2811RGB, PORTB, 0)
    سپس باید پین صفر پورت B را خروجی تعریف نموده و با مقدار اولیه صفر بارگذاری نمائیم:
    کد:
    DDRB |= (1<<0); PORTB &= ~(1<<0);
    در قالب تابع main باید ساختار رنگی تعریف گردد. که با توجه به یک پیکسل و رنگ سفید به صورت زیر تعریف می نمائیم:
    کد:
    RGB_t rgb[0] = {{0xFF,0xFF,0xFF}};
    بعد از تعریف و بارگذاری این ساختار باید با استفاده از تابع خروجی که در ابتدا تعریف نمودیم این دیتا را به پیکسل ارسال نمائیم. لذا خواهیم داشت:
    کد:
    WS2811RGB(rgb, ARRAYLEN(rgb));
    در انتها برنامه کلی آورده می شود:
    کد:
    #define F_CPU 16000000 #include "WS2811.h" #include <avr/io.h> #include <util/delay.h> DEFINE_WS2811_FN(WS2811RGB, PORT, PIN) int main(void) { DDRB |= (1<<0); PORTB &= ~(1<<0); RGB_t rgb[1]={{0xFF,0xFF,0xFF}}; while(1) { WS2811RGB(rgb, ARRAYLEN(rgb)); _delay_ms(200); } }
    در پایان یک مثال کاربردی نیز بر اساس نرم افزار Atmel Studio قرار داده می شود که سه پیکسل نوری متصل به هم به صورت لحظه به لحظه تغییر رنگی می دهند:
    ws2811.rar

  8. کاربران زیر از این پست مفید ایمان داودی تشکر کرده اند:

    drmohsen007 (02-17-2016),giga0101 (09-06-2014),LightIran (09-06-2014),mostafazmz (12-27-2016),nicebluesky (01-14-2016),ronics (06-18-2015)

  9. #5
    مدیر انجمن ایمان داودی آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    98
    تشکر
    87
    تشکر شده 146 بار در 74 پست
    این هم یک فیلم با چند تا رنگ محدود با 3 تا پیکسل .

    آنقدر به تاريكي لعنت نفرستيد ، يك شمع روشن كنيد.

  10. کاربران زیر از این پست مفید ایمان داودی تشکر کرده اند:

    drmohsen007 (02-17-2016),farivaran (02-02-2015),giga0101 (09-08-2014),mostafazmz (12-27-2016),taktak1 (09-10-2014)

  11. #6
    مدیریت سایت LightIran آواتار ها
    تاریخ عضویت
    Apr 2014
    نوشته ها
    1,122
    تشکر
    224
    تشکر شده 1,440 بار در 641 پست

    بررسی کتابخانه WS2812 Light برای AVR

    دومین کتابخانه ای که قصد معرفی و استفاده از آن را داریم از وبسایت زیر اخذ شده است:
    کد:
    https://github.com/cpldcpu/light_ws2812
    این کتابخانه در واقع نسخه خلاصه شده و بهینه شده کتابخانه قبلی می باشد که برای نوع WS2812 نوشته شده است. البته همان گونه که مشخص است امکان استفاده برای آی سی WS2811 نیز همچنان وجود دارد ولی باید جای مقادیر R و G تعویض شود(به دلیل توالی متفاوت نوع 11 و 12)
    در این کتابخانه محدودیت در فرکانس 16 مگاهرتز کتابخانه قبلی رفع شده است و با فرکانس های بالاتر از 4 مگاهرتز به خوبی عمل می نماید. البته لازم به ذکر است در استفاده از این کتابخانه می توان از نوسان ساز داخلی میکروکنترلر صرفا جهت تست عملکرد استفاده کرد و برای ساخت پروژه صنعتی حتما باید از کریستال خارجی استفاده نمود.
    این کتابخانه البته دارای مشکلاتی در نحوه استفاده بود که مشخصا مشکلاتی را برای مبتدیان پدید می آورد لذا ما تغییراتی در این کتابخانه داده ایم و نسخه ای که از لینک زیر قابل دانلود است با نسخه اصلی کمی متفاوت است.
    دانلود کتابخانه WS2812:
    ws2812_light.rar

    به مانند دیگر کتابخانه ها ابتدا دو فایل موجود را در محل پروژه خود کپی نمایید.
    حال به بررسی نحوه استفاده از این کتابخانه می پردازیم.
    این کتابخانه دارای دو فایل header است. فایل ws2812_config.h برای پیکره بندی پین های میکروکنترلر به کار می رود لذا قبل از هر کاری این فایل باید ویرایش شود. در محتوای این فایل دو تعریف وجود دارد که اولی برای پورت و دومی برای پین مورد استفاده جهت ارسال داده ها به کار می رود.
    کد:
    #define ws2812_port B #define ws2812_pin 0
    برای تغییر این مقادیر کافی است عبارت مقابل هر یک را به پایه دلخواه خود تغییر دهید. برای پورت حرف مربوط به پورت مانند A,B,C,D و برای پین شماره پین مانند 0,1,2,3,… نوشته شود.
    فایل دوم به نام "light_ws2812.h" که در واقع فایل اصلی برنامه است باید در ابتدای برنامه اصلی فراخوانی گردد.
    کد:
    #include "light_ws2812.h"
    در این برنامه یک ساختار به نام cRGB برای ذخیره مقادیر هر پیکسل وجود دارد. این ساختار باید در ابتدای برنامه تعریف گردد. جهت تعریف آن به صورت زیر عمل نمایید:
    کد:
    struct cRGB NAME[N];
    همان گونه که مشخص است به جای عبارت NAME نام دلخواه برای ساختار و به جای N تعداد پیکسل های متصل به هم نوشته می شود. اعضای این ساختار به مانند ساختار کتابخانه قبلی عبارتند از:R,G و B
    در نهایت برای ارسال داده ها تابع ws2812_setleds مورد استفاده قرار می گیرد و نحوه استفاده از آن به صورت زیر است:
    کد:
    ws2812_setleds(NAME,N);
    این تابع دارای دو آرگومان است. آرگومان نخست ساختاری است که در مرحله قبلی تعریف کردیم و آرگومان دوم تعداد داده ارسال شده در هر بار است. به طور مثال شما 50 پیکسل متصل به هم دارید و فقط میخواهید پیکسل دهم را تغییر دهید لذا می توان به جای ارسال کل ساختار 10 عضو اول ساختار را ارسال نمود.
    همان گونه که مشخص است این ساختار روند ساده تری نسبت به کتابخانه قبلی دارد و تنها در سه مرحله و با حداقل تجهیزات می توان از آن استفاده نمود.
    حال به بررسی یک مثال عملی خواهیم پرداخت:
    در این مثال قصد داریم دو پیکسل متصل به هم را به ترتیب از سبز به قرمز و بالعکس تغییر دهیم. در این برنامه از نوسان ساز داخلی میکرو و در فرکانس 8 مگاهرتز بهره گرفته شده است. دیتای ارسالی نیز از پین 0 پورت B ارسال خواهد شد.
    در نخستین مرحله باید فایل ws2812_config.h ویرایش شده و به مقدار دلخواه تنظیم گردد.
    با توجه به اینکه اکثر مباحث موجود در این مثال به مانند مثال قبلی است از توضیحات خط به خط اجتناب می شود و فقط برنامه کلی قرار داده می شود.
    کد:
    #define F_CPU 8000000 #include <util/delay.h> #include <avr/io.h> #include <avr/interrupt.h> #include "light_ws2812.h" struct cRGB led[2]; int main(void) { while(1) { for(int i=0,j=255;i<255;i++,j--) { led[0].r = i; led[0].g = 0; led[0].b = j; led[1].r = j; led[1].g = 0; led[1].b = i; ws2812_setleds(led,2); _delay_ms(250); } } }
    در پایان لازم به ذکر است این نسخه اکثر محدودیت های موجود در کتابخانه قبلی را رفع کرده است ولی حجم برنامه نسبت به نوع قبلی افزایش یافته است لذا در مواردی که حجم کد باید کم باشد توجه به این مورد الزامی است.
    فایل پروژه در نرم افزار Atmel Studio:
    WS2812Pixel.rar
    You can if you want!Trust Me
    تنها غیرممکن غیرممکن است پس تلاش کنید!

  12. کاربران زیر از این پست مفید LightIran تشکر کرده اند:

    ali_gerayli (04-28-2018),ariana (08-02-2016),drmohsen007 (02-17-2016),farivaran (02-02-2015),giga0101 (09-16-2014),microprocesor_2002 (01-27-2015),mostafazmz (12-27-2016),naatamam (07-20-2015),nicebluesky (01-14-2016),nightwishamp (10-26-2015),taskoh (08-21-2015)

کلمات کلیدی این موضوع

باز و بسته کردن مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
با کلیک بر روی 1+ ما را در گوگل محبوب کنید