Sommario:

LED RGB con controllo IR basato su Arduino Nano: 5 passaggi
LED RGB con controllo IR basato su Arduino Nano: 5 passaggi

Video: LED RGB con controllo IR basato su Arduino Nano: 5 passaggi

Video: LED RGB con controllo IR basato su Arduino Nano: 5 passaggi
Video: Tutorial Arduino ITA 21: striscia LED RGB 2024, Luglio
Anonim
LED RGB controllato IR basato su Arduino Nano
LED RGB controllato IR basato su Arduino Nano

in questo piccolo progetto voglio mostrarti come ho costruito un LED RGB basato su Arduino che è controllato da un telecomando IR e alimentato da un cavo USB.

Forniture

1. LED RGB

2. Ricevitore IR

3. Cavo USB

4. Arduino nano

5. Telecomando IR

6. alcuni cavi

7. Resistori da 50-100 ohm (sto usando resistori da 47 ohm ma non c'è molta differenza)

Passaggio 1: scegli il tuo telecomando

Scegli il tuo telecomando
Scegli il tuo telecomando

Quindi quale telecomando usi è una tua decisione, ma il tuo telecomando dovrebbe avere 6 chiavi che vuoi usare. 2 di questi sono per il rosso, 2 per il verde e 2 per il blu.

Passaggio 2: prima costruiscilo su un tagliere (non necessario ma consigliato)

Costruiscilo prima su un tagliere (non necessario ma consigliato)
Costruiscilo prima su un tagliere (non necessario ma consigliato)
Costruiscilo prima su un tagliere (non necessario ma consigliato)
Costruiscilo prima su un tagliere (non necessario ma consigliato)

Ora, costruisci il circuito su una breadboard

connessioni:

LED RGB GND > Arduino nano GND

LED RGB Rosso > Arduino nano Pin digitale 5

LED RGB Verde > Arduino nano Pin digitale 6

LED RGB Blu > Arduino nano Pin digitale 9

USB GND > Arduino nano GND

USB 5v > Arduino nano 5v

Ricevitore IR pin 1 > Arduino nano Digital pin 4

Pin 2 ricevitore IR > Arduino nano GND

Pin 3 ricevitore IR > Arduino nano 5v

(tutti i collegamenti sono mostrati sopra)

(ogni pin di colore del LED RGB è collegato in serie ai resistori)

Passaggio 3: il codice

il codice è il seguente:

Ecco la libreria che ho usato.

#includere

int IR_Recv = 4; //pin ricevitore IR

int Rval = 0; int Valval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; intR = 5; //pin rosso int G = 6; //pin verde int B = 9; // Pin blu #define Rup1 1976685926 // aumenta la luminosità del rosso #define Rup2 3772818013 // aumenta la luminosità del rosso #define Rdown1 3843765582 // fa diminuire la luminosità del rosso #define Rdown2 3772813933 // diminuisce la luminosità del rosso #define Gup1 3772797613 //fa aumentare la luminosità del verde #define Gup2 3774104872 //fa aumentare la luminosità del verde #define Gdown1 3772834333 //fa diminuire la luminosità del verde #define Gdown2 1784778242 //fa diminuire la luminosità del verde #define Bup1 3980777284 //rende il blu la luminosità aumenta #define Bup2 3772781293 //fa aumentare la luminosità del blu #define Bdown1 3772801693 //fa diminuire la luminosità del blu #define Bdown2 3361986248 //fa diminuire la luminosità del blu //NOTA: DEVI CAMBIARE I NUMERI DEL TUO TELECOMANDO!!! ! //Ho 2 chiavi duplicate per esempio Rup1 e Rup2. perché // il mio telecomando emette 2 numeri quando si preme un tasto. //nel tuo caso puoi inserire gli stessi numeri in Rup1 e Rup2, Gup1 e Gup2 e così uno. //Quando premi un tasto, il numero dovrebbe apparire nel monitor seriale, //Questo è quello che dovresti digitare nella sezione "#define". IRrecv irrecv(IR_Recv); decode_results risultati; void setup(){ TCCR2A = _BV(COM2A1) | _BV(COM2B1) | _BV(WGM21) | _BV(WGM20); TCCR2B = _BV(CS22); irrecv.enableIRIn(); pinMode(R, USCITA); pinMode(G, USCITA); pinMode(B, USCITA); Serial.begin(9600); } void loop(){ if (irrecv.decode(&results)){ long int decCode = results.value; switch (results.value){ ///////////RED case Rup1: Rval = Rval + 10; rottura; caso Rup2: Rval = Rval + 10; rottura; caso Rdown1: Rval = Rval - 10; rottura; caso Rdown2: Rval = Rval - 10; rottura; ////////////VERDE caso Gup1: Gval = Gval + 10; rottura; caso Gup2: Val = Val + 10; rottura; caso Gdown1: Gval = Gval - 10; rottura; caso Gdown2: Gval = Gval - 10; rottura; /////////////BLUE case Bup1: Bval = Bval + 10; rottura; caso Bup2: Bval = Bval + 10; rottura; caso Bdown1: Bval = Bval - 10; rottura; caso Bdown2: Bval = Bval - 10; rottura; /////////////////////////////////////// } 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); ritardoMicrosecondi(1); }

Passaggio 4: finitura

Finitura
Finitura
Finitura
Finitura
Finitura
Finitura

Il cielo non ha fatto un buon lavoro di custodia. tutto quello che ho fatto è stato registrarlo, ma ho cercato di renderlo il più piccolo possibile.

Se hai domande o errori assicurati di dirmelo, farò del mio meglio per aiutarti a correggere l'errore. grazie per aver letto.

Consigliato: