Բովանդակություն:

Arduino RGB LED շերտի վերահսկիչ ՝ 4 քայլ
Arduino RGB LED շերտի վերահսկիչ ՝ 4 քայլ
Anonim
Arduino RGB LED շերտի վերահսկիչ
Arduino RGB LED շերտի վերահսկիչ

Հաճախ, երբ մարդիկ ցանկանում են վերահսկել իրենց RGB LED ժապավենը Arduino- ով, կարմիր, կանաչ և կապույտ գույները խառնելու համար օգտագործվում են երեք պոտենցիոմետր: Սա աշխատում է և կարող է կատարելապես լավ լինել ձեր կարիքների համար, բայց ես ուզում էի ինչ -որ ավելի ինտուիտիվ բան պատրաստել ՝ գունավոր անիվի նման մի բան:

Այս նախագիծը կարծես կատարյալ ծրագիր է պտտվող կոդավորիչի համար: Սա մի սարք է, որը իր լիսեռի շարժումը փոխակերպում է թվային ելքի: Երբ լիսեռը պտտվում է, կոդավորիչը ազդանշան է ուղարկում (զարկերակ), որը կարելի է չափել Arduino- ով: Պտտվող կոդավորիչների մասին ավելին իմանալու համար կարող եք դիտել այս տեսանյութը, որն այն ավելի խորությամբ է բացատրում:

Այս Instructable- ում ես ձեզ ցույց կտամ, թե ինչպես պատրաստել Arduino RGB LED շերտի վերահսկիչ `օգտագործելով պտտվող կոդավորիչ: Այս հրահանգը ներառում է շղթայի կառուցումը տախտակի վրա: Այնուամենայնիվ, դուք կարող եք արտադրել ձեր սեփական PCB- ն ՝ Arduino վահան ստեղծելու համար:

Քայլ 1: Մասեր

Մասեր
Մասեր
Մասեր
Մասեր

RGB LED շերտի վերահսկիչի համար ձեզ հարկավոր են հետևյալ նյութերը.

  • 1x Arduino Nano
  • 3x IRLB8721PBF, ցանկացած N-channel տրամաբանական մակարդակի MOSFET- ը կանի այնքան ժամանակ, քանի դեռ այն գնահատված է նվազագույնը 12 Վ, և ձեր LED շերտի ընթացիկ սպառումը:
  • 1x Պտտվող կոդավորիչ
  • 1x 12V 2A սնուցման աղբյուր, հոսանքի հոսանքը, որը պետք է մատակարարի, կարող է կախված լինել օգտագործված LED շերտի երկարությունից:
  • 16x Արականից արական ցատկող լարեր
  • 1x Առանց զոդման տախտակ, ցանկացած տախտակ կանի այնքան ժամանակ, որքանով այն բավականաչափ մեծ է:

Քայլ 2: Շղթա

Շրջան
Շրջան
Շրջան
Շրջան

Միացրեք Arduino- ն տախտակի 12V և GND ռելսին: Այնուհետև միացրեք մյուս մասերը հետևյալ կերպ.

Պտտվող կոդավորիչ

Պին A - D4

Պին B - D3

GND - GND

MOSFET Կարմիր

Դարպաս - GND

Դրենաժ - LED շերտի կարմիր մետաղալար

Աղբյուր - D11

MOSFET GreenGate - GND

Դրենաժ - LED շերտի կանաչ մետաղալար

Աղբյուր - D9

MOSFET BlueGate - GND

Դրենաժ - LED շերտի կապույտ մետաղալար

Աղբյուր - D6

Քայլ 3: Կոդ

// Arduino PWM կապում

int redPin = 11; int greenPin = 6; int bluePin = 9; // Arduino կոդավորիչի կապում int encoderPinA = 3; int encoderPinB = 4; // Գույնի փոփոխականներ int colorVal; int redVal; int greenVal; int blueVal; // Կոդավորման փոփոխականներ int encoderPos; int կոդավորիչ PinACurrent; int encoderPinALast = Բարձր; // Այլ int հաշվիչ; void setup () {pinMode (encoderPinA, INPUT_PULLUP); pinMode (encoderPinB, INPUT_PULLUP); } void loop () {readEncoder (); encoder2rgb (հաշվիչ); 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; հաշվիչ = encoderPos*8; եթե (հաշվիչ 1535) {հաշվիչ = 0; } վերադարձի հաշվիչ; } int encoder2rgb (int counterVal) {// Կարմիրից դեղին եթե (counterVal <= 255) {colorVal = counterVal; redVal = 255; greenVal = colorVal; blueVal = 0; } // Դեղինից կանաչ այլ եթե (counterVal <= 511) {colorVal = counterVal - 256; redVal = 255 - colorVal; greenVal = 255; blueVal = 0; } // Կանաչից դեպի մյուսը եթե (counterVal <= 767) {colorVal = counterVal - 512; redVal = 0; greenVal = 255; blueVal = colorVal; } // Cyan- ից կապույտ այլ դեպքում, եթե (counterVal <= 1023) {colorVal = counterVal - 768; redVal = 0; greenVal = 255 - colorVal; blueVal = 255; } // Կապույտից մինչև magenta else (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; } վերադարձ redVal, greenVal, blueVal; }

Խորհուրդ ենք տալիս: