Mündəricat:

Arduino RGB LED Strip Controller: 4 addım
Arduino RGB LED Strip Controller: 4 addım

Video: Arduino RGB LED Strip Controller: 4 addım

Video: Arduino RGB LED Strip Controller: 4 addım
Video: how to make ARGB LED strip at home (WS2812 LED module) make gaming RGB strip 2024, Iyul
Anonim
Arduino RGB LED Şerit Nəzarətçisi
Arduino RGB LED Şerit Nəzarətçisi

Çox vaxt insanlar RGB LED şeridlərini Arduino ilə idarə etmək istədikdə qırmızı, yaşıl və mavi rəngləri qarışdırmaq üçün üç potansiyometrdən istifadə olunur. Bu işləyir və ehtiyaclarınız üçün mükəmməl ola bilər, amma rəngli təkər kimi daha asan bir şey etmək istədim.

Bu layihə, fırlanan bir kodlayıcı üçün mükəmməl bir tətbiq kimi görünür. Bu, milinin hərəkətini rəqəmsal çıxışa çevirən bir cihazdır. Şaft çevrildikdə, kodlayıcı bir Arduino ilə ölçülə bilən bir siqnal (nəbz) göndərir. Döner kodlayıcılar haqqında daha çox məlumat əldə etmək üçün onu daha dərindən izah edən bu videoya baxa bilərsiniz.

Bu Təlimat kitabında, fırlanan bir kodlayıcıdan istifadə edərək Arduino RGB LED şerit idarəedicisini necə edəcəyinizi sizə göstərəcəyəm. Bu Təlimat bir çörək taxtasında dövrə qurulmasını əhatə edir. Bununla birlikdə bir Arduino qalxanı yaratmaq üçün öz PCB istehsal edə bilərsiniz!

Addım 1: hissələr

Hissələri
Hissələri
Hissələri
Hissələri

RGB LED şerit nəzarətçisi üçün aşağıdakı materiallara ehtiyacınız olacaq:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, hər hansı bir N-kanal məntiqi səviyyəsi MOSFET, minimum 12V olaraq qiymətləndirildiyi və LED şeridinizin istehlak etdiyi cərəyanı yerinə yetirəcəkdir.
  • 1x Rotary kodlayıcı
  • 1x 12V 2A enerji təchizatı, enerji təchizatının verməli olduğu cərəyan, istifadə olunan LED şeridinin uzunluğundan asılı ola bilər.
  • 16x Kişidən kişiyə tullanan tellər
  • 1x Lehimsiz çörək taxtası, hər hansı bir çörək taxtası kifayət qədər böyük olduğu müddətcə edəcək.

Addım 2: Dövrə

Dövrə
Dövrə
Dövrə
Dövrə

Arduino'yu çörək taxtasının 12V və GND rayına qoşun. Sonra digər hissələri aşağıdakı kimi bağlayın:

Rotary kodlayıcı

Pin A - D4

Pin B - D3

GND - GND

MOSFET Qırmızı

Qapı - GND

Drenaj - LED şeridi qırmızı tel

Mənbə - D11

MOSFET GreenGate - GND

Drenaj - LED şeridi yaşıl tel

Mənbə - D9

MOSFET BlueGate - GND

Drenaj - LED şeridi mavi tel

Mənbə - D6

Addım 3: Kod

// Arduino PWM pinləri

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino kodlayıcı sancaqlar int encoderPinA = 3; int encoderPinB = 4; // Rəng dəyişənləri int colorVal; int redVal; int greenVal; int blueVal; // En encoder dəyişənləri int encoderPos; int encoderPinACurrent; int encoderPinALast = YÜKSƏK; // Digər int sayğacı; boş quraşdırma () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (sayğac); 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; } başqa {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; sayğac = encoderPos*8; əgər (sayğac 1535) {sayğac = 0; } geri sayğac; } int encoder2rgb (int counterVal) {// Qırmızıdan sarıya doğru (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Sarı -yaşıl başqa bir halda (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Yaşıldan başqa bir mavi rəngə qədər (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Mavi başqa bir halda mavi (əgər əks counter <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Mavi başqa bir rəngdədirsə (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Magenta to red to else {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } redVal, greenVal, blueVal qaytar; }

Tövsiyə: