Sommario:
- Forniture
- Passaggio 1: scegli il tuo telecomando
- Passaggio 2: prima costruiscilo su un tagliere (non necessario ma consigliato)
- Passaggio 3: il codice
- Passaggio 4: finitura
- Passaggio 5: PROVA
Video: LED RGB con controllo IR basato su Arduino Nano: 5 passaggi
2025 Autore: John Day | [email protected]. Ultima modifica: 2025-01-10 13:47
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
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)
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
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.