Obsah:

Arduino RGB LED Strip Controller: 4 kroky
Arduino RGB LED Strip Controller: 4 kroky

Video: Arduino RGB LED Strip Controller: 4 kroky

Video: Arduino RGB LED Strip Controller: 4 kroky
Video: Arduino návody | RGB LED modul 2024, Listopad
Anonim
Arduino RGB LED páskový ovladač
Arduino RGB LED páskový ovladač

Často, když lidé chtějí ovládat svůj RGB LED pásek pomocí Arduina, se používají tři potenciometry pro smíchání červené, zelené a modré barvy. To funguje a pro vaše potřeby by to mohlo být naprosto v pořádku, ale chtěl jsem udělat něco intuitivnějšího, něco jako barevné kolečko.

Tento projekt se zdá být perfektní aplikací pro rotační kodér. Jedná se o zařízení, které převádí pohyb svého hřídele na digitální výstup. Když je hřídel otočena, kodér vyšle signál (puls), který lze měřit Arduinem. Další informace o rotačních kodérech můžete sledovat v tomto videu, které to vysvětluje podrobněji.

V tomto Instructable vám ukážu, jak vytvořit Arduino RGB LED páskový ovladač pomocí rotačního kodéru. Tento Instructable pokrývá konstrukci obvodu na prkénku. Můžete si však vyrobit vlastní desku plošných spojů za účelem vytvoření štítu Arduino!

Krok 1: Díly

Díly
Díly
Díly
Díly

Pro ovladač RGB LED pásků budete potřebovat následující materiály:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, jakýkoli N-kanálový logický stupeň MOSFET bude fungovat, pokud je dimenzován minimálně na 12V a proud, který spotřebuje váš LED pás.
  • 1x rotační kodér
  • 1x napájecí zdroj 12V 2A, proud, který má napájecí zdroj dodat, může záviset na délce použitého LED pásku.
  • 16x propojovací vodiče mezi mužem a mužem
  • 1x pájecí deska bez pájení, jakákoli prkénka bude fungovat, pokud je dostatečně velká.

Krok 2: Okruh

Obvod
Obvod
Obvod
Obvod

Připojte Arduino k liště 12V a GND prkénka. Poté připojte ostatní části následujícím způsobem:

Rotační kodér

Kolík A - D4

Kolík B - D3

GND - GND

MOSFET červený

Brána - GND

Drain - LED pásek červený vodič

Zdroj - D11

MOSFET GreenGate - GND

Drain - zelený LED pásek

Zdroj - D9

MOSFET BlueGate - GND

Drain - LED pásek modrý drát

Zdroj - D6

Krok 3: Kód

// Piny Arduino PWM

int redPin = 11; int greenPin = 6; int bluePin = 9; // Piny kodéru Arduino int kodérPinA = 3; int kodérPinB = 4; // Barevné proměnné int colorVal; int redVal; int greenVal; int blueVal; // Proměnné kodéru int encoderPos; int kodérPinACurrent; int encoderPinALast = HIGH; // Jiné int počítadlo; neplatné nastavení () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (čítač); 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; čítač = encoderPos*8; if (čítač 1535) {counter = 0; } počítadlo vrácení; } int encoder2rgb (int counterVal) {// Červená až žlutá if (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Žlutá až zelená else if (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Zelená až azurová jinak if (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Azurová až modrá jinak if (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Modrá až purpurová else if (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Purpurová až červená jinak {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } vrátit redVal, greenVal, blueVal; }

Doporučuje: