Sisukord:

Arduino RGB LED -riba kontroller: 4 sammu
Arduino RGB LED -riba kontroller: 4 sammu

Video: Arduino RGB LED -riba kontroller: 4 sammu

Video: Arduino RGB LED -riba kontroller: 4 sammu
Video: Самый удобный RGB контроллер на ATtiny! 2024, November
Anonim
Arduino RGB LED -riba kontroller
Arduino RGB LED -riba kontroller

Sageli, kui inimesed soovivad oma RGB LED -riba Arduino abil juhtida, kasutatakse punase, rohelise ja sinise värvi segamiseks kolme potentsiomeetrit. See töötab ja võib teie vajadustele täiesti sobida, kuid ma tahtsin teha midagi intuitiivsemat, näiteks värviratast.

See projekt näib olevat ideaalne rakendus pöördkodeerija jaoks. See on seade, mis teisendab oma võlli liikumise digitaalseks väljundiks. Kui võlli pööratakse, saadab kodeerija välja signaali (impulsi), mida saab mõõta Arduino abil. Pöördkodeerijate kohta lisateabe saamiseks vaadake seda videot, mis selgitab seda põhjalikumalt.

Selles juhendis näitan teile, kuidas teha Arduino RGB LED -ribakontrollerit, kasutades pöörlevat kodeerijat. See juhend sisaldab vooluringi ehitust leivaplaadil. Arduino kilbi loomiseks võite siiski ise PCB toota!

Samm: osad

Osad
Osad
Osad
Osad

RGB LED -ribakontrolleri jaoks vajate järgmisi materjale:

  • 1x Arduino Nano
  • 3x IRLB8721PBF, mis tahes N-kanaliga loogikataseme MOSFET töötab seni, kuni selle võimsus on vähemalt 12 V ja teie LED-riba tarbib voolu.
  • 1x pöörlev kodeerija
  • 1x 12V 2A toiteallikas, toiteploki tarnitav vool võib sõltuda kasutatud LED -riba pikkusest.
  • 16x Meeste -isade hüppajajuhtmed
  • 1x jootevaba leivaplaat, mis tahes leivaplaat sobib seni, kuni see on piisavalt suur.

2. samm: ahel

Vooluring
Vooluring
Vooluring
Vooluring

Ühendage Arduino leivalaua 12V ja GND rööpaga. Seejärel ühendage ülejäänud osad järgmiselt:

Pöörlev kodeerija

Tihvt A - D4

Tihvt B - D3

GND - GND

MOSFET Punane

Värav - GND

Drenaaž - LED -riba punane traat

Allikas - D11

MOSFET GreenGate - GND

Drenaaž - LED -riba roheline traat

Allikas - D9

MOSFET BlueGate - GND

Drenaaž - LED -riba sinine juhe

Allikas - D6

3. samm: kood

// Arduino PWM tihvtid

int redPin = 11; int rohelinePin = 6; int sininePin = 9; // Arduino kodeerija tihvtid int encoderPinA = 3; int kodeerijaPinB = 4; // Värvimuutujad int colorVal; int redVal; int greenVal; int blueVal; // Kodeerija muutujad int encoderPos; int encoderPinACurrent; int encoderPinALast = HIGH; // muu int loendur; void setup () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (kodeerijaPinB, INPUT_PULLUP); } void loop () {readEncoder (); kodeerija2rgb (loendur); analogWrite (redPin, redVal); analogWrite (rohelinePin, rohelineVal); 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; loendur = kodeerijaPos*8; kui (loendur 1535) {loendur = 0; } tagastusloendur; } int encoder2rgb (int counterVal) {// Punane kuni kollane, kui (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // kollasest roheliseks muidu, kui (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; rohelineVal = 255; blueVal = 0; } // Roheline kuni sinine, kui (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; rohelineVal = 255; blueVal = colorVal; } // tsüaanist siniseks muidu, kui (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Sinine kuni magenta muuni if (counterVal <= 1279) {colorVal = counterVal - 1024; redVal = colorVal; rohelineVal = 0; blueVal = 255; } // Magenta kuni punane else {colorVal = counterVal - 1280; redVal = 255; rohelineVal = 0; blueVal = 255 - colorVal; } return redVal, greenVal, blueVal; }

Soovitan: