Taula de continguts:

LED RGB controlat per IR Arduino Nano Baised: 5 passos
LED RGB controlat per IR Arduino Nano Baised: 5 passos

Vídeo: LED RGB controlat per IR Arduino Nano Baised: 5 passos

Vídeo: LED RGB controlat per IR Arduino Nano Baised: 5 passos
Vídeo: ChatGPT with Arduino Nano #arduino #chatgpt #technology #openAI #electronic 2024, De novembre
Anonim
LED RGB controlat per IR Arduino Nano Baised
LED RGB controlat per IR Arduino Nano Baised

en aquest petit projecte us vull mostrar com he construït un LED RGB basat en Arduino que es controla mitjançant control remot IR i s’alimenta mitjançant un cable USB.

Subministraments

1. LED RGB

2. Receptor IR

3. Cable USB

4. Arduino nano

5. Comandament IR

6. alguns cables

7. Resistències de 50-100 ohm (estic fent servir resistències de 47 ohm però no hi ha molta diferència)

Pas 1: trieu el comandament a distància

Trieu el comandament a distància
Trieu el comandament a distància

Per tant, quin comandament a distància utilitzeu és la vostra decisió, però el comandament a distància hauria de tenir 6 claus que vulgueu utilitzar. 2 d'elles per al vermell, 2 d'elles per al verd i 2 per al blau.

Pas 2: primer construïu-lo en una taula de pa (no és necessari, però es recomana)

Construeix-lo primer en una pissarra (no és necessari, però es recomana)
Construeix-lo primer en una pissarra (no és necessari, però es recomana)
Construeix-lo primer en una pissarra (no és necessari, però es recomana)
Construeix-lo primer en una pissarra (no és necessari, però es recomana)

Ara, construïu el circuit sobre una taula de treball

connexions:

RGB LED GND> Arduino nano GND

LED RGB vermell> Pin 5 d'Arduino nano Digital

LED RGB verd> Arduino nano Pin digital 6

LED RGB Blau> Pin 9 d'Arduino nano Digital

USB GND> Arduino nano GND

USB 5v> Arduino nano 5v

Pin del receptor IR 1> Pin digital Arduino nano 4

Pin receptor 2 IR> Arduino nano GND

Pin receptor 3 IR> Arduino nano 5v

(totes les connexions es mostren a la part superior)

(cada pin de color del LED RGB està connectat en sèrie a resistències)

Pas 3: el codi

el codi és el següent:

Aquí teniu la biblioteca que he utilitzat.

#incloure

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 vermell int G = 6; // Pin verd int B = 9; // Pin blau # definir Rup1 1976685926 // fa augmentar la brillantor vermella # definir Rup2 3772818013 // fa augmentar la brillantor vermella # definir Rdown1 3843765582 // fa baixar la brillantor vermella # definir Rdown2 3772813933 // fa baixar la brillantor vermella # definir Gup1 3772797613 // fa augmentar la brillantor verda # definir Gup2 3774104872 // fa augmentar la brillantor verda # definir Gdown1 3772834333 // fa baixar la brillantor verda # definir Gdown2 1784778242 // fa baixar la brillantor verda # definir Bup1 3980777284 // fa blau augmenta la brillantor #define Bup2 3772781293 // fa augmentar la brillantor blava #define Bdown1 3772801693 // fa baixar la brillantor blava #define Bdown2 3361986248 // fa baixar la brillantor blava // NOTA: HEM DE CANVIAR ELS NOMBRES AL TEU COMANDAMENT !!! ! // Tinc 2 claus duplicades, per exemple Rup1 i Rup2. perquè // el meu comandament remot emet 2 números quan premeu una tecla. // en el vostre cas, podeu posar els mateixos números a Rup1 i Rup2, Gup1 i Gup2 i així un. // Quan premeu una tecla, el número hauria d'aparèixer al monitor sèrie, // Això és el que heu d'escriure a la secció "#define". IRrecv irrecv (IR_Recv); resultats decode_results; configuració nul·la () {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) {/////////// cas VERMELL Rup1: Rval = Rval + 10; trencar; cas Rup2: Rval = Rval + 10; trencar; cas Rdown1: Rval = Rval - 10; trencar; cas Rdown2: Rval = Rval - 10; trencar; //////////// cas VERD Gup1: Gval = Gval + 10; trencar; cas Gup2: Gval = Gval + 10; trencar; cas Gdown1: Gval = Gval - 10; trencar; cas Gdown2: Gval = Gval - 10; trencar; ///////////// BLUE case Bup1: Bval = Bval + 10; trencar; cas Bup2: Bval = Bval + 10; trencar; cas Bdown1: Bval = Bval - 10; trencar; cas Bdown2: Bval = Bval - 10; trencar; //////////////////////////////////////////} 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); }

Pas 4: Acabat

Acabat
Acabat
Acabat
Acabat
Acabat
Acabat

No he fet una bona feina de carcassa. tot el que vaig fer va ser només gravar-lo, però vaig intentar que fos el més petit possible.

Si teniu cap pregunta o error, assegureu-me de dir-ho, faré tot el possible per ajudar-vos a solucionar l’error. gràcies per llegir.

Recomanat: