وحدة تحكم شريط اردوينو RGB LED: 4 خطوات
وحدة تحكم شريط اردوينو RGB LED: 4 خطوات
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؛ }