Innholdsfortegnelse:

Arduino RGB LED Strip Controller: 4 trinn
Arduino RGB LED Strip Controller: 4 trinn

Video: Arduino RGB LED Strip Controller: 4 trinn

Video: Arduino RGB LED Strip Controller: 4 trinn
Video: How to use LED light controller with DOLLx8 and Arduino 2024, November
Anonim
Arduino RGB LED Strip Controller
Arduino RGB LED Strip Controller

Ofte når folk vil kontrollere sin RGB LED -stripe med en Arduino, brukes tre potensiometre for å blande de røde, grønne og blå fargene. Dette fungerer og kan være helt greit for dine behov, men jeg ønsket å gjøre noe mer intuitivt, noe som et fargehjul.

Dette prosjektet ser ut til å være et perfekt program for en roterende encoder. Dette er en enhet som konverterer bevegelsen til akselen til en digital utgang. Når akselen dreies, sender koderen ut et signal (puls) som kan måles av en Arduino. For mer om roterende kodere, kan du se denne videoen som forklarer den mer grundig.

I denne instruksjonsboken vil jeg vise deg hvordan du lager en Arduino RGB LED -stripekontroller ved hjelp av en roterende encoder. Denne instruksen dekker konstruksjonen av kretsen på et brødbrett. Du kan imidlertid produsere din egen PCB for å lage et Arduino -skjold!

Trinn 1: Deler

Deler
Deler
Deler
Deler

For RGB LED -stripekontrolleren trenger du følgende materialer:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, vil ethvert N-kanalers logisk nivå MOSFET gjøre så lenge det er vurdert til minimum 12V og strømmen din LED-stripe bruker.
  • 1x roterende encoder
  • 1x 12V 2A strømforsyning, strømmen strømforsyningen må levere kan avhenge av lengden på den brukte LED -stripen.
  • 16x stikkontakter fra mann til mann
  • 1x Loddefritt brødbrett, et hvilket som helst brødbrett vil gjøre så lenge det er tilstrekkelig stort.

Trinn 2: Krets

Krets
Krets
Krets
Krets

Koble Arduino til 12V- og GND -skinnen på brødbrettet. Koble deretter de andre delene som følger:

Roterende encoder

Pin A - D4

Pin B - D3

GND - GND

MOSFET Rød

Gate - GND

Avløp - LED -stripe rød ledning

Kilde - D11

MOSFET GreenGate - GND

Avløp - LED -stripe grønn ledning

Kilde - D9

MOSFET BlueGate - GND

Avløp - LED -stripe blå ledning

Kilde - D6

Trinn 3: Kode

// Arduino PWM -pinner

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino encoder pins int encoderPinA = 3; int encoderPinB = 4; // Fargevariabler int colorVal; int redVal; int greenVal; int blueVal; // Kodervariabler int encoderPos; int encoderPinACurrent; int encoderPinALast = HØY; // Andre inteller; ugyldig oppsett () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (teller); 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; } annet {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; teller = encoderPos*8; hvis (teller 1535) {teller = 0; } returteller; } int encoder2rgb (int counterVal) {// Rød til gul hvis (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Gul til grønn ellers hvis (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Grønn til cyan annet hvis (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Cyan til blått annet 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 annet {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } returner redVal, greenVal, blueVal; }

Anbefalt: