Innehållsförteckning:

Arduino RGB LED Strip Controller: 4 steg
Arduino RGB LED Strip Controller: 4 steg

Video: Arduino RGB LED Strip Controller: 4 steg

Video: Arduino RGB LED Strip Controller: 4 steg
Video: how to make ARGB LED strip at home (WS2812 LED module) make gaming RGB strip 2024, Juli
Anonim
Arduino RGB LED Strip Controller
Arduino RGB LED Strip Controller

Ofta när människor vill styra sin RGB LED -remsa med en Arduino används tre potentiometrar för att blanda de röda, gröna och blå färgerna. Detta fungerar och kan vara perfekt för dina behov, men jag ville göra något mer intuitivt, något som ett färghjul.

Detta projekt verkar vara en perfekt applikation för en roterande kodare. Detta är en enhet som konverterar rörelsen från sin axel till en digital utgång. När axeln vrids skickar kodaren ut en signal (puls) som kan mätas av en Arduino. För mer information om roterande kodare kan du titta på den här videon som förklarar den mer ingående.

I den här instruktionsboken kommer jag att visa dig hur du gör en Arduino RGB LED -stripkontroll med hjälp av en roterande kodare. Denna instruktionsbok täcker konstruktionen av kretsen på en brödbräda. Du kan dock producera din egen PCB för att skapa en Arduino -sköld!

Steg 1: Delar

Delar
Delar
Delar
Delar

För RGB LED -stripkontrollen behöver du följande material:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, alla N-kanals logiska nivå MOSFET kommer att göra så länge det är märkt till minst 12V och den ström din LED-remsa förbrukar.
  • 1x roterande pulsgivare
  • 1x 12V 2A strömförsörjning, strömmen som strömförsörjningen måste leverera kan bero på längden på den använda LED -remsan.
  • 16x tröjor från man till han
  • 1x Lödlös brödbräda, alla brödbrädor kommer att göra så länge det är tillräckligt stort.

Steg 2: Krets

Krets
Krets
Krets
Krets

Anslut Arduino till brädbrädans 12V- och GND -skena. Anslut sedan de andra delarna enligt följande:

Roterande pulsgivare

Stift A - D4

Stift B - D3

GND - GND

MOSFET Röd

Gate - GND

Avlopp - LED -remsa röd tråd

Källa - D11

MOSFET GreenGate - GND

Avlopp - LED -remsa grön tråd

Källa - D9

MOSFET BlueGate - GND

Avlopp - LED -remsa blå tråd

Källa - D6

Steg 3: Kod

// Arduino PWM -stift

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino encoder pins int encoderPinA = 3; int encoderPinB = 4; // Färgvariabler int colorVal; int redVal; int greenVal; int blueVal; // Kodervariabler int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // Annan inträknare; void setup () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); kodare2rgb (räknare); 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; } annat {encoderPos = encoderPos + 1; }} encoderPinALast = encoderPinACurrent; räknare = encoderPos*8; if (räknare 1535) {räknare = 0; } returräknare; } int encoder2rgb (int counterVal) {// Röd till gul om (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Gul till grön annars if (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Grön till cyan annars om (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Cyan till blått annat om (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Blå till magenta annars om (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Magenta till rött annat {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } returnera redVal, greenVal, blueVal; }

Rekommenderad: