Obsah:

Ovládač pruhu LED Arduino RGB LED: 4 kroky
Ovládač pruhu LED Arduino RGB LED: 4 kroky

Video: Ovládač pruhu LED Arduino RGB LED: 4 kroky

Video: Ovládač pruhu LED Arduino RGB LED: 4 kroky
Video: Объяснение прошивки Marlin 2.0.x 2024, Jún
Anonim
Arduino RGB LED páskový ovládač
Arduino RGB LED páskový ovládač

Keď ľudia chcú ovládať svoj RGB LED pásik pomocou Arduina, často sa používajú tri potenciometre na zmiešanie červenej, zelenej a modrej farby. To funguje a pre vaše potreby to môže byť úplne v poriadku, ale chcel som urobiť niečo intuitívnejšie, niečo ako farebné koliesko.

Tento projekt sa zdá byť perfektnou aplikáciou pre rotačný kodér. Jedná sa o zariadenie, ktoré prevádza pohyb svojho hriadeľa na digitálny výstup. Keď je hriadeľ otočený, kodér vyšle signál (impulz), ktorý je možné merať pomocou Arduina. Ak sa chcete dozvedieť viac o rotačných snímačoch, môžete si pozrieť toto video, ktoré to vysvetľuje podrobnejšie.

V tomto návode vám ukážem, ako vytvoriť ovládač LED pásu Arduino RGB pomocou rotačného enkodéra. Tento návod sa týka konštrukcie obvodu na doske. Môžete si však vytvoriť vlastnú PCB a vytvoriť tak štít Arduino!

Krok 1: Diely

Časti
Časti
Časti
Časti

Na ovládač RGB LED pásov budete potrebovať nasledujúce materiály:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, akýkoľvek N-kanálový logický stupeň MOSFET bude fungovať, pokiaľ je dimenzovaný na minimálne 12V a prúd, ktorý spotrebuje váš pásik LED.
  • 1x rotačný kodér
  • 1x napájací zdroj 12V 2A, prúd, ktorý musí napájací zdroj dodať, závisí od dĺžky použitého LED pásu.
  • 16x prepojovacie vodiče medzi mužom a mužom
  • 1x spájkovačka bez spájkovania, akýkoľvek prkénko bude fungovať, pokiaľ je dostatočne veľké.

Krok 2: Okruh

Obvod
Obvod
Obvod
Obvod

Pripojte Arduino k 12V a GND lište nepájivej dosky. Potom pripojte ostatné diely nasledovne:

Rotačný kodér

Kolík A - D4

Kolík B - D3

GND - GND

MOSFET červený

Brána - GND

Odtok - LED pásik červený drôt

Zdroj - D11

MOSFET GreenGate - GND

Odvod - LED pásik zelený drôt

Zdroj - D9

MOSFET BlueGate - GND

Odtok - LED pásik modrý drôt

Zdroj - D6

Krok 3: Kód

// Piny Arduino PWM

int redPin = 11; int greenPin = 6; int bluePin = 9; // Kodéry Arduino piny int encoderPinA = 3; int kodérPinB = 4; // Farebné premenné int colorVal; int redVal; int greenVal; int blueVal; // Premenné kodéra int encoderPos; int kodérPinACurrent; int kodérPinALast = HIGH; // Iné int počítadlo; neplatné nastavenie () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (počítadlo); 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; počítadlo = kodérPos*8; if (počítadlo 1535) {počítadlo = 0; } počítadlo spiatočky; } int encoder2rgb (int counterVal) {// Červená až žltá if (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Žltá až zelená else if (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Zelená až azúrová else if (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Azúrová až modrá inak 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; } // Magenta to red else {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } vrátiť redVal, greenVal, blueVal; }

Odporúča: