ارتباط با آی سی WS2812 توسط میکروکنترلر STM32

مقدمه

در این آموزش ، ما ارتباط آی سی LED WS2812 را با STM32 توضیح خواهیم داد. ماژول LED RGB تکی WS2812 از سه رنگ قرمز، سبز و آبی تشکیل شده بطوریکه به آی سی WS2811 متصل است. آی سی WS2811 دیجیتال می باشد که همراه LED RGB هفت رنگ آنرا به فولکالر ۱۶ میلیون رنگ تبدیل میکند. LED WS2812 به شکل SMD دارای ۴ پایه است. دو پایه مربوط به برق ۵ ولت و دو پایه آن مربوط به دریافت و ارسال داده است. پایه دریافت اطلاعات به کنترلر وصل شده و افکت های رنگی را از آن دریافت و اجرا میکند. پایه خروجی این ال ای دی به ورودی بعدی وصل شده و افکت های LED بعدی را مشخص می کند. جریان مصرفی هر ال ای دی را ۴۰ میلی آمپر در نظر بگیرید. از این LED میتوان در ساخت کاردستی های LED، پرده های LED، نورپردازی تزئینی، تابلو های LED، ماکت و … استفاده کرد. همین فرآیند برای WS2812B نیز قابل استفاده است. ما می خواهیم از PWM با DMA برای ارسال داده ها به LED استفاده کنیم.

 

ارزیابی اطلاعات در دیتا شیت

در زیر تصویر دیتا شیت آورده شده است ، که نحوه ارسال ۰ و ۱ را به دستگاه توضیح می دهد.

شکل ۱: نحوه کارکرد آی سی موجود در دیتاشیت

 

  • همانطور که در تصویر بالا مشاهده می کنید ، برای ارسال عدد ۰ ، پالس باید به مدت ۰٫۴ میکرو ثانیه High باشد ، سپس برای ۰٫۸۵ میکرو ثانیه Low باشد.
  • این حدود ۱/۳rd از پالس باید بالا باشد.
  • به طور مشابه ، برای ارسال ۱, ۲/۳rd از پالس باید بالا باشد
  • ریست کد که برای Low کردن پالس برای بیش از ۵۰ میکرو ثانیه تشکیل شده است.

 

داشتن Bit Arrangement

شکل ۲: نحوه ارسال بیت برای تحت کنترل گرفتن LED ها

 

  • می بینید که هر داده از ۲۴ بیت G R B تشکیل شده است.
  • و ابتدا باید بیت های سبز (MSB) را ارسال کنیم.
  • همچنین داده های مربوط به همه LED ها باید با هم ارسال شود. برای مثال – اگر ۱۲ LED دارید ، پس باید ۱۲ × ۲۴ = ۲۸۸ بیت را یکی پس از دیگری ارسال کنید.
  • راننده ۲۴ بیت اول را به اولین LED ، مجموعه دوم ۲۴ بیتی را به LED دوم و غیره اختصاص می دهد
  • پس از ارسال داده ها برای همه LED ها ، باید سیگنال را برای بیش از ۵۰ میکرو ثانیه پایین نگه داریم ، در غیر این صورت آی سی در نظر می گیرد که این داده ها مربوط به LED بعدی است.
  • این تمام اطلاعاتی است که ما از صفحه داده نیاز داریم. حالا اجازه دهید از طریق کد این کار را انجام دهیم.

 



برای دانلود این آموزش به لینک زیر مراجعه کنید

Interface WS2812 with STM32