نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه

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

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

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

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

خب یه توضیح مختصر بدم که این ال ای دیا چیه و فرقش با ال ای دیای rgb  معمولی چیه؟
خدمت دوستان عزیزم باید بگم که شما بوسیله یه سیم دیتا میتونید چند صد تا از این نوع ال ای دی رو به آردوینو وصل کنید؛ خب این چه کاریه حالا، همون rgb معمولیا هم میشد هزارتاشو با سه تا سیم دیتا به میکرو وصل حالا چه سه تا سیم چه یکی چه فرقی داره؟؟؟
Rgb معمولیا درسته که میشه هزارتاشو به میکرو وصل کرد ولی رنگ و میزان روشنایی همه ال ای دی ها یکسانه یعنی همش مثلا قرمزه، نمیشه نصفش یه رنگ باشه نصف دیگش یه رنگ دیگه چه برسه به این که رنگ تک تک ال ای دیا رو بشه تغییر داد اما چون ال ای دیای سری ws28xx آدرس پذیرند با یه تک سیم (بجز سیم تغذیه) میشه رنگ و brightness تک تک ال ای دیا رو تغییر داد.
پایین ترین ورژن ws2801 بود که دو تا سیم دیتا می خواست بعدیش ws2811 و پس از اون ws2812 و ws2812b اومدن که واسه کد نویسیشون خیلی فرقی با هم ندارن و ما در اینجا ws2812 رو به عنوان مرجع آموزش میدیم بقیه رو هم توی بخش کد نویسی میگم چیکار کنید که برنامه نویسی ws2812 جور در بیاد.

پروژه آردوینو

خب دیگه بریم واسه توضیح توابع کتابخونه موردنظر، واسه برنامه نویسی این ال ای دیا می تونیم از دو تا کتابخونه استفاده کنیم یکی Adafruit و دیگری fastLed که در اینجا قراره ما با کتابخونه اولی یعنی Adafruit کار کنیم و اون یکی هم خیلی فرق نداره اینو بفهمید انگار اونم بلدین البته یکیشو هم یاد بگیرید کافیه.
معرفی کتابخانه :

ساختن یک شی از این کتابخانه :

نوع پیکسل میتونه شامل موارد زیر باشه :

NEO_KHZ800

NEO_KHZ400

NEO_GRB

NEO_RGB

پارامتر اولی و سومی بیشتر واسه ws2812 هست، دومی واسه ws2811 و ورژنهای قدیمی تر هست چهارمیم واسه ورژنهای قدیمی هست
حالا مثال میزنم که بیشتر متوجه بشید ولی نگران این موضوع نباشید که پارامترهای ال ای دیاتونو نمیدونید اینا رو تغییر بدید ببینید کدومش روی ال ای دی شما جواب میده.
مثال :

توی این مثال همونطور که میبینید یعنی ما میخوایم 60 تا ال ای دی وصل کنیم به پایه 6 و نوع ال ای دی هم مشخص کردیم.

begin
این دستور برای آماده سازی نوار ال ای دیه و بصورت زیر اعمال میشه:

setPixelColor
بوسیله این دستور میتونیم مشخص کنیم که هر ال ای دی چه رنگی باشه و بصورت زیر فراخوانیش می کنیم:

n شماره ال ای دیه در اینجا به این نکته توجه کنید که شماره ال ای دی ها از شماره صفر شروع میشن بوسیله rgb هم که میتونیم رنگ دلخواهمون رو بسازیم(با این دستور ال ای دی روشن نمیشه و فقط آماده میشه)
مثال :

میبینیم که با دستور بالا ال ای دی چهارم آماده میشه برای روشن شدن با رنگ زرد.
شکل دومی که میتونیم این تابع رو فراخوانی کنیم به شکل زیره :

توی فراخوانی به این روش 3 تا رنگ رو با هم بهش میدیم برای این که این سه تا رنگ رو تبدیل کنیم به یه متغیر میتونیم از دستور زیر استفاده کنیم.

Color
این تابع به شکل زیر فراخوانی میشه :

سه تا مقداره رنگ رو بهش میدیم و یه متغیر 32 بیتی که رنگ رو در بر داره تحویل می گیریم.

show
حالا که پایه رو آماده کردیم با این دستور ال ای دی های موردنظر رو روشن می کنیم.

getPixelColor
برای فراخوانی از فرم زیر استفاده می کنیم:

این دستور رنگ ال ای دی شماره n رو بر میگردونه.

numPixels

این دستور تعداد ال ای دیایی که توی ساختن شی بهش دادیم رو بهم بر میگردونه یعنی طبق مثال بالا عدد 60 رو برمی گردونه.

clear
این دستور همه ال ای دی ها رو خاموش می کند.

setBrightness
نکته ای که این دستور داره اینه که شما این تابع رو فقط توی setup برنامه می تونید استفاده کنید و برای یک بار میزان روشنایی رو مشخص کنید که این مقدار رو از بین صفر تا 255 میتونید انتخاب کنید.
مثال:

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

getBrighness
این دستور مقداری که با دستور بالا اعمال کردیم رو بر میگردونه:

setPin
با فراخوانی این تابع میتونیم پایه ای رو که در هنگام ساخت شی در نظر گرفتیم رو عوض کنیم.
مثال :

بدین صورت پایه موردنظر از 6 به 7 تغییر خواهد کرد.

updateLength
بوسیله این دستور میتونیم در هر جای برنامه تعداد ال ای دی ها رو که توی ساخت شی معرفی کردیمو تغییر بدیم.

با این مثال تعداد ال ای دی ها که 60 بود رو به 30 تغییر دادیم.

updateType
این تابع هم همونطوری که از اسمش پیداس واسه تغییر دادن نوع پیکسل ها هست که توی هر جای برنامه می تونیم تغییرش بدیم.
مثال :

و در آخرم یه مثال خوب برای استفاده از این ال ای دی که تعداد 8 ال ای دی رو بصورت بارانی روشن میکنه.

اینم از فیلم عملکرد مثال که به خاطر کیفیت پایینش واقعا ببخشید unknw
http://www.aparat.com/v/qgB2c

اینم از کتابخونه استفاده شده

انشاالله اگه عمری باقی باشه یه پروژه ارتباط ws2812 با سی شارپ هم قرار میدم که بشه توی برنامه همه افکت ها رو تنظیم کرد و به آردوینو فرستاد.
این مطلبم اینجا به پایان رسید خدا کنه به درد دوستان خورده باشه و ما رو هم دعا کنن.

پسورد فایل های سایت :
www.dmf313.ir
تازه کارشناسیمو توی رشته الکترونیک تموم کردم علاقه مند به برنامه نویسی حالا هرچی میخواد باشه (ولی آردوینو یه چیزه دیگس :دی) و علاقه بسیاااار زیاد به پروژه های نورپردازی.
ارسال دیدگاه
29

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. مهمان

    طبسی

    سلام و خسته نباشید
    آیا بدون اردینیو نمیشه
    من دیدم طرف سون سگمنت میسازه با همین ال ای دی ها و فقط سه تا خروجی داره
    میشه بگید چه طوری میتونیم بدون اردینو راه اندازی کنیم و با ای وی آر کار کنیم
    آیا میشه با آی وی آر راه اندازی کرد
    ؟

    1397/06/21
    09:48
  2. مهمان

    پوریا

    سلام
    من از همین ال ای دی هایی که باهاش فیلم گرفتید دارم
    تعدادش 24 تاست
    مشکلم این unknw جاست که میخوام 3 تا دسته الی ای دی با هم بچرخن
    راهنمایی می کنید؟

    1397/04/22
    01:39
  3. مهمان

    جواد

    سلام یک برنامه کد ویژن میخواستم با tiny13درمورد ال ای دی rgbکه رنگهای مختلف را بافاصله زمانی نشان دهد با تشکر hi

    1396/07/12
    10:05
  4. مهمان

    مصطفی

    سلام خسته نباشید
    میخواستم بدونم برد اردوینو خودش تو چه دمایی میتونه کارکنه
    بعد یه سوال دیگه داشتم
    من میخواستم دمای یه محیط رو به صورت دائم چک کنم این موضوع به بر اسیب نمیزنه
    اگه میزنه باید چه کاری انجام بدم
    ((تشکر))

    1396/05/04
    03:58
  5. مهمان

    Hamid

    سلام
    مطلبتون خیلی عالیه
    من یک متر strip led رو با یه آدابتور ۵v 1A و برد UNO روشن کردم
    وقتی پاور برد UNO رو از کامپیوتر میگیرم همه چیز درسته ولی وقتی برد و strip led رو از آدابتور میگیرم کلا قاطی میکنه shock
    کاری میشه کرد؟؟؟

    1396/05/04
    11:31
    • مدیر سایت

      مهدی دمرچیلو

      سلام – به شماتیک برد مراجعه کنید ببینید ورودی تغذیه آردوینو چند ولته – شاید ولتاژ زیاد یا کم میدید

      1396/05/04
      03:22
      • مهمان

        Hamid

        سلام و عرض ادب
        برد آردوینو UNO رو با همون آدابتور (۵v 1A) با ماژول های دیگه تست کردم مشکلی نداره
        فقط وقتی با Strip LED تست می گیرم قاطی میکنه
        آدابتور رو هم عوض کردم باز مشکل داره

        1396/05/05
        09:22
  6. مهمان

    کریمی

    سلام مهندس
    بنده ۵متر ال ای دی ws2812 و آردوینو uno خریداری کردم
    الان میخوام ال ای دی به آردوینو وصل کنم و افکتهای مختلفی به ۵متر بدم
    لطفا بندرو راهنمایی میکنید
    اینکه چطور بفهمم چ مقاومت یا خازن و جریان و ولتاژی نیاز داره ؟؟؟
    کلا چه چیزهایی برای راه انداز ws2812 و آردوینو نیازه ؟؟ راستی ی ماژول وای فای هم گرفتم ک اگر اینهم بشه ب مدار اضافه کرد و با گوشی کنترل کرد که عالی میشه
    بازم ممنون میدونم طولانی و خارج صبر و حوصله شد این درخواستم :-)))))))

    1395/10/13
    04:10
    • نویسنده این مطلب

      masoud zahedi

      سلام اگه بصورت متری خریدین احتمالا خودش باید مقاومت و خازن داشته باشه روش(چک کنید) واسه تغذیشم از یه آداپتور ۵ ولت ۲ آمپر استفاده کنید
      واسه ماژول وایفای هم کلا میشه یه پروژه که نمیشه بصورت جزئی راجع بش صحبت کرد

      1395/10/13
      05:29
      • مهمان

        کریمی

        مرسی از جوابت
        ولی مهندس جان بنده با پاور pc و سیم ۵v پاور زدم نوار ال ای دی کامل سوخت
        ۱۴۵تومن ضرر کردم :-((((
        الان از دوباره سفارش دادم ک برسه
        اگر امکان داره به صورت واضح بفرمائید که کسانیم ک مبتدی هستن کارشون را بیوفته
        اگر به ایمیلم بفرستید ممنون میشم smile

        1395/10/13
        11:12
        • نویسنده این مطلب

          masoud zahedi

          پاور کامپیوتر که پاور نیس ماشالاااا همش نویزه
          بعدشم شما همشو وصل نکن اول از ۱۰ تاش شروع کن وقتی یاد گرفتی بعد بقیشو هم وصل کن
          یه خبر خوب هم بهت بدم همه ال ای دیا نسوخته (به احتمال زیاد) وقتی ال ای دی اولی بسوزه بقیشم کار نمیکنه دیگه. شما از ال ای دی های دوم سومی تست بگیر ایشالا سالمه

          1395/10/15
          11:15
  7. مهمان

    darklight

    سلام واقعا ممنون اجرت با امام حسین
    بنده کلی میون سایتهای ایرانی گشتم ک یک آموزش زیبا و کاملا روان پیدا کنم گشتم نبود تا اینکخ با سایت شما آشنا شدم
    کاشکی بیشتر به پروژه های ال ای دی و آردوینو تمرکز کنید هم قیمت میکروها کم است و هم خیلی سرگرم کننده هست
    پایدار باشی

    1395/10/05
    01:43
    • نویسنده این مطلب

      masoud zahedi

      سلام ممنون از ابراز لطفتون
      شما ایده بدید تا ما بسازیم good

      1395/10/05
      02:49
  8. مهمان

    محمدجواد

    سلام ممنون از آموزشات ، پروتئوس ws28.. ها رو نداره چجوری شبیه سازی کنم

    1395/07/30
    09:24
    • مدیر سایت

      مهدی دمرچیلو

      سلام
      تو نت بگرد ببین کتابخونه پروتئوسش رو پیدا میکنی یا نه – ولی به نظر من بیخال پروتئوس شو good

      1395/08/01
      08:34
      • مهمان

        حمید

        سلام و سپاس از این زحمت که میکشید. قبلا هم از شما یه سوالی پرسیدم ولی هنوز جوابش رو ندادین.
        خاستم ببینم یه پروژه از کنترل این ال ای دی ها رو میشه با میکرو بذارید که چطوری باید کنترلش کنیم. مثلا با Atmega8
        یا در مورد توابع کتابخونه ای که میشه تو کد ویژن برا کنترل این ال ای دی ها استفاده کرد؟
        یه پروژه کوچیک بذارید باقیش رو خودم حل میکنم. ممنون میشم. منتظرم. خدا خیرت بده

        1397/08/22
        01:12
        • مدیر سایت

          مهدی دمیرچیلو

          سلام.کتابخونه Adafruit_NeoPixel رو باید تبدیل کنی به کامپایلر مد نظرت که من حصوله این کارو ندارم – موفق باشید.

          1397/08/22
          05:07
  9. مهمان

    فرهادی

    سلام لطفا کتابخانه ال ای دی 5050rgb رو برای التیوم بذارید

    1395/07/19
    12:02
  10. مهمان

    Mehrad

    دمتون بخاری

    1395/06/28
    07:24
  11. مهمان

    علی

    سلام. ممنون از آموزشتون.
    کتابخانه رو نصب کردم کدها رو آپلود کردم برق 12 ولت و DI به پین6
    اما روشن نشد.
    لطفا راهنماییم کنید

    1395/06/21
    06:24
    • نویسنده این مطلب

      masoud zahedi

      من برنامه رو run کردم مشکلی نداشت شما اول یک پروزه ساده بریز روی آردوینتون (مثل blink) بعد اینو آپلود کن ببین درست میشه؟
      کامپایلرتون ورژن چنده؟

      1395/06/21
      09:06
      • مدیر سایت

        مهدی دمرچیلو

        آقا تو مدارات آنالوگ واردی؟
        من چند تا برد UNO ام مشکل دارن، نمیدونم کدوم قطعه سوخته – سررشته ای داری تو این موارد؟

        1395/06/21
        09:13
        • نویسنده این مطلب

          masoud zahedi

          توی اکثر مواقع در همچین حالتایی بوت لودر آردوینو پریده بهتره اول بوت لودر رو چک کنید بعد برید سخت افزار

          1395/06/21
          11:18
          • مدیر سایت

            مهدی دمرچیلو

            بوت لودر کدوم میروک؟ اون DIP هه یا SMD هه؟
            بوت لودر برا چی باید بپره؟ اصلا چی میشه که این طوری میشه؟

            1395/06/21
            11:48
          • نویسنده این مطلب

            masoud zahedi

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

            1395/06/22
            10:12
        • مهمان

          سامان

          سلام اقا مهدو چطور میتونم باشما تماس برقرار کنم میخواستم صحبت کنم

          1397/08/23
          02:43
  12. مهمان

    مهدی

    خدا قوت. عالی بود.

    1395/06/16
    09:12
  13. مدیر سایت

    مهدی دمرچیلو

    آقا مسعود مطلب رو نخوندم هنوز ولی فیلم رو که دیدم به نظر میرسه جالب باشه. smile

    1395/06/14
    02:01
    • نویسنده این مطلب

      masoud zahedi

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

      1395/06/14
      04:14