Cuprins:

LED RGB controlat IR Arduino Nano Baised: 5 pași
LED RGB controlat IR Arduino Nano Baised: 5 pași

Video: LED RGB controlat IR Arduino Nano Baised: 5 pași

Video: LED RGB controlat IR Arduino Nano Baised: 5 pași
Video: Beginner's Guide to Using LED Strips with Arduino 2024, Noiembrie
Anonim
LED RGB controlat IR Arduino Nano Baised
LED RGB controlat IR Arduino Nano Baised

în acest mic proiect vreau să vă arăt cum am construit un LED RGB bazat pe Arduino, care este controlat de telecomandă IR și alimentat prin cablu USB.

Provizii

1. LED RGB

2. Receptor IR

3. Cablu USB

4. Arduino nano

5. Telecomandă IR

6. unele cabluri

7. Rezistențe de 50-100 ohmi (folosesc rezistențe de 47 ohmi, dar nu există prea multe diferențe)

Pasul 1: alege telecomanda

Alege telecomanda ta
Alege telecomanda ta

Deci, ce telecomandă utilizați este decizia dvs., dar telecomanda trebuie să aibă 6 chei pe care doriți să le utilizați. 2 dintre ele sunt pentru roșu, 2 dintre ele pentru verde și 2 pentru albastru.

Pasul 2: Construiți-l mai întâi pe un panou (nu este necesar, dar recomandat)

Construiți-l mai întâi pe o placă de pâine (nu este necesar, dar recomandat)
Construiți-l mai întâi pe o placă de pâine (nu este necesar, dar recomandat)
Construiți-l mai întâi pe o placă de pâine (nu este necesar, dar recomandat)
Construiți-l mai întâi pe o placă de pâine (nu este necesar, dar recomandat)

Acum, construiți circuitul pe o placă de calcul

conexiuni:

RGB LED GND> Arduino nano GND

LED RGB Roșu> Arduino nano Pin digital 5

LED RGB verde> Arduino nano Pin digital 6

LED albastru RGB> Arduino nano Pin digital 9

USB GND> Arduino nano GND

USB 5v> Arduino nano 5v

Pinul receptorului IR 1> Arduino nano Pinul digital 4

Pinul receptorului IR 2> Arduino nano GND

Receptor IR pin 3> Arduino nano 5v

(toate conexiunile sunt prezentate mai sus)

(fiecare pin color al LED-ului RGB este conectat în serie la rezistențe)

Pasul 3: Codul

codul este următorul:

Iată biblioteca pe care am folosit-o.

#include

int IR_Recv = 4; // PIN receptor IR

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; // Pin roșu int G = 6; // Pin verde int B = 9; // Pin albastru #define Rup1 1976685926 // face ca luminozitatea roșie să crească #define Rup2 3772818013 // face ca luminozitatea roșie să crească #define Rdown1 3843765582 // face ca luminozitatea roșie să scadă #define Rdown2 3772813933 // face ca luminozitatea roșie să scadă #define Gup1 3772797613 // crește luminozitatea verde #define Gup2 3774104872 // crește luminozitatea verde #define Gdown1 3772834333 // face luminozitatea verde să scadă #define Gdown2 1784778242 // face luminozitatea verde să coboare #define Bup1 3980777284 // face albastru luminozitatea crește #define Bup2 3772781293 // face ca luminozitatea albastră să crească #define Bdown1 3772801693 // face ca luminozitatea albastră să coboare #define Bdown2 3361986248 // face ca luminozitatea albastră să coboare // NOTĂ: TREBUIE SĂ SCHIMBAȚI NUMERE LA TELECOMANDA DUMNEAVOASTRĂ !!! ! // Am 2 chei duplicate, de exemplu Rup1 și Rup2. deoarece // telecomanda mea scoate 2 numere când apăsați o tastă. // în cazul dvs. puteți pune aceleași numere în Rup1 și Rup2, Gup1 și Gup2 și așa unul. // Când apăsați o tastă, numărul ar trebui să apară în monitorul serial, // Asta ar trebui să tastați în secțiunea „#define”. IRrecv irrecv (IR_Recv); rezultate decode_results; configurare nulă () {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; switch (results.value) {/////////// RED case Rup1: Rval = Rval + 10; pauză; cazul Rup2: Rval = Rval + 10; pauză; caz Rdown1: Rval = Rval - 10; pauză; caz Rdown2: Rval = Rval - 10; pauză; //////////// caz VERDE Gup1: Gval = Gval + 10; pauză; cazul Gup2: Gval = Gval + 10; pauză; cazul Gdown1: Gval = Gval - 10; pauză; cazul Gdown2: Gval = Gval - 10; pauză; ///////////// caz ALBASTRU Bup1: Bval = Bval + 10; pauză; cazul Bup2: Bval = Bval + 10; pauză; cazul Bdown1: Bval = Bval - 10; pauză; cazul Bdown2: Bval = Bval - 10; pauză; //////////////////////////////////////////} irrecv.resume (); } if (Rval> 255) (Rval = 255); if (Rval 255) (Gval = 255); if (Gval 255) (Bval = 255); if (Bval <0) (Bval = 0); analogWrite (R, Rval); analogWrite (G, Gval); analogWrite (B, Bval); Serial.println (results.value); delayMicroseconds (1); }

Pasul 4: Finalizare

Finisare
Finisare
Finisare
Finisare
Finisare
Finisare

Nu am făcut o treabă bună de îmbrăcare. tot ce am făcut este doar să-l bandez, dar am încercat să-l fac cât mai mic posibil.

Dacă aveți întrebări sau greșeli, spuneți-mi sigur, voi face tot posibilul să vă ajut să remediați greșeala. mulțumesc pentru lectură.

Recomandat: