Arduino Nano Baised IR Controlled RGB LED: 5 քայլ
Arduino Nano Baised IR Controlled RGB LED: 5 քայլ
Anonim
Arduino Nano Baised IR վերահսկվող RGB LED
Arduino Nano Baised IR վերահսկվող RGB LED

Այս փոքրիկ նախագծում ուզում եմ ձեզ ցույց տալ, թե ինչպես եմ կառուցել Arduino- ի վրա հիմնված RGB LED, որը վերահսկվում է IR հեռակառավարմամբ և սնուցվում է USB մալուխով:

Պարագաներ

1. RGB LED

2. IR ընդունիչ

3. USB մալուխ

4. Արդուինո նանո

5. IR հեռակառավարիչ

6. որոշ մալուխներ

7. 50-100 օմ ռեզիստորներ (ես օգտագործում եմ 47 օմ դիմադրություն, բայց մեծ տարբերություն չկա)

Քայլ 1: Ընտրեք ձեր հեռակառավարիչը

Ընտրեք ձեր հեռակառավարման վահանակը
Ընտրեք ձեր հեռակառավարման վահանակը

Այսպիսով, որ հեռակառավարման սարքն եք օգտագործում, դա ձեր որոշումն է, բայց ձեր հեռակառավարման վահանակում պետք է լինեն 6 բանալիներ, որոնք ցանկանում եք օգտագործել: Նրանցից 2 -ը նախատեսված է Կարմիրի համար, 2 -ը ՝ Կանաչի, իսկ 2 -ը ՝ Կապույտի համար:

Քայլ 2. Նախ կառուցեք այն հացի տախտակի վրա (անհրաժեշտ չէ, բայց խորհուրդ է տրվում)

Նախ կառուցեք այն հացի տախտակի վրա (անհրաժեշտ չէ, բայց խորհուրդ է տրվում)
Նախ կառուցեք այն հացի տախտակի վրա (անհրաժեշտ չէ, բայց խորհուրդ է տրվում)
Նախ կառուցեք այն հացի տախտակի վրա (անհրաժեշտ չէ, բայց խորհուրդ է տրվում)
Նախ կառուցեք այն հացի տախտակի վրա (անհրաժեշտ չէ, բայց խորհուրդ է տրվում)

Այժմ կառուցեք միացումը հացահատիկի վրա

կապեր:

RGB LED GND> Arduino nano GND

RGB LED Կարմիր> Arduino nano Թվային փին 5

RGB LED կանաչ> Arduino nano Թվային փին 6

RGB LED Կապույտ> Arduino nano Թվային կապ 9

USB GND> Arduino nano GND

USB 5v> Arduino nano 5v

IR ընդունիչի քորոց 1> Arduino nano Թվային փին 4

IR ընդունիչի քորոց 2> Arduino nano GND

IR ընդունիչի քորոց 3> Arduino nano 5v

(բոլոր կապերը ցուցադրված են վերևում)

(RGB LED- ի յուրաքանչյուր գունային կապում միացված է շարանը դիմադրողներին)

Քայլ 3: Կոդ

կոդը հետևյալն է

Ահա այն գրադարանը, որը ես օգտագործել եմ:

#ներառում

int IR_Recv = 4; // IR ընդունիչի քորոց

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; // Կարմիր կապում int G = 6; // Կանաչ կապում int B = 9; // Կապույտ քորոցը #սահմանում է Rup1 1976685926 // ստիպում է կարմիր պայծառությունը բարձրանալ #սահմանել Rup2 3772818013 // ստիպում է կարմիր պայծառությունը բարձրանալ #սահմանել Rdown1 3843765582 // նվազեցնում է կարմիր պայծառությունը #սահմանում Rdown2 3772813933 // նվազեցնում է կարմիր պայծառությունը #սահմանում Gup1 3772797613 // ստիպում է կանաչ պայծառությունը բարձրանալ #սահմանել Gup2 3774104872 // ստիպում է կանաչ պայծառությունը բարձրանալ #սահմանել Gdown1 3772834333 // կանաչ պայծառությունը նվազում է #սահմանել Gdown2 1784778242 // կանաչ պայծառությունը նվազում է #սահմանել Bup1 3980777284 // դարձնում կապույտ պայծառությունը բարձրանում է #սահմանում Bup2 3772781293 // ստիպում է կապույտը պայծառությունը բարձրանալ #սահմանել Bdown1 3772801693 // ստիպում է կապույտի պայծառությունը նվազել #սահմանել Bdown2 3361986248 // նվազեցնում է կապույտի պայծառությունը // ՆՇՈ:Մ. ! // Ես ունեմ 2 կրկնօրինակ բանալիներ, օրինակ ՝ Rup1 և Rup2: քանի որ // իմ հեռակառավարման ելքը 2 թիվ է տալիս մեկ ստեղնը սեղմելիս: // ձեր դեպքում դուք կարող եք նույն թվերը տեղադրել Rup1 և Rup2, Gup1 և Gup2 և այլն մեկում: // Բանալին սեղմելիս համարը պետք է հայտնվի Սերիական մոնիտորում, // Ահա թե ինչ պետք է մուտքագրեք «#սահմանել» բաժնում: IRrecv irrecv (IR_Recv); decode_results results; void setup () {TCCR2A = _BV (COM2A1) | _BV (COM2B1) | _BV (WGM21) | _BV (WGM20); TCCR2B = _BV (CS22); irrecv.enableIRIn (); pinMode (R, OUTPUT); pinMode (G, OUTPUT); pinMode (B, OUTPUT); Serial.begin (9600); } void loop () {if (irrecv.decode (& results)) {long int decCode = results.value; անջատիչ (results.value) {/////////// RED case Rup1: Rval = Rval + 10; ընդմիջում; գործ Rup2: Rval = Rval + 10; ընդմիջում; գործ Rdown1: Rval = Rval - 10; ընդմիջում; գործ Rdown2: Rval = Rval - 10; ընդմիջում; //////////// Կանաչ գործ Gup1: Gval = Gval + 10; ընդմիջում; գործ Gup2: Gval = Gval + 10; ընդմիջում; գործ Gdown1: Gval = Gval - 10; ընդմիջում; գործ Gdown2: Gval = Gval - 10; ընդմիջում; ////////////// ԿԱՊՈ case գործ Bup1: Bval = Bval + 10; ընդմիջում; գործ Bup2: Bval = Bval + 10; ընդմիջում; գործ Bdown1: Bval = Bval - 10; ընդմիջում; գործ Bdown2: Bval = Bval - 10; ընդմիջում; //////////////////////////////////////////recv.resume (); } if (Rval> 255) (Rval = 255); եթե (Rval 255) (Gval = 255); եթե (Gval 255) (Bval = 255); եթե (Bval <0) (Bval = 0); analogWrite (R, Rval); analogWrite (G, Gval); analogWrite (B, Bval); Serial.println (results.value); միկրովայրկյաններ (1); }

Քայլ 4: Ավարտում

Ավարտում
Ավարտում
Ավարտում
Ավարտում
Ավարտում
Ավարտում

Ես դրախտում լավ աշխատանք չեմ կատարել: այն ամենը, ինչ ես արել եմ, պարզապես սոսնձելն է, բայց ես փորձել եմ այն հնարավորինս փոքր դարձնել:

Եթե ունեք որևէ հարց կամ որևէ սխալ, անպայման ասեք ինձ, ես կանեմ հնարավորը ՝ օգնելու ձեզ ուղղել սխալը: շնորհակալություն կարդալու համար:

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