Kazalo:

Arduino RGB LED tračni krmilnik: 4 koraki
Arduino RGB LED tračni krmilnik: 4 koraki

Video: Arduino RGB LED tračni krmilnik: 4 koraki

Video: Arduino RGB LED tračni krmilnik: 4 koraki
Video: WS2812 [Программируемая светодиодная лента] 2024, November
Anonim
Arduino krmilnik LED trakov RGB
Arduino krmilnik LED trakov RGB

Pogosto, ko želijo ljudje upravljati svoj RGB LED trak z Arduinom, se za mešanje rdeče, zelene in modre barve uporabljajo trije potenciometri. To deluje in bi lahko bilo popolnoma v redu za vaše potrebe, vendar sem želel narediti nekaj bolj intuitivnega, na primer barvno kolo.

Zdi se, da je ta projekt popolna aplikacija za rotacijski dajalnik. To je naprava, ki pretvori gibanje svoje gredi v digitalni izhod. Ko je gred obrnjena, dajalnik pošlje signal (impulz), ki ga je mogoče izmeriti z Arduinom. Za več informacij o rotacijskih kodirnikih si lahko ogledate ta videoposnetek, ki to podrobneje pojasnjuje.

V tem navodilu vam bom pokazal, kako z vrtljivim dajalnikom narediti Arduino RGB LED tračni krmilnik. Ta navodila opisujejo konstrukcijo vezja na plošči. Lahko pa izdelate lastno tiskano vezje, da ustvarite Arduino ščit!

1. korak: Deli

Deli
Deli
Deli
Deli

Za krmilnik LED trakov RGB boste potrebovali naslednje materiale:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, bo kateri koli N-kanalni logični nivo MOSFET deloval, dokler je ocenjen na najmanj 12V in tok, ki ga porabi vaš LED trak.
  • 1x rotacijski dajalnik
  • 1x 12V 2A napajalnik, tok, ki ga mora napajati, je lahko odvisen od dolžine uporabljenega LED traku.
  • 16x moških moških žic
  • 1x brez lemljenja, vsaka plošča bo delovala, dokler je dovolj velika.

2. korak: Vezje

Vezje
Vezje
Vezje
Vezje

Arduino priključite na 12V in GND tirnico na plošči. Nato ostale dele povežite na naslednji način:

Rotacijski dajalnik

Pin A - D4

Pin B - D3

GND - GND

MOSFET rdeč

Vrata - GND

Odtok - rdeča žica z LED trakom

Vir - D11

MOSFET GreenGate - GND

Odtok - LED trak zelena žica

Vir - D9

MOSFET BlueGate - GND

Odtok - modra žica z LED trakom

Vir - D6

3. korak: Koda

// Arduino PWM zatiči

int redPin = 11; int greenPin = 6; int bluePin = 9; // zatiči dajalnika Arduino int encoderPinA = 3; int kodirnikPinB = 4; // Barvne spremenljivke int colorVal; int redVal; int greenVal; int blueVal; // spremenljivke kodirnika int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // Drugi int števec; void setup () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); kodirnik2rgb (števec); 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; števec = kodirnikPos*8; if (števec 1535) {števec = 0; } števec vračila; } int encoder2rgb (int counterVal) {// Rdeče do rumeno if (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Rumeno do zeleno drugače if (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Zeleno do cijan sicer if (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // modro -modra drugače if (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Modra do škrlatna drugače if (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; greenVal = 0; blueVal = 255; } // Magenta do rdeča else {colorVal = counterVal - 1280; redVal = 255; greenVal = 0; blueVal = 255 - colorVal; } return redVal, greenVal, blueVal; }

Priporočena: