Სარჩევი:

Arduino Nano Baised IR კონტროლირებადი RGB LED: 5 ნაბიჯი
Arduino Nano Baised IR კონტროლირებადი RGB LED: 5 ნაბიჯი

ვიდეო: Arduino Nano Baised IR კონტროლირებადი RGB LED: 5 ნაბიჯი

ვიდეო: Arduino Nano Baised IR კონტროლირებადი RGB LED: 5 ნაბიჯი
ვიდეო: BigTreeTech - SKR 3/SKR 3 EZ - Basics 2024, ნოემბერი
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 ohm რეზისტორები (მე ვიყენებ 47 ohm რეზისტორებს, მაგრამ დიდი განსხვავება არ არის)

ნაბიჯი 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 მიმღები pin 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); სერიული.დაწყება (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; შესვენება; //////////// GREEN case Gup1: Gval = Gval + 10; შესვენება; საქმე Gup2: Gval = Gval + 10; შესვენება; საქმე Gdown1: Gval = Gval - 10; შესვენება; საქმე Gdown2: Gval = Gval - 10; შესვენება; ////////////// ცისფერი შემთხვევა 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: დასრულება

დასრულება
დასრულება
დასრულება
დასრულება
დასრულება
დასრულება

მე არ გავაკეთე კარგი სამუშაო გარსაცმები. ყველაფერი რაც მე გავაკეთე მხოლოდ ლენტია, მაგრამ შევეცადე რაც შეიძლება პატარა ყოფილიყო.

თუ თქვენ გაქვთ რაიმე შეკითხვა ან რაიმე შეცდომა აუცილებლად მითხარით, მე ყველაფერს გავაკეთებ იმისათვის, რომ დაგეხმაროთ შეცდომის გამოსწორებაში. მადლობა წაკითხვისთვის.

გირჩევთ: