فهرست مطالب:

کنترلر نوار LED آردوینو RGB: 4 مرحله
کنترلر نوار LED آردوینو RGB: 4 مرحله

تصویری: کنترلر نوار LED آردوینو RGB: 4 مرحله

تصویری: کنترلر نوار LED آردوینو RGB: 4 مرحله
تصویری: چطور نوار RGB برنامه پذیر راه اندازی کنیم؟ [با نوار WS2811 و آردوینو] 2024, جولای
Anonim
کنترلر نوار LED آردوینو RGB
کنترلر نوار LED آردوینو RGB

اغلب هنگامی که مردم می خواهند نوار LED RGB خود را با آردوینو کنترل کنند ، از سه پتانسیومتر برای ترکیب رنگهای قرمز ، سبز و آبی استفاده می شود. این کار می کند و می تواند برای نیازهای شما بسیار مناسب باشد ، اما من می خواستم چیزی را بصری تر کنم ، چیزی شبیه به یک چرخ رنگ.

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

در این دستورالعمل نحوه ساخت کنترلر نوار LED Arduino RGB با استفاده از رمزگذار چرخشی را به شما نشان خواهم داد. این دستورالعمل ساختار مدار را روی یک تخته نان پوشش می دهد. با این وجود می توانید PCB خود را برای ایجاد سپر آردوینو تولید کنید!

مرحله 1: قطعات

قطعات
قطعات
قطعات
قطعات

برای کنترل کننده نوار LED RGB به مواد زیر نیاز دارید:

  • 1 برابر آردوینو نانو
  • 3x IRLB8721PBF ، هر سطح منطقی MOSFET تا زمانی که حداقل 12 ولت باشد و جریان نوار LED شما مصرف کند ، انجام می شود.
  • 1x رمزگذار روتاری
  • منبع تغذیه 1x 12V 2A ، جریان منبع تغذیه ممکن است به طول نوار LED استفاده شده بستگی داشته باشد.
  • 16 برابر سیم های جهنده نر تا مرد
  • 1 برابر تخته نان بدون سرب ، هر تخته نان تا زمانی که به اندازه کافی بزرگ باشد انجام می دهد.

مرحله 2: مدار

جریان
جریان
جریان
جریان

آردوینو را به ریل 12 ولت و GND ورق نان متصل کنید. سپس قسمت های دیگر را به صورت زیر وصل کنید:

رمزگذار روتاری

پین A - D4

پین B - D3

GND - GND

ماسفت قرمز

دروازه - GND

تخلیه - سیم قرمز نوار LED

منبع - D11

MOSFET GreenGate - GND

تخلیه - سیم سبز نوار LED

منبع - D9

MOSFET BlueGate - GND

تخلیه - سیم آبی نوار LED

منبع - D6

مرحله 3: کد

// پین های Arduino PWM

int redPin = 11؛ int greenPin = 6؛ int bluePin = 9؛ // پین های رمزگذار آردوینو int encoderPinA = 3؛ int encoderPinB = 4؛ // متغیرهای رنگی int colorVal؛ int redVal؛ int greenVal؛ int blueVal؛ // متغیرهای رمزگذار int encoderPos؛ int encoderPinACurrent؛ int encoderPinALast = HIGH؛ // دیگر int counter؛ void setup () {pinMode (encoderPinA، INPUT_PULLUP)؛ pinMode (encoderPinB ، INPUT_PULLUP) ؛ } void loop () {readEncoder ()؛ encoder2rgb (شمارنده) ؛ analogWrite (redPin ، redVal) ؛ analogWrite (greenPin ، greenVal) ؛ analogWrite (bluePin ، blueVal) ؛ } int readEncoder () {encoderPinACurrent = digitalRead (encoderPinA)؛ if ((encoderPinALast == LOW) && (encoderPinACurrent == HIGH)) {if (digitalRead (encoderPinB) == LOW) {encoderPos = encoderPos - 1 ؛ } else {encoderPos = encoderPos + 1؛ }} encoderPinALast = encoderPinACurrent؛ counter = encoderPos*8 ؛ if (شمارنده 1535) {counter = 0؛ } شمارنده بازگشت ؛ } int encoder2rgb (int counterVal) {// قرمز به زرد if (counterVal <= 255) {colorVal = counterVal؛ redVal = 255 ؛ greenVal = colorVal؛ blueVal = 0 ؛ } // زرد تا سبز else if (counterVal <= 511) {colorVal = counterVal - 256؛ redVal = 255 - colorVal؛ greenVal = 255 ؛ blueVal = 0 ؛ } // سبز به فیروزه ای دیگر اگر (counterVal <= 767) {colorVal = counterVal - 512؛ redVal = 0 ؛ greenVal = 255 ؛ blueVal = colorVal؛ } // فیروزه ای تا آبی دیگر if (counterVal <= 1023) {colorVal = counterVal - 768؛ redVal = 0 ؛ greenVal = 255 - colorVal؛ blueVal = 255 ؛ } // آبی به سرخابی if if (counterVal <= 1279) {colorVal = counterVal - 1024؛ redVal = colorVal؛ greenVal = 0 ؛ blueVal = 255 ؛ } // سرخابی به قرمز else {colorVal = counterVal - 1280؛ redVal = 255 ؛ greenVal = 0 ؛ blueVal = 255 - colorVal؛ } return redVal، greenVal، blueVal؛ }

توصیه شده: