Mục lục:

Bộ điều khiển dải LED RGB Arduino: 4 bước
Bộ điều khiển dải LED RGB Arduino: 4 bước

Video: Bộ điều khiển dải LED RGB Arduino: 4 bước

Video: Bộ điều khiển dải LED RGB Arduino: 4 bước
Video: The Basic Starter Arduino UNO #4. LED RGB 2024, Tháng sáu
Anonim
Bộ điều khiển dải LED RGB Arduino
Bộ điều khiển dải LED RGB Arduino

Thông thường, khi mọi người muốn điều khiển dải LED RGB của họ bằng Arduino, ba chiết áp được sử dụng để trộn các màu đỏ, xanh lá cây và xanh lam. Điều này hoạt động và có thể hoàn toàn phù hợp với nhu cầu của bạn, nhưng tôi muốn tạo ra thứ gì đó trực quan hơn, giống như bánh xe màu.

Dự án này dường như là một ứng dụng hoàn hảo cho một bộ mã hóa quay. Đây là một thiết bị chuyển đổi chuyển động của trục của nó thành đầu ra kỹ thuật số. Khi trục quay, bộ mã hóa sẽ gửi ra một tín hiệu (xung) có thể được đo bằng Arduino. Để biết thêm về bộ mã hóa quay, bạn có thể xem video này để giải thích sâu hơn về nó.

Trong phần có thể hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo bộ điều khiển dải LED RGB Arduino bằng cách sử dụng bộ mã hóa quay. Tài liệu hướng dẫn này bao gồm cấu tạo của mạch trên bảng mạch. Tuy nhiên, bạn có thể sản xuất PCB của riêng mình để tạo ra một lá chắn Arduino!

Bước 1: Các bộ phận

Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận

Đối với bộ điều khiển dải LED RGB, bạn sẽ cần các vật liệu sau:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, MOSFET mức logic kênh N bất kỳ sẽ hoạt động miễn là nó được đánh giá ở mức tối thiểu là 12V và dòng điện mà dải LED của bạn tiêu thụ.
  • 1x Bộ mã hóa quay
  • Nguồn điện 1x 12V 2A, dòng điện mà bộ nguồn phải cung cấp có thể phụ thuộc vào độ dài của dải đèn LED được sử dụng.
  • 16x dây nhảy nam sang nam
  • 1x breadboard không hàn, bất kỳ breadboard nào cũng được miễn là đủ lớn.

Bước 2: Mạch

Mạch điện
Mạch điện
Mạch điện
Mạch điện

Kết nối Arduino với đường ray 12V và GND của bảng mạch. Sau đó kết nối các bộ phận khác như sau:

Bộ mã hóa quay

Pin A - D4

Pin B - D3

GND - GND

MOSFET đỏ

Cổng - GND

Xả - Dải LED dây màu đỏ

Nguồn - D11

MOSFET GreenGate - GND

Drain - Dải LED dây màu xanh lá cây

Nguồn - D9

MOSFET BlueGate - GND

Xả - Dải LED dây màu xanh lam

Nguồn - D6

Bước 3: Mã

// Chân Arduino PWM

int redPin = 11; int greenPin = 6; int bluePin = 9; // Các chân của bộ mã hóa Arduino int encoderPinA = 3; int encoderPinB = 4; // Các biến màu int colorVal; int redVal; int greenVal; int blueVal; // Các biến mã hóa int encoderPos; int encoderPinACurrent; int encoderPinALast = CAO; // Bộ đếm int khác; void setup () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (bộ đếm); 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; bộ đếm = encoderPos * 8; if (bộ đếm 1535) {bộ đếm = 0; } bộ đếm trả lại; } int encoder2rgb (int counterVal) {// Màu đỏ thành màu vàng if (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Màu vàng sang màu xanh lá cây else if (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Màu xanh lục thành màu lục lam else if (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Từ lục lam sang xanh lam else if (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Màu xanh lam thành màu đỏ tươi else if (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Từ đỏ tươi sang đỏ else {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } trả về redVal, greenVal, blueVal; }

Đề xuất: