สารบัญ:

Arduino RGB LED Strip Controller: 4 ขั้นตอน
Arduino RGB LED Strip Controller: 4 ขั้นตอน

วีดีโอ: Arduino RGB LED Strip Controller: 4 ขั้นตอน

วีดีโอ: Arduino RGB LED Strip Controller: 4 ขั้นตอน
วีดีโอ: How To Make DIY Arduino RGB Led Strip Controller 2024, พฤศจิกายน
Anonim
Arduino RGB LED Strip Controller
Arduino RGB LED Strip Controller

บ่อยครั้งเมื่อผู้คนต้องการควบคุมแถบ LED RGB ด้วย Arduino โพเทนชิโอมิเตอร์สามตัวถูกใช้เพื่อผสมสีแดง สีเขียว และสีน้ำเงิน วิธีนี้ใช้ได้ผลและอาจใช้ได้ดีกับความต้องการของคุณ แต่ฉันต้องการสร้างสิ่งที่ใช้งานง่ายขึ้น เช่น วงล้อสี

โปรเจ็กต์นี้น่าจะเป็นแอปพลิเคชั่นที่สมบูรณ์แบบสำหรับเครื่องเข้ารหัสแบบโรตารี่ นี่คืออุปกรณ์ที่แปลงการเคลื่อนไหวของเพลาเป็นเอาต์พุตดิจิตอล เมื่อหมุนเพลา ตัวเข้ารหัสจะส่งสัญญาณ (ชีพจร) ซึ่ง Arduino สามารถวัดได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องเข้ารหัสแบบหมุน คุณสามารถชมวิดีโอนี้ซึ่งจะอธิบายในเชิงลึกมากขึ้น

ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างตัวควบคุมแถบ LED RGB ของ Arduino โดยใช้ตัวเข้ารหัสแบบหมุน คำแนะนำนี้ครอบคลุมการสร้างวงจรบนเขียงหั่นขนม อย่างไรก็ตาม คุณสามารถสร้าง PCB ของคุณเองเพื่อสร้าง Arduino shield ได้!

ขั้นตอนที่ 1: อะไหล่

อะไหล่
อะไหล่
อะไหล่
อะไหล่

สำหรับตัวควบคุมแถบ LED RGB คุณจะต้องใช้วัสดุต่อไปนี้:

  • 1x Arduino นาโน
  • 3x IRLB8721PBF MOSFET ลอจิกระดับ N-channel ใด ๆ จะทำตราบเท่าที่ได้รับการจัดอันดับที่ 12V ขั้นต่ำและกระแสไฟ LED ของคุณสิ้นเปลือง
  • 1x ตัวเข้ารหัสแบบหมุน
  • แหล่งจ่ายไฟ 1x 12V 2A กระแสไฟที่ต้องส่งอาจขึ้นอยู่กับความยาวของแถบ LED ที่ใช้
  • สายจัมเปอร์ชายกับชาย 16x
  • 1x เขียงหั่นขนม Solderless เขียงหั่นขนมใด ๆ จะทำตราบเท่าที่มีขนาดใหญ่เพียงพอ

ขั้นตอนที่ 2: วงจร

วงจร
วงจร
วงจร
วงจร

เชื่อมต่อ Arduino กับราง 12V และ GND ของเขียงหั่นขนม จากนั้นเชื่อมต่อส่วนอื่นๆ ดังนี้

ตัวเข้ารหัสแบบหมุน

พิน A - D4

พิน B - D3

GND - GND

MOSFET สีแดง

ประตู - GND

ท่อระบายน้ำ - สายไฟ LED แถบสีแดง

ที่มา - D11

MOSFET กรีนเกท - GND

ท่อระบายน้ำ - แถบ LED สายไฟสีเขียว

ที่มา - D9

MOSFET บลูเกท - GND

ท่อระบายน้ำ - แถบ LED สายไฟสีน้ำเงิน

ที่มา - D6

ขั้นตอนที่ 3: รหัส

// หมุด Arduino PWM

int redPin = 11; int greenPin = 6; int bluePin = 9; // ตัวเข้ารหัส Arduino พิน int encoderPinA = 3; ตัวเข้ารหัส intPinB = 4; // ตัวแปรสี int colorVal; int redVal; int สีเขียวVal; int blueVal; // ตัวแปรตัวเข้ารหัส int encoderPos; ตัวเข้ารหัส intPinACurrent; ตัวเข้ารหัส intPinALast = สูง; // เคาน์เตอร์ int อื่น ๆ การตั้งค่าเป็นโมฆะ () { pinMode (encoderPinA, INPUT_PULLUP); pinMode(ตัวเข้ารหัสPinB, INPUT_PULLUP); } วงเป็นโมฆะ () { 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; } อื่น ๆ { encoderPos = encoderPos + 1; } } encoderPinALast = encoderPinACurrent; ตัวนับ = encoderPos*8; ถ้า (ตัวนับ 1535){ ตัวนับ = 0; } กลับเคาน์เตอร์; } int encoder2rgb (int counterVal) { // สีแดงเป็นสีเหลืองถ้า (counterVal <= 255) { colorVal = counterVal; ค่าแดง = 255; greenVal = colorVal; blueVal = 0; } // สีเหลืองเป็นสีเขียวอื่น ๆ ถ้า (counterVal <= 511) { colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // เขียวเป็นฟ้าอื่น if (counterVal <= 767){ colorVal = counterVal - 512; redVal = 0; ค่าสีเขียว = 255; blueVal = colorVal; } // สีฟ้าเป็นสีน้ำเงิน อย่างอื่น ถ้า (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; }

แนะนำ: