Indholdsfortegnelse:

Arduino RGB LED Strip Controller: 4 trin
Arduino RGB LED Strip Controller: 4 trin

Video: Arduino RGB LED Strip Controller: 4 trin

Video: Arduino RGB LED Strip Controller: 4 trin
Video: Control RGB LEDs with Arduino || Arduino Essentials #1 2024, Juli
Anonim
Arduino RGB LED Strip Controller
Arduino RGB LED Strip Controller

Ofte når folk vil styre deres RGB LED -strip med en Arduino, bruges tre potentiometre til at blande de røde, grønne og blå farver. Dette fungerer og kan være helt fint til dine behov, men jeg ville gøre noget mere intuitivt, noget som et farvehjul.

Dette projekt ser ud til at være en perfekt applikation til en roterende encoder. Dette er en enhed, der konverterer bevægelsen af sin aksel til en digital udgang. Når akslen drejes, sender encoderen et signal (puls), som kan måles af en Arduino. For mere om roterende encodere, kan du se denne video, der forklarer den mere dybtgående.

I denne Instructable vil jeg vise dig, hvordan du laver en Arduino RGB LED -stripkontroller ved hjælp af en roterende encoder. Denne instruktør dækker konstruktionen af kredsløbet på et brødbræt. Du kan dog producere dit eget printkort for at oprette et Arduino -skjold!

Trin 1: Dele

Dele
Dele
Dele
Dele

Til RGB LED -stripkontrollen skal du bruge følgende materialer:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, vil ethvert N-kanals logiske niveau MOSFET gøre, så længe det er vurderet til minimum 12V og den strøm, din LED-strimmel forbruger.
  • 1x roterende encoder
  • 1x 12V 2A strømforsyning, strømmen, strømforsyningen skal levere, kan afhænge af længden af den brugte LED -strip.
  • 16x tråde fra mand til mand
  • 1x Loddefrit brødbræt, ethvert brødbræt vil klare sig, så længe det er tilstrækkeligt stort.

Trin 2: Kredsløb

Kredsløb
Kredsløb
Kredsløb
Kredsløb

Tilslut Arduino til 12V- og GND -skinnen på brødbrættet. Tilslut derefter de andre dele som følger:

Roterende encoder

Pin A - D4

Pin B - D3

GND - GND

MOSFET Rød

Port - GND

Afløb - LED -bånd rød ledning

Kilde - D11

MOSFET GreenGate - GND

Afløb - LED -bånd grøn ledning

Kilde - D9

MOSFET BlueGate - GND

Afløb - LED -bånd blå ledning

Kilde - D6

Trin 3: Kode

// Arduino PWM stifter

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino encoder pins int encoderPinA = 3; int encoderPinB = 4; // Farvevariabler int colorVal; int redVal; int greenVal; int blueVal; // Encoder -variabler int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // Anden int -tæller; ugyldig opsætning () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (tæller); 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; } ellers {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; tæller = encoderPos*8; hvis (tæller 1535) {tæller = 0; } returtæller; } int encoder2rgb (int counterVal) {// Rød til gul hvis (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Gul til grøn ellers hvis (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Grøn til cyan ellers hvis (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Cyan til blå ellers hvis (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Blå til magenta ellers hvis (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Magenta til rødt andet {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } returner redVal, greenVal, blueVal; }

Anbefalede: