جدول المحتويات:

وحدة تحكم شريط اردوينو RGB LED: 4 خطوات
وحدة تحكم شريط اردوينو RGB LED: 4 خطوات

فيديو: وحدة تحكم شريط اردوينو RGB LED: 4 خطوات

فيديو: وحدة تحكم شريط اردوينو RGB LED: 4 خطوات
فيديو: Music Reactive RGB LEDs with Arduino LED 5050 RGB Strip control LED RGB 2024, شهر نوفمبر
Anonim
وحدة تحكم شريط اردوينو RGB LED
وحدة تحكم شريط اردوينو RGB LED

في كثير من الأحيان عندما يريد الأشخاص التحكم في شريط RGB LED الخاص بهم باستخدام Arduino ، يتم استخدام ثلاثة مقاييس فرق لمزج الألوان الأحمر والأخضر والأزرق. هذا يعمل ويمكن أن يكون جيدًا تمامًا لاحتياجاتك ، لكنني أردت أن أجعل شيئًا أكثر سهولة ، مثل عجلة الألوان.

يبدو أن هذا المشروع هو تطبيق مثالي لمشفر دوار. هذا جهاز يحول حركة عمودها إلى إخراج رقمي. عندما يتم تدوير العمود ، يرسل المشفر إشارة (نبضة) يمكن قياسها بواسطة Arduino. لمزيد من المعلومات حول أجهزة التشفير الدوارة ، يمكنك مشاهدة هذا الفيديو الذي يشرحها بمزيد من التفصيل.

في هذا Instructable ، سأوضح لك كيفية إنشاء وحدة تحكم شريط Arduino RGB LED باستخدام جهاز تشفير دوار. يغطي هذا Instructable بناء الدائرة على اللوح. ومع ذلك ، يمكنك إنتاج ثنائي الفينيل متعدد الكلور الخاص بك من أجل إنشاء درع Arduino!

الخطوة 1: الأجزاء

القطع
القطع
القطع
القطع

ستحتاج إلى المواد التالية لوحدة التحكم في شريط RGB LED:

  • 1x اردوينو نانو
  • 3x IRLB8721PBF ، أي مستوى منطق N-channel MOSFET سيفعل طالما تم تقييمه على الأقل 12 فولت والتيار الذي يستهلكه شريط LED الخاص بك.
  • 1x الروتاري التشفير
  • مصدر طاقة 1x 12V 2A ، قد يعتمد التيار الذي يجب على مزود الطاقة توصيله على طول شريط LED المستخدم.
  • 16x ذكر إلى ذكر أسلاك العبور
  • 1x لوح توصيل بدون لحام ، أي لوح تجارب يعمل طالما كان كبيرًا بدرجة كافية.

الخطوة 2: الدائرة

دائرة كهربائية
دائرة كهربائية
دائرة كهربائية
دائرة كهربائية

قم بتوصيل Arduino بسكة 12 فولت و GND للوح. ثم قم بتوصيل الأجزاء الأخرى كما يلي:

التشفير الروتاري

دبوس أ - D4

دبوس ب - د 3

GND - GND

أحمر موسفيت

بوابة - GND

استنزاف - سلك أحمر بشريط LED

المصدر - D11

MOSFET GreenGate - GND

استنزاف - سلك أخضر لشريط LED

المصدر - D9

MOSFET BlueGate - GND

استنزاف - سلك أزرق بشريط LED

المصدر - D6

الخطوة 3: الكود

// اردوينو PWM دبابيس

int redPin = 11 ؛ int greenPin = 6 ؛ كثافة العمليات bluePin = 9 ؛ // دبابيس Arduino encoder int encoderPinA = 3 ؛ أداة التشفير Int encoderPinB = 4 ؛ // متغيرات اللون int colorVal؛ int redVal. int greenVal. int blueVal. // متغيرات التشفير int encoderPos ؛ التشفير int أداة التشفير int encoderPinALast = عالية ؛ // عداد int الأخرى ؛ إعداد باطل () {pinMode (encoderPinA، INPUT_PULLUP) ؛ pinMode (encoderPinB ، INPUT_PULLUP) ؛ } حلقة فارغة () {readEncoder () ؛ encoder2rgb (عداد) ؛ analogWrite (redPin ، redVal) ؛ analogWrite (greenPin ، greenVal) ؛ analogWrite (bluePin ، blueVal) ؛ } int readEncoder () {encoderPinACurrent = digitalRead (encoderPinA) ؛ إذا ((encoderPinALast == LOW) && (encoderPinACurrent == HIGH)) {if (digitalRead (encoderPinB) == LOW) {encoderPos = encoderPos - 1 ؛ } else {encoderPos = encoderPos + 1 ؛ }} encoderPinALast = encoderPinACurrent ؛ عداد = encoderPos * 8 ؛ إذا (عداد 1535) {عداد = 0 ؛ } عداد العودة؛ } int encoder2rgb (int counterVal) {// Red to yellow if (counterVal <= 255) {colorVal = counterVal؛ redVal = 255 ؛ greenVal = colorVal ؛ blueVal = 0 ؛ } // أصفر إلى أخضر آخر إذا (counterVal <= 511) {colorVal = counterVal - 256؛ redVal = 255 - colorVal ؛ greenVal = 255 ؛ blueVal = 0 ؛ } // أخضر إلى سماوي آخر إذا (counterVal <= 767) {colorVal = counterVal - 512؛ redVal = 0 ؛ greenVal = 255 ؛ blueVal = colorVal ؛ } // Cyan to blue else if (counterVal <= 1023) {colorVal = counterVal - 768؛ redVal = 0 ؛ greenVal = 255 - colorVal ؛ blueVal = 255 ؛ } // أزرق إلى أرجواني آخر إذا (counterVal <= 1279) {colorVal = counterVal - 1024؛ redVal = colorVal ؛ greenVal = 0 ؛ blueVal = 255 ؛ } // أرجواني إلى أحمر آخر {colorVal = counterVal - 1280؛ redVal = 255 ؛ greenVal = 0 ؛ blueVal = 255 - colorVal ؛ } إرجاع redVal، greenVal، blueVal؛ }

موصى به: